fix web target?
This commit is contained in:
@@ -10,7 +10,7 @@ plugins {
|
||||
|
||||
sqldelight {
|
||||
databases {
|
||||
create("AppDatabase") {
|
||||
register("AppDatabase") {
|
||||
packageName.set("ru.shadowsparky.vbox.app")
|
||||
generateAsync.set(true)
|
||||
}
|
||||
|
||||
+3
-2
@@ -2,6 +2,7 @@
|
||||
package ru.shadowsparky.vbox.shared.data
|
||||
|
||||
import app.cash.sqldelight.Query
|
||||
import app.cash.sqldelight.async.coroutines.awaitAsOneOrNull
|
||||
import app.cash.sqldelight.coroutines.asFlow
|
||||
import app.cash.sqldelight.coroutines.mapToList
|
||||
import app.cash.sqldelight.coroutines.mapToOneOrNull
|
||||
@@ -70,7 +71,7 @@ class AndroidOfflineStorage(
|
||||
withContext(Dispatchers.IO) {
|
||||
getQueries()
|
||||
.selectById(id)
|
||||
.executeAsOneOrNull()
|
||||
.awaitAsOneOrNull()
|
||||
}
|
||||
|
||||
override fun queryByArgs(movieId: Long, seasonId: Long?): Flow<List<OfflineVideo>> = flow {
|
||||
@@ -86,7 +87,7 @@ class AndroidOfflineStorage(
|
||||
override suspend fun find(movieId: Long, seasonId: Long?, episodeId: Long?): OfflineVideo? {
|
||||
return withContext(Dispatchers.IO) {
|
||||
getQueries().selectByFullArgs(movieId, seasonId, episodeId)
|
||||
.executeAsOneOrNull()
|
||||
.awaitAsOneOrNull()
|
||||
?.toDomain()
|
||||
}
|
||||
}
|
||||
|
||||
+2
-4
@@ -28,8 +28,7 @@ class RemoteSavedMovieRepository(
|
||||
) : SavedMovieRepository {
|
||||
|
||||
override fun getAll(): Flow<List<VideoDetails>> {
|
||||
return eventListener.event
|
||||
.filter { it is RemoteEvent.OnSaved }
|
||||
return eventListener.event.filter { it is RemoteEvent.OnSaved }
|
||||
.map { getAllSingle() }
|
||||
.onStart { emit(getAllSingle()) }
|
||||
}
|
||||
@@ -52,8 +51,7 @@ class RemoteSavedMovieRepository(
|
||||
}
|
||||
|
||||
override fun isSaved(id: Long): Flow<Boolean> {
|
||||
return eventListener.event
|
||||
.filter { it is RemoteEvent.OnSaved && it.movieId == id }
|
||||
return eventListener.event.filter { it is RemoteEvent.OnSaved && it.movieId == id }
|
||||
.map { isSavedSingle(id) }
|
||||
.onStart { emit(isSavedSingle(id)) }
|
||||
}
|
||||
|
||||
+2
-2
@@ -37,9 +37,9 @@ class SqlSavedMovieRepository(
|
||||
}.flowOn(dispatcherProvider.io)
|
||||
}
|
||||
|
||||
private suspend fun obtain(): List<VideoDetails> = withContext(dispatcherProvider.io) {
|
||||
private suspend fun obtain(): List<VideoDetails> {
|
||||
val request = getRequest()
|
||||
request.awaitAsList().map {
|
||||
return request.awaitAsList().map {
|
||||
VideoDetails(
|
||||
it.saved_movie_id,
|
||||
it.poster_url,
|
||||
|
||||
+3
-1
@@ -8,6 +8,7 @@ import kotlinx.serialization.json.encodeToJsonElement
|
||||
import kotlinx.serialization.json.put
|
||||
import org.koin.core.annotation.Factory
|
||||
import org.koin.core.annotation.Named
|
||||
import ru.shadowsparky.domain.DispatcherProvider
|
||||
import ru.shadowsparky.http.domain.TokenStorage
|
||||
import ru.shadowsparky.http.domain.hasAccount
|
||||
import ru.shadowsparky.vbox.shared.data.RemoteSourceSynchronizer
|
||||
@@ -29,7 +30,8 @@ class SyncClientSavedMovieRepository(
|
||||
private val syncRepository: SyncRepository,
|
||||
private val authTokenCache: TokenStorage,
|
||||
private val json: Json,
|
||||
private val pendingOperationSynchronizer: PendingOperationSynchronizer
|
||||
private val pendingOperationSynchronizer: PendingOperationSynchronizer,
|
||||
private val dispatcherProvider: DispatcherProvider
|
||||
) : SavedMovieRepository {
|
||||
|
||||
override suspend fun save(details: VideoDetails) {
|
||||
|
||||
+2
-1
@@ -1,5 +1,6 @@
|
||||
package ru.shadowsparky.vbox.shared.data.sync
|
||||
|
||||
import app.cash.sqldelight.async.coroutines.awaitAsList
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.JsonNull
|
||||
@@ -28,7 +29,7 @@ class SqlPendingOperationRepository(
|
||||
}
|
||||
|
||||
override suspend fun query(type: AggregateType): List<OperationInfo> = withContext(dispatcherProvider.io) {
|
||||
val records = getQueries().getOperationsByAggregate(type.name).executeAsList()
|
||||
val records = getQueries().getOperationsByAggregate(type.name).awaitAsList()
|
||||
records.map { record ->
|
||||
OperationInfo(
|
||||
id = record.id,
|
||||
|
||||
+2
-1
@@ -1,5 +1,6 @@
|
||||
package ru.shadowsparky.vbox.shared.data.tag
|
||||
|
||||
import app.cash.sqldelight.async.coroutines.awaitAsOneOrNull
|
||||
import app.cash.sqldelight.coroutines.asFlow
|
||||
import app.cash.sqldelight.coroutines.mapToList
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
@@ -71,7 +72,7 @@ class SqlMovieTagRepository(
|
||||
}
|
||||
|
||||
private suspend fun queryId(tag: String): Long? = withContext(dispatcherProvider.io) {
|
||||
getTagsQueries().find(tag).executeAsOneOrNull()?.id
|
||||
getTagsQueries().find(tag).awaitAsOneOrNull()?.id
|
||||
}
|
||||
|
||||
private suspend fun getQueries(): MovieTagQueries {
|
||||
|
||||
+4
-1
@@ -4,8 +4,11 @@ import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.catch
|
||||
import kotlinx.coroutines.flow.emitAll
|
||||
import kotlinx.coroutines.flow.flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
import ru.shadowsparky.domain.DispatcherProvider
|
||||
import ru.shadowsparky.http.domain.TokenStorage
|
||||
import ru.shadowsparky.http.domain.hasAccount
|
||||
import ru.shadowsparky.koin
|
||||
|
||||
suspend fun TokenStorage.use(
|
||||
active: suspend () -> Unit,
|
||||
@@ -30,7 +33,7 @@ fun <T> TokenStorage.queryFlow(
|
||||
} else {
|
||||
fallback
|
||||
})
|
||||
}
|
||||
}.flowOn(koin.get<DispatcherProvider>().io)
|
||||
}
|
||||
|
||||
suspend fun <T> TokenStorage.query(
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
config.resolve.fallback = {
|
||||
...config.resolve.fallback,
|
||||
"net": false
|
||||
};
|
||||
@@ -11,7 +11,6 @@ kotlin {
|
||||
val commonMain by getting {
|
||||
dependencies {
|
||||
implementation(project(":libs:base"))
|
||||
implementation(libs.ktor.client.cio)
|
||||
implementation(libs.kotlinx.rpc.krpc.client)
|
||||
// Server API
|
||||
implementation(libs.kotlinx.rpc.krpc.server)
|
||||
|
||||
Reference in New Issue
Block a user