Skip to content

Instantly share code, notes, and snippets.

View timusus's full-sized avatar

Tim Malseed timusus

  • Itty Bitty Apps
  • Melbourne, Victoria
View GitHub Profile
##BaseRecyclerAdapter##
package ${PACKAGE_NAME};
import android.support.v7.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
public abstract class BaseRecyclerAdapter<T, VH extends RecyclerView.ViewHolder, I extends BaseRecyclerAdapter.OnItemClickListener<T>> extends RecyclerView.Adapter<VH> {
#!/usr/local/bin/ruby
## Created by Tim Malseed 16/07/2016
## This script depends on `onesky-ruby`
## Run gem install onesky-ruby
require 'onesky'
API_PUBLIC_KEY = 'your_public_key'
API_SECRET_KEY = 'your_secret_key'
#!/usr/local/bin/ruby
## Created by Tim Malseed 16/07/2016
## This script depends on `onesky-ruby`
## Run gem install onesky-ruby
require 'onesky'
SOURCE_FILE_NAME = 'strings.xml'
@timusus
timusus / HanekeImageLoader.swift
Last active May 16, 2017 00:53
Library-agnostic image loading (iOS/Swift)
import Foundation
class HanekeImageLoader: ImageLoader {
/**
Haneke requires that we register our 'formats' before they can be used.
**/
func setup() {
@timusus
timusus / Enqueue.kt
Created October 20, 2018 03:26
Retrofit Enqueue Snippet
call.enqueue {
override fun onResponse(response: Response) {
// Todo: Check if response is valid (>200 & < 300) or call
// Todo: Handle error if not valid
}
override fun onFailure() {
// Todo: Handle error
}
}
@timusus
timusus / Enqueue.kt
Created October 20, 2018 03:26
Retrofit Enqueue Snippet
call.enqueue {
override fun onSuccess(response: Response) {
// Todo: Check if response is valid (>200 & < 300) or call
}
override fun onError(error: Error) {
// Todo: Handle error
}
}
@timusus
timusus / Result.kt
Created October 20, 2018 03:27
Sealed Class Snippet
sealed class Result<out T> {
data class Success<out T>(val data: T?) : Result<T>()
data class Failure(val error: Error) : Result<Nothing>()
}
@timusus
timusus / Enqueue.kt
Created October 20, 2018 03:29
Sealed result Retrofit enqueue snippet
call.enqueue {
override fun onResult(result: Result) {
when(result){
is Success -> {
// Handle Success
}
is Failure -> {
// Handle failure
result.error.doSomething()
}
val responseErrorMapper: (Response<*>) -> Error? = { response ->
response.errorBody()?.string()?.let { errorBody ->
// Is this an OAuthError?
OAuthError.errorData(response, errorBody)?.let { errorData ->
OAuthError(response, errorData)
}
}
}
@timusus
timusus / Retrofit.kt
Created October 20, 2018 03:31
Retrofit CallAdapter
val retrofit = Retrofit.Builder()
.addCallAdapterFactory(CallResultAdapterFactory(responseErrorMapper))
.baseUrl(baseUrl)
.client(okHttpClient)
.addConverterFactory(converterFactory)
.build()