diff options
author | Allan Wang <me@allanwang.ca> | 2017-05-30 17:26:14 -0700 |
---|---|---|
committer | Allan Wang <me@allanwang.ca> | 2017-05-30 17:26:14 -0700 |
commit | 20ef6500dc0b6d84905d92d8469feb6ff0ac502d (patch) | |
tree | 89a8d9a5132fee000aa2fa6ef641905239c38106 /app/src/main/kotlin/com/pitchedapps/frost/utils/DbUtils.kt | |
parent | 4c44dbc9933bd726c1da0bf326102835c4974d6b (diff) | |
download | frost-20ef6500dc0b6d84905d92d8469feb6ff0ac502d.tar.gz frost-20ef6500dc0b6d84905d92d8469feb6ff0ac502d.tar.bz2 frost-20ef6500dc0b6d84905d92d8469feb6ff0ac502d.zip |
migrate to dbflow
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/utils/DbUtils.kt')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/utils/DbUtils.kt | 33 |
1 files changed, 33 insertions, 0 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 new file mode 100644 index 00000000..dc16f6cc --- /dev/null +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/DbUtils.kt @@ -0,0 +1,33 @@ +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.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" + + 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) + }) + } +} |