Guest User

Untitled

a guest
Nov 23rd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. inline fun SharedPreferences.edit(operation: (SharedPreferences.Editor) -> Unit) {
  2. val editor = this.edit()
  3. operation(editor)
  4. editor.apply()
  5. }
  6.  
  7. open class PreferenceRepository(val gson: Gson, val sharedPreferences: SharedPreferences) {
  8.  
  9. operator inline fun <reified T> get(key: DefaultKey<T>, defaultValue: T? = null): T? {
  10. val value = sharedPreferences.getString(key.key, "")
  11. return if (value.isEmpty()) {
  12. defaultValue
  13. } else {
  14. try {
  15. gson.fromJson(value, T::class.java)
  16. } catch (e: Exception) {
  17. defaultValue
  18. }
  19. }
  20. }
  21.  
  22. operator inline fun <reified T> set(key: DefaultKey<T>, value: T?) {
  23. sharedPreferences.edit {
  24. it.putString(key.key, gson.toJson(value))
  25. }
  26. }
  27. }
Add Comment
Please, Sign In to add comment