Skip to content

Instantly share code, notes, and snippets.

View dustin-graham's full-sized avatar

Dustin Graham dustin-graham

  • AxleHire
  • United States
View GitHub Profile
@dustin-graham
dustin-graham / import_image_assets.py
Created November 13, 2015 23:52
imports image assets from a source directory into the res directory of an Android project. My designer gave me a directory of dpi-sized assets and this is an automated way to get them into the project quickly. The format this script expects is <nameoffile>_<densitymodifier>.<extension>. The files will be copied into the user-specified res folder…
import os, sys, shutil
legalResolutionModifiers = ["ldpi","mdpi","hdpi","xhdpi","xxhdpi","xxxhdpi"]
# check inputs
if len(sys.argv) != 3:
print "illegal usage"
sys.exit()
sourceFolder = sys.argv[1]
@dustin-graham
dustin-graham / ApiService.java
Created February 15, 2015 06:17
Infinite Scrolling Android RecyclerView with RxJava
public static Observable<List<String>> paginatedThings(final Observable<Void> onNextObservable) {
return Observable.create(new Observable.OnSubscribe<List<String>>() {
@Override
public void call(final Subscriber<? super List<String>> subscriber) {
onNextObservable.subscribe(new Observer<Void>() {
int latestPage = -1;
@Override
public void onCompleted() {
subscriber.onCompleted();
@dustin-graham
dustin-graham / LifterDeviceConnector.m
Created April 9, 2014 19:35
Combining to signals created from delegate callbacks where one is a success message and another is a failure. convert the failure into an error signal
RACSignal *connectionSignal = [self rac_signalForSelector:@selector(centralManager:didConnectPeripheral:) fromProtocol:@protocol(CBCentralManagerDelegate)];
RACSignal *connectionFailureSignal = [[self rac_signalForSelector:@selector(centralManager:didFailToConnectPeripheral:error:) fromProtocol:@protocol(CBCentralManagerDelegate)] flattenMap:^RACStream *(RACTuple *tuple) {
return [RACSignal error:tuple.third];
}];
RACSignal *completeConnectionSignal = [[RACSignal merge:@[connectionSignal,connectionFailureSignal]] catch:^RACSignal *(NSError *error) {
//handle the connection failure?
}];
@dustin-graham
dustin-graham / ServiceClient.java
Created March 25, 2014 22:09
A simple class for caching RetroFit REST clients
public class ServiceClient {
public interface ServiceClientDelegate {
Client getClient();
}
private static ServiceClient instance;
private final int CONNECTION_TIMEOUT = 60000;
private RestAdapter mRestAdapter;
@dustin-graham
dustin-graham / agenda_schema.json
Created March 13, 2014 17:05
sample database schema definition for the contentprovider generator
{
"packageName": "com.rain.android.agenda.data",
"providerName": "agenda",
"databaseVersion": 1,
"tables": [
{
"name": "agenda",
"members" : [
{
"type" : "string",
@dustin-graham
dustin-graham / build.gradle
Last active August 29, 2015 13:57
build.gradle file for using the ContentProviderGenerator
apply plugin: 'android'
import com.rain.utils.android.cpgen.generator.*;
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
@dustin-graham
dustin-graham / Setup.cs
Last active August 29, 2015 13:56
A sample Android Setup.cs class for MvvmCross
using Android.App;
using Android.Content;
using Cirrious.MvvmCross.Droid.Platform;
using Cirrious.MvvmCross.Droid.Views;
using Cirrious.MvvmCross.ViewModels;
using MyRep.Core;
namespace MyRep.Core
{
public class Setup : MvxAndroidSetup
@dustin-graham
dustin-graham / App.cs
Last active August 29, 2015 13:56
A sample MvvmCross Application class
using System;
using Cirrious.MvvmCross.ViewModels;
namespace MyRep.Core
{
public class App : MvxApplication
{
public App ()
{
RegisterAppStart (new MvxAppStart<AddressQueryViewModel>());
@dustin-graham
dustin-graham / AddressQueryViewModel.cs
Created February 26, 2014 22:53
The basic framework of an MvvmCross ViewModel
using System;
using Cirrious.MvvmCross.ViewModels;
namespace MyRep
{
public class AddressQueryViewModel : MvxViewModel
{
public AddressQueryViewModel ()
{
}
@dustin-graham
dustin-graham / RainEmployeeProvider.java
Created February 22, 2014 00:09
An example Android ContentProvider
package com.rain.example.data.provider;
import com.rain.example.data.database.RainEmployeeDatabase;
import com.rain.example.data.database.table.*;
import android.provider.BaseColumns;
import android.text.TextUtils;
import android.content.ContentUris;
import android.database.sqlite.SQLiteQueryBuilder;