update tv ux, fix configuration-cache issues

This commit is contained in:
2026-07-21 14:38:02 +03:00
parent a264db284d
commit a062427d0d
11 changed files with 50 additions and 79 deletions
+2 -2
View File
@@ -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"
}
}
@@ -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() },
@@ -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() },
@@ -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() },
@@ -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()
@@ -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() },
@@ -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>,