From ba45c3f509ac9595294f5ddb568dc8c420c20861 Mon Sep 17 00:00:00 2001 From: Damontecres Date: Wed, 15 Oct 2025 11:58:06 -0400 Subject: [PATCH] Fix some issues with local db --- .../github/damontecres/dolphin/data/JellyfinServer.kt | 10 +++++++++- .../damontecres/dolphin/data/ServerRepository.kt | 8 +++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/github/damontecres/dolphin/data/JellyfinServer.kt b/app/src/main/java/com/github/damontecres/dolphin/data/JellyfinServer.kt index e5359357..b33e6769 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/data/JellyfinServer.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/data/JellyfinServer.kt @@ -55,9 +55,17 @@ interface JellyfinServerDao { @Insert(onConflict = OnConflictStrategy.IGNORE) fun addServer(server: JellyfinServer): Long - @Update(onConflict = OnConflictStrategy.ABORT) + @Update fun updateServer(server: JellyfinServer): Int + @Transaction + fun addOrUpdateServer(server: JellyfinServer) { + val result = addServer(server) + if (result == -1L) { + updateServer(server) + } + } + @Insert(onConflict = OnConflictStrategy.REPLACE) fun addUser(user: JellyfinUser) diff --git a/app/src/main/java/com/github/damontecres/dolphin/data/ServerRepository.kt b/app/src/main/java/com/github/damontecres/dolphin/data/ServerRepository.kt index fd24aab9..ab685642 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/data/ServerRepository.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/data/ServerRepository.kt @@ -9,6 +9,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.jellyfin.sdk.Jellyfin import org.jellyfin.sdk.api.client.ApiClient +import org.jellyfin.sdk.api.client.extensions.systemApi import org.jellyfin.sdk.api.client.extensions.userApi import org.jellyfin.sdk.model.api.AuthenticationResult import org.jellyfin.sdk.model.api.UserDto @@ -42,7 +43,7 @@ class ServerRepository */ suspend fun addAndChangeServer(server: JellyfinServer) { withContext(Dispatchers.IO) { - serverDao.addServer(server) + serverDao.addOrUpdateServer(server) } changeServer(server) } @@ -74,14 +75,15 @@ class ServerRepository apiClient.userApi .getCurrentUser() .content + val sysInfo by apiClient.systemApi.getSystemInfo() - val updatedServer = server.copy(name = userDto.serverName) + val updatedServer = server.copy(name = sysInfo.serverName) val updatedUser = user.copy( id = userDto.id.toString(), name = userDto.name, ) - serverDao.addServer(updatedServer) + serverDao.addOrUpdateServer(updatedServer) serverDao.addUser(updatedUser) userPreferencesDataStore.updateData { it