Fix unnecessary home page reloads (#2008)
## Description Fixes the home page reloading from scratch when the app is resumed This happened because the `userDto` is updated on app resume and since it has a last accessed timestamp, it would always different and trigger a reload. ### Related issues Bug introduced by #1981 ### Testing Emulator ## Screenshots N/A ## AI or LLM usage None
This commit is contained in:
parent
365f8f8ada
commit
65954a99eb
9 changed files with 61 additions and 36 deletions
|
|
@ -3,6 +3,7 @@ package com.github.damontecres.wholphin.services
|
|||
import android.content.Context
|
||||
import com.github.damontecres.wholphin.data.ServerRepository
|
||||
import com.github.damontecres.wholphin.data.model.BaseItem
|
||||
import com.github.damontecres.wholphin.data.model.ServerUserConfig
|
||||
import com.github.damontecres.wholphin.preferences.AppPreferences
|
||||
import com.github.damontecres.wholphin.preferences.InterfacePreferences
|
||||
import com.github.damontecres.wholphin.ui.successResponse
|
||||
|
|
@ -26,7 +27,6 @@ import org.jellyfin.sdk.api.operations.LibraryApi
|
|||
import org.jellyfin.sdk.model.UUID
|
||||
import org.jellyfin.sdk.model.api.BaseItemDto
|
||||
import org.jellyfin.sdk.model.api.BaseItemKind
|
||||
import org.jellyfin.sdk.model.api.UserDto
|
||||
import org.jellyfin.sdk.model.api.UserPolicy
|
||||
import org.junit.After
|
||||
import org.junit.Assert
|
||||
|
|
@ -87,11 +87,8 @@ class MediaManagementServiceTest {
|
|||
)
|
||||
|
||||
private val userWithLiveTv =
|
||||
UserDto(
|
||||
ServerUserConfig(
|
||||
id = UUID.randomUUID(),
|
||||
hasPassword = true,
|
||||
hasConfiguredPassword = true,
|
||||
hasConfiguredEasyPassword = false,
|
||||
policy =
|
||||
mockk<UserPolicy> {
|
||||
every { enableLiveTvManagement } returns true
|
||||
|
|
@ -99,11 +96,8 @@ class MediaManagementServiceTest {
|
|||
)
|
||||
|
||||
private val userWithoutLiveTv =
|
||||
UserDto(
|
||||
ServerUserConfig(
|
||||
id = UUID.randomUUID(),
|
||||
hasPassword = true,
|
||||
hasConfiguredPassword = true,
|
||||
hasConfiguredEasyPassword = false,
|
||||
policy =
|
||||
mockk<UserPolicy> {
|
||||
every { enableLiveTvManagement } returns false
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import com.github.damontecres.wholphin.data.ServerRepository
|
|||
import com.github.damontecres.wholphin.data.model.JellyfinServer
|
||||
import com.github.damontecres.wholphin.data.model.JellyfinServerUsers
|
||||
import com.github.damontecres.wholphin.data.model.JellyfinUser
|
||||
import com.github.damontecres.wholphin.data.model.ServerUserConfig
|
||||
import com.github.damontecres.wholphin.preferences.AppPreferences
|
||||
import com.github.damontecres.wholphin.preferences.AppPreferencesSerializer
|
||||
import com.github.damontecres.wholphin.test.nonBlankString
|
||||
|
|
@ -143,6 +144,7 @@ class ServerRepositoryTest {
|
|||
hasConfiguredPassword = true,
|
||||
hasConfiguredEasyPassword = false,
|
||||
)
|
||||
private val serverUserConfig = ServerUserConfig(userDto)
|
||||
|
||||
private fun setUpCurrentUser(
|
||||
serverRepository: ServerRepository,
|
||||
|
|
@ -190,7 +192,7 @@ class ServerRepositoryTest {
|
|||
|
||||
Assert.assertEquals(server, serverRepository.currentServer)
|
||||
Assert.assertEquals(user, serverRepository.currentUser)
|
||||
Assert.assertEquals(userDto, serverRepository.currentUserDto)
|
||||
Assert.assertEquals(serverUserConfig, serverRepository.currentUserDto)
|
||||
|
||||
val appPreferences = dataStore.data.first()
|
||||
Assert.assertEquals(serverId.toServerString(), appPreferences.currentServerId)
|
||||
|
|
@ -221,7 +223,7 @@ class ServerRepositoryTest {
|
|||
}
|
||||
Assert.assertEquals(server, serverRepository.currentServer)
|
||||
Assert.assertEquals(user, serverRepository.currentUser)
|
||||
Assert.assertEquals(userDto, serverRepository.currentUserDto)
|
||||
Assert.assertEquals(serverUserConfig, serverRepository.currentUserDto)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -383,7 +385,7 @@ class ServerRepositoryTest {
|
|||
|
||||
Assert.assertEquals(server, serverRepository.currentServer)
|
||||
Assert.assertEquals(user, serverRepository.currentUser)
|
||||
Assert.assertEquals(userDto, serverRepository.currentUserDto)
|
||||
Assert.assertEquals(serverUserConfig, serverRepository.currentUserDto)
|
||||
|
||||
val appPreferences = dataStore.data.first()
|
||||
Assert.assertEquals(serverId.toServerString(), appPreferences.currentServerId)
|
||||
|
|
@ -426,7 +428,7 @@ class ServerRepositoryTest {
|
|||
|
||||
Assert.assertEquals(server, serverRepository.currentServer)
|
||||
Assert.assertEquals(user, serverRepository.currentUser)
|
||||
Assert.assertEquals(userDto, serverRepository.currentUserDto)
|
||||
Assert.assertEquals(serverUserConfig, serverRepository.currentUserDto)
|
||||
|
||||
val appPreferences = dataStore.data.first()
|
||||
Assert.assertEquals(serverId.toServerString(), appPreferences.currentServerId)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.github.damontecres.wholphin.data.ServerRepository
|
|||
import com.github.damontecres.wholphin.data.model.ItemPlayback
|
||||
import com.github.damontecres.wholphin.data.model.JellyfinUserPreferences
|
||||
import com.github.damontecres.wholphin.data.model.PlaybackLanguageChoice
|
||||
import com.github.damontecres.wholphin.data.model.ServerUserConfig
|
||||
import com.github.damontecres.wholphin.data.model.TrackIndex
|
||||
import com.github.damontecres.wholphin.preferences.AppPreferences
|
||||
import com.github.damontecres.wholphin.preferences.DefaultUserConfiguration
|
||||
|
|
@ -17,7 +18,6 @@ import org.jellyfin.sdk.model.UUID
|
|||
import org.jellyfin.sdk.model.api.MediaStream
|
||||
import org.jellyfin.sdk.model.api.MediaStreamType
|
||||
import org.jellyfin.sdk.model.api.SubtitlePlaybackMode
|
||||
import org.jellyfin.sdk.model.api.UserDto
|
||||
import org.junit.Assert
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
|
@ -902,11 +902,8 @@ private fun serverRepo(
|
|||
): ServerRepository {
|
||||
val mocked = mockk<ServerRepository>()
|
||||
every { mocked.currentUserDto } returns
|
||||
UserDto(
|
||||
ServerUserConfig(
|
||||
id = UUID.randomUUID(),
|
||||
hasPassword = true,
|
||||
hasConfiguredPassword = true,
|
||||
hasConfiguredEasyPassword = true,
|
||||
configuration =
|
||||
DefaultUserConfiguration.copy(
|
||||
audioLanguagePreference = audioLang,
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import com.github.damontecres.wholphin.data.model.JellyfinServer
|
|||
import com.github.damontecres.wholphin.data.model.JellyfinUser
|
||||
import com.github.damontecres.wholphin.data.model.Playlist
|
||||
import com.github.damontecres.wholphin.data.model.PlaylistItem
|
||||
import com.github.damontecres.wholphin.data.model.ServerUserConfig
|
||||
import com.github.damontecres.wholphin.preferences.AppPreferences
|
||||
import com.github.damontecres.wholphin.preferences.PlaybackPreferences
|
||||
import com.github.damontecres.wholphin.preferences.ShowNextUpWhen
|
||||
|
|
@ -68,7 +69,6 @@ import org.jellyfin.sdk.model.api.MediaSegmentDtoQueryResult
|
|||
import org.jellyfin.sdk.model.api.MediaSegmentType
|
||||
import org.jellyfin.sdk.model.api.MediaStreamType
|
||||
import org.jellyfin.sdk.model.api.PlaybackInfoResponse
|
||||
import org.jellyfin.sdk.model.api.UserDto
|
||||
import org.jellyfin.sdk.model.extensions.inWholeTicks
|
||||
import org.jellyfin.sdk.model.extensions.ticks
|
||||
import org.junit.After
|
||||
|
|
@ -152,13 +152,9 @@ class PlaybackViewModelTests {
|
|||
pin = "1234",
|
||||
)
|
||||
private val userDto =
|
||||
UserDto(
|
||||
ServerUserConfig(
|
||||
id = userId,
|
||||
name = "test-user",
|
||||
serverName = "test server",
|
||||
hasPassword = true,
|
||||
hasConfiguredPassword = true,
|
||||
hasConfiguredEasyPassword = false,
|
||||
)
|
||||
|
||||
private val mediaSource =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue