update tv ux, fix configuration-cache issues
This commit is contained in:
@@ -12,8 +12,8 @@ android {
|
||||
applicationId = namespace
|
||||
minSdk = libs.versions.proj.min.get().toInt()
|
||||
targetSdk = libs.versions.proj.target.get().toInt()
|
||||
versionCode = 39
|
||||
versionName = "1.21"
|
||||
versionCode = 40
|
||||
versionName = "1.22"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ class SyncClientServerRecentlyWatchedRepository(
|
||||
private fun createSync(): RemoteSourceSynchronizer<RecentlyWatchedInfo, String> {
|
||||
return RemoteSourceSynchronizer(
|
||||
isSync = { syncRepository.isSynchronized(AggregateType.RECENTLY_WATCHED) },
|
||||
setSync = { syncRepository.set(AggregateType.RECENTLY_WATCHED, true) },
|
||||
setSync = { syncRepository.set(AggregateType.RECENTLY_WATCHED, it) },
|
||||
authTokenCache = authTokenCache,
|
||||
queryRemote = { remote.getAllRecentlyWatched() },
|
||||
queryLocal = { local.getAllRecentlyWatched() },
|
||||
|
||||
+2
-4
@@ -8,7 +8,6 @@ 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
|
||||
@@ -30,8 +29,7 @@ class SyncClientSavedMovieRepository(
|
||||
private val syncRepository: SyncRepository,
|
||||
private val authTokenCache: TokenStorage,
|
||||
private val json: Json,
|
||||
private val pendingOperationSynchronizer: PendingOperationSynchronizer,
|
||||
private val dispatcherProvider: DispatcherProvider
|
||||
private val pendingOperationSynchronizer: PendingOperationSynchronizer
|
||||
) : SavedMovieRepository {
|
||||
|
||||
override suspend fun save(details: VideoDetails) {
|
||||
@@ -81,7 +79,7 @@ class SyncClientSavedMovieRepository(
|
||||
private fun createSync(): RemoteSourceSynchronizer<VideoDetails, Long> {
|
||||
return RemoteSourceSynchronizer(
|
||||
isSync = { syncRepository.isSynchronized(AggregateType.SAVED_MOVIE) },
|
||||
setSync = { syncRepository.set(AggregateType.SAVED_MOVIE, true) },
|
||||
setSync = { syncRepository.set(AggregateType.SAVED_MOVIE, it) },
|
||||
authTokenCache = authTokenCache,
|
||||
queryRemote = { remote.getAll().first() },
|
||||
queryLocal = { local.getAll().first() },
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ class SyncClientServerSearchRepository(
|
||||
private fun createSync(): RemoteSourceSynchronizer<String, String> {
|
||||
return RemoteSourceSynchronizer(
|
||||
isSync = { syncRepository.isSynchronized(AggregateType.SEARCH) },
|
||||
setSync = { syncRepository.set(AggregateType.SEARCH, true) },
|
||||
setSync = { syncRepository.set(AggregateType.SEARCH, it) },
|
||||
authTokenCache = authTokenCache,
|
||||
queryRemote = { remote.search("").first() },
|
||||
queryLocal = { local.search("").first() },
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ class SyncMovieTagRepository(
|
||||
private fun createSync(): RemoteSourceSynchronizer<MovieTagLink, String> {
|
||||
return RemoteSourceSynchronizer(
|
||||
isSync = { syncRepository.isSynchronized(AggregateType.MOVIE_TAG) },
|
||||
setSync = { syncRepository.set(AggregateType.MOVIE_TAG, true) },
|
||||
setSync = { syncRepository.set(AggregateType.MOVIE_TAG, it) },
|
||||
authTokenCache = tokenStorage,
|
||||
queryRemote = {
|
||||
val allTags = userTagRemote.userTags.first()
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ class SyncUserTagRepository(
|
||||
private fun createSync(): RemoteSourceSynchronizer<TagInfo, String> {
|
||||
return RemoteSourceSynchronizer(
|
||||
isSync = { syncRepository.isSynchronized(AggregateType.USER_TAG) },
|
||||
setSync = { syncRepository.set(AggregateType.USER_TAG, true) },
|
||||
setSync = { syncRepository.set(AggregateType.USER_TAG, it) },
|
||||
authTokenCache = tokenStorage,
|
||||
queryRemote = { remote.userTags.first() },
|
||||
queryLocal = { local.userTags.first() },
|
||||
|
||||
-11
@@ -10,17 +10,6 @@ import ru.shadowsparky.http.domain.TokenStorage
|
||||
import ru.shadowsparky.http.domain.hasAccount
|
||||
import ru.shadowsparky.koin
|
||||
|
||||
suspend fun TokenStorage.use(
|
||||
active: suspend () -> Unit,
|
||||
fallback: suspend () -> Unit
|
||||
) {
|
||||
if (hasAccount()) {
|
||||
runCatching { active() }.onFailure { fallback() }
|
||||
} else {
|
||||
fallback()
|
||||
}
|
||||
}
|
||||
|
||||
fun <T> TokenStorage.queryFlow(
|
||||
active: Flow<T>,
|
||||
fallback: Flow<T>,
|
||||
|
||||
Reference in New Issue
Block a user