Skip to content

Instantly share code, notes, and snippets.

View krupalshah's full-sized avatar
🎯
Focusing

krupal krupalshah

🎯
Focusing
View GitHub Profile
@krupalshah
krupalshah / PreferenceHelper.java
Last active June 7, 2017 15:58
helper for shared prefs - java version
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.text.TextUtils;
/**
* helper for shared prefs - java version
*/
@krupalshah
krupalshah / PreferenceHelper.java
Last active June 7, 2017 15:58
helper for shared prefs - java version - Refactoring step 1
private static void edit(Context context, Performer<SharedPreferences.Editor> performer) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = sharedPreferences.edit();
performer.performOperation(editor);
editor.apply();
}
public interface Performer<T> {
void performOperation(T victim);
}
@krupalshah
krupalshah / PreferenceHelper.java
Last active August 12, 2018 10:01
helper for shared prefs - java version - Refactoring Step 1
public static void setStringPreference(Context context, String key, String value) {
edit(context, (editor) -> editor.putString(key, value));
}
@krupalshah
krupalshah / PreferenceHelper.java
Last active August 12, 2018 10:05
helper for shared prefs - java version - Refactoring step 2
public static <T> void setValue(Context context, String key, T value) {
if (value instanceof String) {
edit(context, (editor) -> editor.putString(key, (String) value));
} else if (value instanceof Boolean) {
edit(context, (editor) -> editor.putBoolean(key, (Boolean) value));
} else if (value instanceof Integer) {
edit(context, (editor) -> editor.putInt(key, (Integer) value));
} else if (value instanceof Float) {
edit(context, (editor) -> editor.putFloat(key, (Float) value));
} else {
@krupalshah
krupalshah / PreferenceHelper.java
Last active August 12, 2018 10:06
helper for shared prefs - java version - Refactoring final version
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.text.TextUtils;
public class PreferenceHelper {
private PreferenceHelper() {
}
@krupalshah
krupalshah / PreferenceHelper.kt
Created June 4, 2017 15:15
helper for shared prefs - kotlin version - Refactoring step 3
inline fun SharedPreferences.edit(operation: (SharedPreferences.Editor) -> Unit) {
val editor = this.edit()
operation(editor)
editor.apply()
}
@krupalshah
krupalshah / PreferenceHelper.kt
Last active September 28, 2019 12:45
helper for shared prefs - kotlin version - Refactoring step 4
inline fun SharedPreferences.edit(operation: (SharedPreferences.Editor) -> Unit) {
val editor = this.edit()
operation(editor)
editor.apply()
}
fun SharedPreferences.setValue(key: String, value: Any?) {
when (value) {
is String? -> edit({ it.putString(key, value) })
is Int -> edit({ it.putInt(key, value) })
@krupalshah
krupalshah / PreferenceHelper.kt
Last active June 17, 2017 11:36
helper for shared prefs - kotlin version - refactoring step 4
inline fun <reified T : Any> SharedPreferences.get(key: String, defaultValue: T? = null): T? {
return when (T::class) {
String::class -> getString(key, defaultValue as? String) as T?
Int::class -> getInt(key, defaultValue as? Int ?: -1) as T?
Boolean::class -> getBoolean(key, defaultValue as? Boolean ?: false) as T?
Float::class -> getFloat(key, defaultValue as? Float ?: -1f) as T?
Long::class -> getLong(key, defaultValue as? Long ?: -1) as T?
else -> throw UnsupportedOperationException("Not yet implemented")
}
@krupalshah
krupalshah / PreferenceHelper.kt
Last active April 23, 2020 17:26
helper for shared prefs - kotlin version
object PreferenceHelper {
fun defaultPrefs(context: Context): SharedPreferences
= PreferenceManager.getDefaultSharedPreferences(context)
fun customPrefs(context: Context, name: String): SharedPreferences
= context.getSharedPreferences(name, Context.MODE_PRIVATE)
inline fun SharedPreferences.edit(operation: (SharedPreferences.Editor) -> Unit) {
val editor = this.edit()
@krupalshah
krupalshah / MainActivity.kt
Created June 4, 2017 19:37
helper for shared prefs - kotlin version - usage after refactoring step 4
class MainActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val prefs = PreferenceHelper.defaultPrefs(this)
//put value in prefs
prefs.setValue(Consts.SharedPrefs.KEY,"any_type_of_value")
//get value from prefs
val value:String? = prefs.getValue(Consts.SharedPrefs.KEY)