Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fun main(args: Array<String>) {
- assert(Prefs.lastLogin == "")
- assert(Prefs.updateDate == 0L)
- Prefs.lastLogin = "some login"
- Prefs.updateDate = 12345L
- assert(Prefs.lastLogin == "some login")
- assert(Prefs.updateDate == 12345L)
- }
- val preferenceImitator = mutableMapOf<String, Any>()
- class Prefs {
- private class PrefSaver<T>(var key: String, var defValue: T) {
- @Suppress("UNCHECKED_CAST")
- var value: T
- get() {
- val temp = when (defValue) {
- is Boolean -> preferenceImitator[key] as? T ?: defValue
- is Long -> preferenceImitator[key] as T ?: defValue
- is String -> preferenceImitator[key] as T ?: defValue
- is Int -> preferenceImitator[key] as T ?: defValue
- is Float -> preferenceImitator[key] as T ?: defValue
- is MutableSet<*> -> preferenceImitator[key] as T ?: defValue
- else -> throw ClassNotFoundException()
- }
- println("Get value '$temp' with key '$key'")
- return temp
- }
- set(value) {
- println("Set value '$value' with key '$key'")
- preferenceImitator[key] = when (defValue) {
- is Boolean -> value
- is Long -> value
- is String -> value
- is Int -> value
- is Float -> value
- is MutableSet<*> -> value
- else -> throw ClassNotFoundException()
- } as Any
- }
- }
- companion object {
- var updateDate = PrefSaver("update_date", 0L).value
- var lastLogin = PrefSaver("login", "").value
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement