|
|
@@ -1,26 +1,24 @@
|
|
|
package org.sirekanyan.outline.db
|
|
|
|
|
|
-import android.app.Application
|
|
|
import androidx.compose.runtime.Composable
|
|
|
import androidx.compose.runtime.remember
|
|
|
import androidx.compose.ui.platform.LocalContext
|
|
|
import app.cash.sqldelight.coroutines.asFlow
|
|
|
import app.cash.sqldelight.coroutines.mapToList
|
|
|
-import app.cash.sqldelight.driver.android.AndroidSqliteDriver
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
import kotlinx.coroutines.flow.Flow
|
|
|
+import org.sirekanyan.outline.app
|
|
|
import org.sirekanyan.outline.db.model.ApiUrl
|
|
|
|
|
|
@Composable
|
|
|
fun rememberApiUrlDao(): ApiUrlDao {
|
|
|
- val app = LocalContext.current.applicationContext as Application
|
|
|
- return remember { ApiUrlDao(app) }
|
|
|
+ val database = LocalContext.current.app().database
|
|
|
+ return remember { ApiUrlDao(database) }
|
|
|
}
|
|
|
|
|
|
-class ApiUrlDao(app: Application) {
|
|
|
+class ApiUrlDao(database: OutlineDatabase) {
|
|
|
|
|
|
- private val driver = AndroidSqliteDriver(OutlineDatabase.Schema, app, "outline.db")
|
|
|
- private val queries = OutlineDatabase(driver).apiUrlQueries
|
|
|
+ private val queries = database.apiUrlQueries
|
|
|
|
|
|
fun observeUrls(): Flow<List<ApiUrl>> =
|
|
|
queries.selectUrls().asFlow().mapToList(Dispatchers.IO)
|