diff --git a/app/src/main/java/com/github/damontecres/wholphin/data/ServerRepository.kt b/app/src/main/java/com/github/damontecres/wholphin/data/ServerRepository.kt index f3cd888e..5deba4c3 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/data/ServerRepository.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/data/ServerRepository.kt @@ -17,6 +17,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.map @@ -68,7 +69,9 @@ class ServerRepository _current .flatMapLatest { user -> if (user?.user != null) { - serverDao.getUserFlow(user.user.serverId, user.user.id) + serverDao + .getUserFlow(user.user.serverId, user.user.id) + .distinctUntilChanged() } else { flow { emit(null) } } diff --git a/app/src/main/java/com/github/damontecres/wholphin/services/UserSwitchListener.kt b/app/src/main/java/com/github/damontecres/wholphin/services/UserSwitchListener.kt index 536dfb40..06115982 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/services/UserSwitchListener.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/services/UserSwitchListener.kt @@ -15,6 +15,8 @@ import com.github.damontecres.wholphin.ui.launchIO import com.github.damontecres.wholphin.util.WholphinDispatchers import dagger.hilt.android.qualifiers.ActivityContext import dagger.hilt.android.scopes.ActivityScoped +import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.update import kotlinx.coroutines.supervisorScope import kotlinx.coroutines.withContext @@ -38,14 +40,17 @@ class UserSwitchListener init { context as AppCompatActivity context.lifecycleScope.launchDefault { - serverRepository.currentUserFlow.collect { user -> - Timber.d("New user") - seerrServerRepository.clear() - homeSettingsService.currentSettings.update { HomePageResolvedSettings.EMPTY } - if (user != null) { - switchUser(user) + serverRepository.currentUserFlow + .distinctUntilChanged { old, new -> + old?.id == new?.id && old?.uiLanguage == new?.uiLanguage + }.collectLatest { user -> + Timber.d("UserSwitch: %s", user?.id) + seerrServerRepository.clear() + homeSettingsService.currentSettings.update { HomePageResolvedSettings.EMPTY } + if (user != null) { + switchUser(user) + } } - } } } diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c70eeeba..0dbe1e87 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -55,7 +55,7 @@ Seleccionar servidor Seleccionar Usuario Nombre - Aleatorio + Selección aleatoria Estudios Enviar Subtítulo @@ -105,7 +105,7 @@ Quitar de favoritos Mostrar información de depuración Mostrar - Aleatorio + Reproducción aleatoria Saltar Ordenar por fecha de inclusión del episodio Acerca de @@ -738,4 +738,7 @@ T%1$02dE%2$02d-E%3$02d E%1$d Temporada %1$d + Eliminar de la lista de reproducción + Credenciales caducadas, vuelve a iniciar sesión + No tienes autorización para acceder al servidor en este momento diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index deb42ecd..a208aeb6 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -761,4 +761,6 @@ S%1$d O%2$d-%3$d S%1$02d O%2$02d S%1$02d O%2$02d-%3$02d + Wyłącz sprzętowe wsparcie dźwięku + Wyłączenie sprzętowego wsparcie dźwięku może naprawić błąd z zatrzymaniem się odtwarzania na niektórych urządzeniach diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index dcd81011..1c2321e9 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -91,7 +91,7 @@ Студии Субтитры Субтитры - Рекомендации + Предложения Сменить сервер Сменить Лучшие из непросмотренных @@ -728,7 +728,7 @@ Туннелирование видео Вид полосы перемотки при нажатии кнопок пульта Минимальный - Trickplay + Превью при перемотке Небольшая полоса перемотки внизу экрана (по умолчанию) Полоса перемотки с миниатюрами кадров (Trickplay) Без полосы перемотки @@ -759,8 +759,8 @@ Процент затемнения Затемнение экрана Фотоальбомы - В избранном пока ничего нет + В избранном пока ничего нет! Убрать из плейлиста - Срок действия учётных данных истёк. Пожалуйста, войдите снова. + Срок действия учётных данных истёк. Пожалуйста, войдите снова У вас нет доступа к серверу в данный момент diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 4c4fff48..474d685a 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -684,4 +684,6 @@ Inspelningar Mappar Användarvisningar + %1$sfilmer + Kvalitetsprofil diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index a8f40586..e36dc507 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -687,4 +687,14 @@ 调暗屏幕 相册 未找到收藏! + %1$d小时%2$d秒 + 第%1$d季 第%2$d集 + 第%1$d季 第%2$d-%3$d集 + 第%1$02d季第%2$02d集 + 第%1$02d季第%2$02d-%3$02d集 + 第%1$d集 + 第%1$d季 + 从播放列表中移除 + 凭据已过期,请重新登录 + 您目前无权访问该服务器