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季
+ 从播放列表中移除
+ 凭据已过期,请重新登录
+ 您目前无权访问该服务器