blob: dc16f6cc5fa62ec4e52cc56783b206f8e796d5ef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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)
})
}
}
|