Instantly share code, notes, and snippets.
Created
July 23, 2020 17:16
-
Star
0
(0)
You must be signed in to star a gist -
Fork
0
(0)
You must be signed in to fork a gist
-
Save swetakadam/a68ba51b9f683a529db7630838ee0785 to your computer and use it in GitHub Desktop.
A shared preferences implementation using HashMaps
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.content.SharedPreferences | |
// need little clean up to get rid of !! | |
class TestSharedPreferences() : SharedPreferences, SharedPreferences.Editor { | |
private val hashMap = mutableMapOf<String,Any>() | |
lateinit var key : String | |
lateinit var value : Any | |
override fun edit() : MockSharedPreferences{ | |
return this | |
} | |
override fun clear(): SharedPreferences.Editor { | |
hashMap.clear() | |
return this | |
} | |
override fun putLong(key: String?, value: Long): SharedPreferences.Editor { | |
this.key = key!! | |
this.value = value | |
return this | |
} | |
override fun putInt(key: String?, value: Int): SharedPreferences.Editor { | |
this.key = key!! | |
this.value = value | |
return this | |
} | |
override fun remove(key: String?): SharedPreferences.Editor { | |
this.key = key!! | |
this.value = value | |
return this | |
} | |
override fun putBoolean(key: String?, value: Boolean): SharedPreferences.Editor { | |
this.key = key!! | |
this.value = value | |
return this | |
} | |
override fun putStringSet(key: String?, values: MutableSet<String>?): SharedPreferences.Editor { | |
this.key = key!! | |
this.value = value | |
return this | |
} | |
override fun commit(): Boolean { | |
return true | |
} | |
override fun putFloat(key: String?, value: Float): SharedPreferences.Editor { | |
this.key = key!! | |
this.value = value | |
return this | |
} | |
override fun apply() { | |
hashMap[key] = value | |
} | |
override fun putString(key: String?, value: String?): SharedPreferences.Editor { | |
this.key = key!! | |
this.value = value ?: "" | |
return this | |
} | |
override fun getString(key: String, default: String?): String? { | |
return if(hashMap.containsKey(key)){ | |
val v = hashMap[key] | |
if(v is String) { | |
v | |
} | |
else { | |
default | |
} | |
}else { | |
default | |
} | |
} | |
override fun getLong(key: String, default: Long): Long { | |
return if(hashMap.containsKey(key)){ | |
val v = hashMap[key] | |
if(v is Long) { | |
v | |
} | |
else { | |
default | |
} | |
}else { | |
default | |
} | |
} | |
override fun getFloat(key: String, default: Float): Float { | |
return if(hashMap.containsKey(key)){ | |
val v = hashMap[key] | |
if(v is Float) { | |
v | |
} | |
else { | |
default | |
} | |
}else { | |
default | |
} | |
} | |
override fun getStringSet(key: String?, defValues: MutableSet<String>?): MutableSet<String> { | |
return mutableSetOf<String>() | |
} | |
override fun registerOnSharedPreferenceChangeListener(listener: SharedPreferences.OnSharedPreferenceChangeListener?) { | |
} | |
override fun getInt(key: String, default: Int): Int { | |
return if(hashMap.containsKey(key)){ | |
val v = hashMap[key] | |
if(v is Int) { | |
v | |
} | |
else { | |
default | |
} | |
}else { | |
default | |
} | |
} | |
override fun getAll(): MutableMap<String, *> { | |
return hashMap | |
} | |
override fun contains(key: String?): Boolean { | |
return hashMap.containsKey(key) | |
} | |
override fun getBoolean(key: String, default: Boolean): Boolean { | |
return if(hashMap.containsKey(key)){ | |
val v = hashMap[key] | |
if(v is Boolean) { | |
v | |
} | |
else { | |
default | |
} | |
}else { | |
default | |
} | |
} | |
override fun unregisterOnSharedPreferenceChangeListener(listener: SharedPreferences.OnSharedPreferenceChangeListener?) { | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment