Skip to content

Instantly share code, notes, and snippets.

@kmenager
kmenager / SharedPref.kt
Last active November 21, 2017 20:58
Preference - Medium
inline fun SharedPreferences.edit(operation: (SharedPreferences.Editor) -> Unit) {
val editor = this.edit()
operation(editor)
editor.apply()
}
open class PreferenceRepository(val gson: Gson, val sharedPreferences: SharedPreferences) {
operator inline fun <reified T> get(key: DefaultKey<T>, defaultValue: T? = null): T? {
val value = sharedPreferences.getString(key.key, "")
@kmenager
kmenager / SealedClass.kt
Created November 21, 2017 20:50
Preference - Medium
sealed class DefaultKey<T>(val key:String)
object AccessTokenKey : DefaultKey<AccessToken>("access-token")
@kmenager
kmenager / AccessToken.kt
Created November 20, 2017 22:44
Preference - Medium
data class AccessToken(val token: String)
@kmenager
kmenager / PreferencesHelperImpl.java
Created November 20, 2017 21:51
Preference - Medium
public class PreferencesHelperImpl implements PreferencesHelper {
private final Gson gson;
private final SharedPreferences preferences;
public PreferencesHelperImpl(Gson gson, SharedPreferences sharedPreferences) {
this.gson = gson;
this.preferences = sharedPreferences;
}
@kmenager
kmenager / AccessToken.java
Created November 20, 2017 21:47
Preference - Medium
public class AccessToken {
private final String token;
public AccessToken(String token) {
this.token = token;
}
}
@kmenager
kmenager / AccessToken.java
Last active November 20, 2017 21:50
Preferences helper - Medium
public class AccessToken {
private final String token;
public AccessToken(String token) {
this.token = token;
}
}