diff options
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/dbflow/FbTabsDb.kt')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/dbflow/FbTabsDb.kt | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/dbflow/FbTabsDb.kt b/app/src/main/kotlin/com/pitchedapps/frost/dbflow/FbTabsDb.kt index 7fc56af0..18f0e2e8 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/dbflow/FbTabsDb.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/dbflow/FbTabsDb.kt @@ -6,13 +6,16 @@ import com.pitchedapps.frost.utils.L import com.raizlabs.android.dbflow.annotation.Database import com.raizlabs.android.dbflow.annotation.PrimaryKey import com.raizlabs.android.dbflow.annotation.Table +import com.raizlabs.android.dbflow.kotlinextensions.database +import com.raizlabs.android.dbflow.kotlinextensions.fastSave import com.raizlabs.android.dbflow.kotlinextensions.from -import com.raizlabs.android.dbflow.sql.language.SQLite +import com.raizlabs.android.dbflow.kotlinextensions.select import com.raizlabs.android.dbflow.structure.BaseModel /** * Created by Allan Wang on 2017-05-30. */ +const val TAB_COUNT = 4 @Database(version = FbTabsDb.VERSION) object FbTabsDb { @@ -23,13 +26,17 @@ object FbTabsDb { @Table(database = FbTabsDb::class, allFields = true) data class FbTabModel(@PrimaryKey var position: Int = -1, var tab: FbItem = FbItem.FEED) : BaseModel() +/** + * Load tabs synchronously + * Note that tab length should never be a big number anyways + */ fun loadFbTabs(): List<FbItem> { - val tabs: List<FbTabModel>? = SQLite.select().from(FbTabModel::class).orderBy(FbTabModel_Table.position, true).queryList() - if (tabs?.isNotEmpty() ?: false) return tabs!!.map { it.tab } - L.d("No tabs; loading default") + val tabs: List<FbTabModel>? = (select from (FbTabModel::class)).orderBy(FbTabModel_Table.position, true).queryList() + if (tabs?.size == TAB_COUNT) return tabs.map(FbTabModel::tab) + L.d("No tabs (${tabs?.size}); loading default") return defaultTabs() } -fun List<FbItem>.saveAsync() { - mapIndexed { index, fbTab -> FbTabModel(index, fbTab) }.replace(FbTabsDb.NAME) +fun List<FbItem>.save() { + database<FbTabsDb>().beginTransactionAsync(mapIndexed(::FbTabModel).fastSave().build()).execute() }
\ No newline at end of file |