From fa5d73faa3ec4c741a74e4b3ba8daedad6b42e60 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 Dec 2022 21:24:11 +0100 Subject: [PATCH] Update dependency org.jellyfin.sdk:jellyfin-core to v1.4.0 (#215) * Update dependency org.jellyfin.sdk:jellyfin-core to v1.4.0 * Remove ACCESS_WIFI_STATE permission * Fix adding server * Remove server already added error Add the address if server already exists in database but the address doesn't Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jarne Demeulemeester --- app/src/main/AndroidManifest.xml | 1 - .../jellyfin/viewmodels/AddServerViewModel.kt | 130 ++++++++++-------- app/src/main/res/values-b+es+419/strings.xml | 1 - app/src/main/res/values-bg/strings.xml | 1 - app/src/main/res/values-cs-rCZ/strings.xml | 1 - app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-es-rMX/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-hu/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 1 - app/src/main/res/values-ko/strings.xml | 1 - app/src/main/res/values-pl/strings.xml | 1 - app/src/main/res/values-pt-rBR/strings.xml | 1 - app/src/main/res/values-pt/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 1 - app/src/main/res/values-zh-rCN/strings.xml | 1 - app/src/main/res/values-zh-rTW/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - gradle/libs.versions.toml | 2 +- 20 files changed, 70 insertions(+), 80 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d50f0e5e..e99612e3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,7 +2,6 @@ - diff --git a/app/src/main/java/dev/jdtech/jellyfin/viewmodels/AddServerViewModel.kt b/app/src/main/java/dev/jdtech/jellyfin/viewmodels/AddServerViewModel.kt index e0aeb963..628642b4 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/viewmodels/AddServerViewModel.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/viewmodels/AddServerViewModel.kt @@ -17,12 +17,10 @@ import java.util.UUID import javax.inject.Inject import kotlinx.coroutines.CancellationException import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.cancel import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow -import kotlinx.coroutines.flow.onCompletion import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.jellyfin.sdk.discovery.RecommendedServerInfo @@ -107,43 +105,40 @@ constructor( val goodServers = mutableListOf() val okServers = mutableListOf() - recommended - .onCompletion { - if (serverFound) { - serverFound = false - return@onCompletion - } - when { - goodServers.isNotEmpty() -> { - val issuesString = createIssuesString(goodServers.first()) - Toast.makeText( - application, - issuesString, - Toast.LENGTH_LONG - ).show() - connectToServer(goodServers.first()) - } - okServers.isNotEmpty() -> { - val okServer = okServers.first() - throw Exception(createIssuesString(okServer)) - } - else -> { - throw Exception(resources.getString(R.string.add_server_error_not_found)) - } + for (recommendedServerInfo in recommended) { + when (recommendedServerInfo.score) { + RecommendedServerInfoScore.GREAT -> { + serverFound = true + connectToServer(recommendedServerInfo) } + RecommendedServerInfoScore.GOOD -> goodServers.add(recommendedServerInfo) + RecommendedServerInfoScore.OK -> okServers.add(recommendedServerInfo) + RecommendedServerInfoScore.BAD -> Unit } - .collect { recommendedServerInfo -> - when (recommendedServerInfo.score) { - RecommendedServerInfoScore.GREAT -> { - serverFound = true - connectToServer(recommendedServerInfo) - this.cancel() - } - RecommendedServerInfoScore.GOOD -> goodServers.add(recommendedServerInfo) - RecommendedServerInfoScore.OK -> okServers.add(recommendedServerInfo) - RecommendedServerInfoScore.BAD -> Unit - } + } + + if (serverFound) { + serverFound = false + return@launch + } + when { + goodServers.isNotEmpty() -> { + val issuesString = createIssuesString(goodServers.first()) + Toast.makeText( + application, + issuesString, + Toast.LENGTH_LONG + ).show() + connectToServer(goodServers.first()) } + okServers.isNotEmpty() -> { + val okServer = okServers.first() + throw Exception(createIssuesString(okServer)) + } + else -> { + throw Exception(resources.getString(R.string.add_server_error_not_found)) + } + } } catch (_: CancellationException) { } catch (e: Exception) { _uiState.emit( @@ -161,26 +156,43 @@ constructor( Timber.d("Connecting to server: ${serverInfo.serverName}") - if (serverAlreadyInDatabase(serverInfo.id!!)) { - throw Exception(resources.getString(R.string.add_server_error_already_added)) + val serverInDatabase = serverAlreadyInDatabase(serverInfo.id!!) + + // Check if server is already in the database + // If so only add a new address to that server if it's different + val server = if (serverInDatabase != null) { + val addresses = withContext(Dispatchers.IO) { + database.getServerWithAddresses(serverInDatabase.id).addresses + } + if (addresses.none { it.address == recommendedServerInfo.address }) { + val serverAddress = ServerAddress( + id = UUID.randomUUID(), + serverId = serverInDatabase.id, + address = recommendedServerInfo.address + ) + + insertServerAddress(serverAddress) + } + serverInDatabase + } else { + val serverAddress = ServerAddress( + id = UUID.randomUUID(), + serverId = serverInfo.id!!, + address = recommendedServerInfo.address + ) + + val server = Server( + id = serverInfo.id!!, + name = serverInfo.serverName!!, + currentServerAddressId = serverAddress.id, + currentUserId = null, + ) + + insertServer(server) + insertServerAddress(serverAddress) + server } - val serverAddress = ServerAddress( - id = UUID.randomUUID(), - serverId = serverInfo.id!!, - address = recommendedServerInfo.address - ) - - val server = Server( - id = serverInfo.id!!, - name = serverInfo.serverName!!, - currentServerAddressId = serverAddress.id, - currentUserId = null, - ) - - insertServer(server) - insertServerAddress(serverAddress) - appPreferences.currentServer = server.id jellyfinApi.apply { @@ -236,14 +248,10 @@ constructor( * Check if server is already in database using server ID * * @param id Server ID - * @return True if server is already in database + * @return [Server] if in database */ - private suspend fun serverAlreadyInDatabase(id: String): Boolean { - val server: Server? - withContext(Dispatchers.IO) { - server = database.get(id) - } - return (server != null) + private suspend fun serverAlreadyInDatabase(id: String) = withContext(Dispatchers.IO) { + database.get(id) } /** diff --git a/app/src/main/res/values-b+es+419/strings.xml b/app/src/main/res/values-b+es+419/strings.xml index 61e6ea75..2e815922 100644 --- a/app/src/main/res/values-b+es+419/strings.xml +++ b/app/src/main/res/values-b+es+419/strings.xml @@ -8,7 +8,6 @@ No es un servidor Jellyfin: %1$s Versión del servidor sin soporte: %1$s. Por favor actualice su servidor Servidor muy lento al responder: %1$s - Servidor ya presente Dirección del servidor vacia Servidor no encontrado El servidor no tiene identificador, ocurrió un error en el servidor diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index c4d3bc5d..180325d1 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -7,7 +7,6 @@ Свалете при роуминг Използвайте експерименталният mpv плейър за да пускане на видеа. mpv поддържа повече кодекси за видео, аудио и субтитри. Jellyfin банер - Сървърът е вече добавен Празен сървърен адрес Сървърът не е намерен Вход diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 497bb781..2d94b6df 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -6,7 +6,6 @@ Nejedná se o Jellyfin server: %1$s Nepodporovaná verze serveru: %1$s. Prosím aktualizujte Váš server Serveru trvalo příliš dlouho odpovědět: %1$s - Tento server už je přidán Prázdná adresa serveru Server not found Přihlásit diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 7939427a..fa0dca05 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -6,7 +6,6 @@ Server hinzufügen Server Version ist veraltet: %1$s. Bitte aktualisiere deinen Server Kein Jellyfin Server: %1$s - Server wurde bereits hinzugefügt Leere Server Adresse Server wurde nicht gefunden Server hat keine ID. Irgendetwas mit dem Server scheint nicht in Ordnung zu sein diff --git a/app/src/main/res/values-es-rMX/strings.xml b/app/src/main/res/values-es-rMX/strings.xml index 32e29768..2efeff15 100644 --- a/app/src/main/res/values-es-rMX/strings.xml +++ b/app/src/main/res/values-es-rMX/strings.xml @@ -8,7 +8,6 @@ No es un servidor Jellyfin: %1$s Versión del servidor sin soporte: %1$s. Por favor actualice su servidor Servidor muy lento al responder: %1$s - Servidor ya presente Dirección del servidor vacia Servidor no encontrado El servidor no tiene identificador, ocurrió un error en el servidor diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 43f5c664..45db4866 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -8,7 +8,6 @@ No es un servidor Jellyfin: %1$s Versión del servidor no soportada: %1$s. Por favor actualice su servidor Servidor muy lento al responder: %1$s - Servidor ya agregado Dirección del servidor vacía Servidor no encontrado El servidor no tiene identificador, ocurrió un error en el servidor diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 075a2397..594a9799 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -88,7 +88,6 @@ Choisissez une version Bannière Jellyfin Version du serveur non supportée : %1$s. Veuillez mettre à jour le serveur - Ce serveur existe déjà Authentification Authentification Utilisateur ou mot de passe incorrect diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index d1ae8a87..38724bd6 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -7,7 +7,6 @@ Nem egy Jellyfin szerver: %1$s Nem támogatott szerver verzió: %1$s. Kérlek frissítsd a szervert A szerver túl lassan válaszol: %1$s - Ez a szerver már hozzá van adva Üres szerver cím A szerver nem található A szervernek nincs id-je, úgy tűnik valami probléma van a szerverrel diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 9eb07aa3..697d35d8 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -4,7 +4,6 @@ Aggiungi server Non è un server Jellyfin: %1$s Il server ha impiegato troppo tempo per rispondere: %1$s - Server già aggiunto Indirizzo server vuoto Accedi Nome utente o Password errati diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index ccb716cf..a0be0621 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -36,7 +36,6 @@ 플레이어 제스처 볼륨 및 밝기 제스처 줌 제스처 - 서버가 이미 추가되어 있음 서버를 찾을 수 없음 타이틀 IMDB 평점 diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index fddbda14..d5dd8194 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -10,7 +10,6 @@ Przesuń w górę lub w dół po prawej stronie ekrany by zmienić głośność, po lewej stronie by zmienić jasność Wyświetlaj rozszerzoną nazwę odcinka, razem z informacją o sezonie i odcinku (SXX:EXX - NazwaOdcinka). Zbyt wolna odpowiedź serwera: %1$s - Serwer już dodany Pusty adres serwera Nie znaleziono serwera Serwer nie ma ID. Błędna konfiguracja serwera diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 27603876..92dde45d 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -3,7 +3,6 @@ Versão do servidor desatualizada: %1$s. Por favor atualize seu servidor Versão do servidor não suportada: %1$s. Por favor atualize seu servidor O servidor é lendo demais para responder: %1$s - Servidor já adicionado Endereço de servidor vazio Servidor não possui id, algo parece errado como servidor Entrar diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 4d8ca396..12ca89fa 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -6,7 +6,6 @@ Não é um servidor Jellyfin: %1$s Versão de servidor não suportada: %1$s. Por favor, actualize o seu servidor O servidor é demasiado lento para responder: %1$s - Servidor já adicionado Endereço de servidor vazio Servidor não encontrado O servidor não tem identificação, algo parece estar errado com o servidor diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 841f802a..3926d3be 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -9,7 +9,6 @@ Это не сервер Jellyfin: %1$s Неподдерживаемая версия сервера: %1$s. Пожалуйста, обновите ваш сервер Сервер слишком медленно отвечает: %1$s - Сервер уже добавлен Пустой адрес Сервер не найден Сервер не имеет id, похоже, с ним что-то не так diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 3646e988..5b78ea9e 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -117,7 +117,6 @@ 服务器响应过慢:%1$s 您确定要删除服务器%1$s吗 缓存大小 (MB) - 服务器已经添加过了 首页 应用程序将会利用这些MB的磁盘空间来存储Jellyfin服务器的图片。在较慢的网络下,更大的数值可能会更好。 音量和亮度手势 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index f531932a..5716cc46 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -4,7 +4,6 @@ 添加伺服器 不支援的伺服器版本:%1$s。 請更新您的伺服器 伺服器回應太慢:%1$s - 伺服器已添加 找不到伺服器 伺服器沒有id,伺服器可能有問題 登入 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 085615a7..eff68e6d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,7 +7,6 @@ Not a Jellyfin server: %1$s Unsupported server version: %1$s. Please update your server Server is too slow to respond: %1$s - Server already added Empty server address Server not found Server has no id, something seems to be wrong with the server diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 92c475ba..cfaf0ebc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,7 +17,7 @@ androidx-room = "2.4.3" androidx-swiperefreshlayout = "1.1.0" glide = "4.14.2" hilt = "2.44.2" -jellyfin = "1.3.7" +jellyfin = "1.4.0" kotlin = "1.7.22" ktlint = "11.0.0" material = "1.7.0"