diff options
author | Allan Wang <me@allanwang.ca> | 2017-05-30 19:55:57 -0700 |
---|---|---|
committer | Allan Wang <me@allanwang.ca> | 2017-05-30 19:55:57 -0700 |
commit | c53e343f039b65c0aee2ee316b8c844a5b596bb8 (patch) | |
tree | bbe8bc8a4e416ca7d143306d2fe0e2ddb25f78d6 /app/src/main/kotlin/com/pitchedapps/frost/utils | |
parent | 20ef6500dc0b6d84905d92d8469feb6ff0ac502d (diff) | |
download | frost-c53e343f039b65c0aee2ee316b8c844a5b596bb8.tar.gz frost-c53e343f039b65c0aee2ee316b8c844a5b596bb8.tar.bz2 frost-c53e343f039b65c0aee2ee316b8c844a5b596bb8.zip |
working tab db and initial cookie map
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/utils')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/utils/DbUtils.kt | 37 | ||||
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt | 7 |
2 files changed, 25 insertions, 19 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/DbUtils.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/DbUtils.kt index dc16f6cc..5b10e581 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/DbUtils.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/DbUtils.kt @@ -3,31 +3,34 @@ package com.pitchedapps.frost.utils import android.content.Context import com.raizlabs.android.dbflow.config.FlowManager import com.raizlabs.android.dbflow.kotlinextensions.processInTransactionAsync -import com.raizlabs.android.dbflow.structure.BaseModel +import com.raizlabs.android.dbflow.kotlinextensions.save import com.raizlabs.android.dbflow.structure.database.transaction.Transaction /** * Created by Allan Wang on 2017-05-30. */ + object DbUtils { fun db(name: String) = FlowManager.getDatabase(name) fun dbName(name: String) = "$name.db" + fun deleteDatabase(c: Context, name: String) = c.deleteDatabase(dbName(name)) - inline fun <reified T : BaseModel> replace( - context: Context, dbName: String, type: Class<T>, data: List<T>, - crossinline callback: ((successful: Boolean) -> Unit)) { - db(dbName).reset(context) - data.processInTransactionAsync({ - t, databaseWrapper -> - t.save(databaseWrapper) - }, - Transaction.Success { - callback.invoke(true) - }, - Transaction.Error { _, error -> - L.e(error.message ?: "DbReplace error") - callback.invoke(false) - }) - } } + +inline fun <reified T : Any> List<T>.replace(context: Context, dbName: String, + crossinline callback: ((successful: Boolean) -> Unit)) { + L.d("Replacing $dbName.db") + DbUtils.db(dbName).reset(context) + this.processInTransactionAsync({ + t, databaseWrapper -> + t.save(databaseWrapper) + }, + Transaction.Success { + callback.invoke(true) + }, + Transaction.Error { _, error -> + L.e(error.message ?: "DbReplace error") + callback.invoke(false) + }) +}
\ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt index 710da845..2ac58113 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt @@ -9,11 +9,10 @@ import android.content.SharedPreferences private val PREFERENCE_NAME = "${com.pitchedapps.frost.BuildConfig.APPLICATION_ID}.prefs" private val LAST_ACTIVE = "last_active" +private val USER_ID = "user_id" object Prefs { - val prefs: Prefs by lazy { this } - lateinit private var c: Context operator fun invoke(c: Context) { this.c = c @@ -26,6 +25,10 @@ object Prefs { get() = sp.getLong(LAST_ACTIVE, -1) set(value) = set(LAST_ACTIVE, System.currentTimeMillis()) + var userId: Int + get() = sp.getInt(USER_ID, -1) + set(value) = set(USER_ID, value) + private fun set(key: String, value: Boolean) = sp.edit().putBoolean(key, value).apply() private fun set(key: String, value: Int) = sp.edit().putInt(key, value).apply() private fun set(key: String, value: Long) = sp.edit().putLong(key, value).apply() |