Skip to content

Instantly share code, notes, and snippets.

View odemolliens's full-sized avatar

@odemolliens odemolliens

View GitHub Profile
@odemolliens
odemolliens / ODAnnotation.h
Last active August 29, 2015 14:01
MKAnnotation Override
//
// ODMapAnnotation.h
// iVelo
//
// Created by Olivier Demolliens on 24/06/13.
// Copyright (c) 2013 Olivier Demolliens. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
@odemolliens
odemolliens / NSUrlConnection+Blocks
Last active August 29, 2015 14:02
NSURLConnection with blocks for Swift language
//
//Copyright 2014 Olivier Demolliens - @odemolliens
//
//Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
//
//file except in compliance with the License. You may obtain a copy of the License at
//
//http://www.apache.org/licenses/LICENSE-2.0
//
//Unless required by applicable law or agreed to in writing, software distributed under
@odemolliens
odemolliens / FontFactory.java
Last active February 22, 2016 08:40
FontFactory - improve performance when using custom fonts
import java.util.HashMap;
import android.content.Context;
import android.graphics.Typeface;
import android.util.Log;
/**
* Manage font
* @author Olivier Demolliens. @odemolliens
*/
@odemolliens
odemolliens / multipleRows.mm
Last active April 4, 2016 10:24 — forked from suda/multipleRows.mm
Multiple Row Selection in UIPickerView
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
UITableViewCell *cell = (UITableViewCell *)view;
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
[cell setBackgroundColor:[UIColor clearColor]];
[cell setBounds:CGRectMake(0, 0, cell.frame.size.width - 20, 44)];
cell.tag = row;
UITapGestureRecognizer * singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleSelection:)];
singleTapGestureRecognizer.numberOfTapsRequired = 1;
[cell addGestureRecognizer:singleTapGestureRecognizer];
@odemolliens
odemolliens / FileUploader.swift
Last active August 11, 2016 07:36 — forked from ncerezo/FileUploader.swift
Alamofire multipart upload
//
// FileUploader.swift
//
// Copyright (c) 2015 Narciso Cerezo Jiménez. All rights reserved.
// Largely based on this stackoverflow question: http://stackoverflow.com/questions/26121827/uploading-file-with-parameters-using-alamofire/28467829//
import Foundation
import Alamofire
private struct FileUploadInfo {
@odemolliens
odemolliens / BridgingHeader.h
Created September 21, 2016 06:00 — forked from zgchurch/BridgingHeader.h
Using SQLite3 from Swift
// 1. Create this file in your Xcode project
// 2. Go to "Build Settings" and find "Objective-C Bridging Header." Use the search bar to find it quickly.
// 3. Double-click and type "BridgingHeader.c"
// If you get "Could not import Objective-C Header," try "my-project-name/BridgingHeader.h"
// 4. Go to "Build Phases," "Link Binary With Libraries," and add libsqlite3.0.dylib
#include <sqlite3.h>
@odemolliens
odemolliens / gist:a948bafbaf06bbf8c72f993cdfb1395d
Created December 12, 2016 14:52 — forked from reixa00/gist:94543264bbe3b9d94d26
Shared OkHttp application Interceptor that will add or intercept E-Tag hash for ALL requests on client instance
// by Nikola Despotoski
import android.content.Context;
import android.text.TextUtils;
import com.squareup.okhttp.Headers;
import com.squareup.okhttp.Interceptor;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;
@odemolliens
odemolliens / ExportKindle.js
Created March 2, 2017 08:18 — forked from jkubecki/ExportKindle.js
Amazon Kindle Export
// The following data should be run in the console while viewing the page https://read.amazon.com/
// It will export a CSV file called "download" which can (and should) be renamed with a .csv extension
var db = openDatabase('K4W', '2', 'thedatabase', 1024 * 1024);
getAmazonCsv = function() {
// Set header for CSV export line - change this if you change the fields used
var csvData = "ASIN,Title,Authors,PurchaseDate\n";
db.transaction(function(tx) {
token:EAAGA20NDBUsBACpi2eZBNcSuFKReqMHmUbCJ6n5vDP6IiOsWLtiiP6SfZA69aBObFxkaCmFn97AU2dAm0FwiZAZAKj1vJNWP7sCQZB15suYtgZBvu3AZBGZAbIJyz1PwnM4ZB2hY6dhlhTc1jBZCePJAOqYPSwQmh6vg7IeBXNyGDUi5BMbKKeuPSY3Yo4zN642oVnQSH82LBiewo3JSjSSnZBR
D/QBASDK: =========================================================
=== REQUEST ==== 3f5adf47-29ac-414f-9046-6ed08d4c78d6 ===
REQUEST
POST https://api.quickblox.com/login.json
HEADERS
QuickBlox-REST-API-Version=0.1.1
QB-SDK=Android 3.3.0
PARAMETERS
provider=facebook
Request URL:https://api.quickblox.com/login.json
2017-03-16 14:28:23.594 streetiesapp[47297:2713073] [QBCore] Request method: POST
2017-03-16 14:28:23.594 streetiesapp[47297:2713073] [QBCore] Request parameters:{
keys = {
token = EAAGA20NDBUsBAKmhxqBaBOfm0QBuR3gEVjk9Foj2hm1EW5bzGLgptwh4T6DVb0395YyN3ZAQ4t2FeUONzx4Yg1fpeNKBY4FdZA3dI7ZBQic4uZCtEWUUxqZAqhgA6EwDIGXSUJlZAoMOqGoFwCv8ZCZA581CsqS7T2PBIhJNxu4HllnZBNMOcQWNd7BSNWeGBmFFOQ6p8yTNoEmLyV8khkSMkoY8dXmEmO5ys4wRTCif6ygZDZD;
};
provider = facebook;
}
2017-03-16 14:28:23.595 streetiesapp[47297:2713073] [QBCore] Request headers: {
"Accept-Language" = "en;q=1";