aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/utils
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-05-30 19:55:57 -0700
committerAllan Wang <me@allanwang.ca>2017-05-30 19:55:57 -0700
commitc53e343f039b65c0aee2ee316b8c844a5b596bb8 (patch)
treebbe8bc8a4e416ca7d143306d2fe0e2ddb25f78d6 /app/src/main/kotlin/com/pitchedapps/frost/utils
parent20ef6500dc0b6d84905d92d8469feb6ff0ac502d (diff)
downloadfrost-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.kt37
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt7
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()