commit 41109da54c33b145f23c3754802b18878b66e032 Author: Erik C. Thauvin Date: Mon Aug 22 21:36:01 2016 -0700 diff --git a/Preferences.kt b/Preferences.kt new file mode 100644 index 0000000..2767554 --- /dev/null +++ b/Preferences.kt @@ -0,0 +1,38 @@ +import android.content.Context +import android.content.SharedPreferences +import android.preference.PreferenceManager + +fun Context.getDefaultSharedPreferences(): SharedPreferences { + return PreferenceManager.getDefaultSharedPreferences(this) +} + +fun SharedPreferences.clear() { + edit().clear().apply() +} + +fun SharedPreferences.put(key: String, value: Any) { + when (value) { + is String -> edit().putString(key, value).apply() + is Float -> edit().putFloat(key, value).apply() + is Int -> edit().putInt(key, value).apply() + is Boolean -> edit().putBoolean(key, value).apply() + is Long -> edit().putLong(key, value).apply() + is Set<*> -> { + if (value.all { it is String }) { + edit().putStringSet(key, value as Set) + } + } + } +} + +fun SharedPreferences.put(vararg pairs: Pair) { + edit().apply { + pairs.forEach { + putString(it.first, it.second) + } + }.apply() +} + +fun SharedPreferences.remove(key: String) { + edit().remove(key).apply() +} \ No newline at end of file