diff --git a/app/src/main/java/com/github/damontecres/wholphin/services/HomeSettingsService.kt b/app/src/main/java/com/github/damontecres/wholphin/services/HomeSettingsService.kt index 6bf03b7e..4e82ba0a 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/services/HomeSettingsService.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/services/HomeSettingsService.kt @@ -110,7 +110,7 @@ class HomeSettingsService displayPreferencesId: String = DISPLAY_PREF_ID, ): HomePageSettings? { val current = getDisplayPreferences(userId, displayPreferencesId) - return current.customPrefs[DISPLAY_PREF_ID]?.let { + return current.customPrefs[CUSTOM_PREF_ID]?.let { val jsonElement = jsonParser.parseToJsonElement(it) decode(jsonElement) } @@ -515,7 +515,13 @@ class HomeSettingsService ): HomeRowLoadingState = when (row) { is HomeRowConfig.ContinueWatching -> { - val resume = latestNextUpService.getResume(userDto.id, limit, true) + val resume = + latestNextUpService.getResume( + userDto.id, + limit, + true, + row.viewOptions.useSeries, + ) Success( title = context.getString(R.string.continue_watching), @@ -531,6 +537,7 @@ class HomeSettingsService limit, prefs.enableRewatchingNextUp, false, + row.viewOptions.useSeries, ) Success( @@ -542,13 +549,19 @@ class HomeSettingsService is HomeRowConfig.ContinueWatchingCombined -> { val resume = - latestNextUpService.getResume(userDto.id, limit, true) + latestNextUpService.getResume( + userDto.id, + limit, + true, + row.viewOptions.useSeries, + ) val nextUp = latestNextUpService.getNextUp( userDto.id, limit, prefs.enableRewatchingNextUp, false, + row.viewOptions.useSeries, ) Success( @@ -625,7 +638,7 @@ class HomeSettingsService api.userLibraryApi .getLatestMedia(request) .content - .map { BaseItem.Companion.from(it, api, true) } + .map { BaseItem.Companion.from(it, api, row.viewOptions.useSeries) } .let { Success( title, @@ -657,7 +670,7 @@ class HomeSettingsService GetItemsRequestHandler .execute(api, request) .content.items - .map { BaseItem.Companion.from(it, api, true) } + .map { BaseItem.Companion.from(it, api, row.viewOptions.useSeries) } .let { Success( title, @@ -685,7 +698,7 @@ class HomeSettingsService GetItemsRequestHandler .execute(api, request) .content.items - .map { BaseItem(it, true) } + .map { BaseItem(it, row.viewOptions.useSeries) } .let { Success( name ?: context.getString(R.string.collection), @@ -712,7 +725,7 @@ class HomeSettingsService GetItemsRequestHandler .execute(api, request) .content.items - .map { BaseItem(it, true) } + .map { BaseItem(it, row.viewOptions.useSeries) } .let { Success( row.name, @@ -757,7 +770,7 @@ class HomeSettingsService GetItemsRequestHandler .execute(api, request) .content.items - .map { BaseItem(it, false) } + .map { BaseItem(it, row.viewOptions.useSeries) } .let { Success( context.getString(R.string.favorites), // TODO @@ -781,7 +794,7 @@ class HomeSettingsService api.liveTvApi .getRecordings(request) .content.items - .map { BaseItem(it, true) } + .map { BaseItem(it, row.viewOptions.useSeries) } .let { Success( context.getString(R.string.active_recordings), @@ -803,7 +816,7 @@ class HomeSettingsService api.liveTvApi .getRecommendedPrograms(request) .content.items - .map { BaseItem(it, true) } + .map { BaseItem(it, row.viewOptions.useSeries) } .let { Success( context.getString(R.string.live_tv), diff --git a/app/src/main/java/com/github/damontecres/wholphin/services/LatestNextUpService.kt b/app/src/main/java/com/github/damontecres/wholphin/services/LatestNextUpService.kt index 307125fb..c9c989f2 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/services/LatestNextUpService.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/services/LatestNextUpService.kt @@ -43,6 +43,7 @@ class LatestNextUpService userId: UUID, limit: Int, includeEpisodes: Boolean, + useSeriesForPrimary: Boolean = true, ): List { val request = GetResumeItemsRequest( @@ -65,7 +66,7 @@ class LatestNextUpService .getResumeItems(request) .content .items - .map { BaseItem.from(it, api, true) } + .map { BaseItem.from(it, api, useSeriesForPrimary) } return items } @@ -74,6 +75,7 @@ class LatestNextUpService limit: Int, enableRewatching: Boolean, enableResumable: Boolean, + useSeriesForPrimary: Boolean = true, ): List { val request = GetNextUpRequest( @@ -91,7 +93,7 @@ class LatestNextUpService .getNextUp(request) .content .items - .map { BaseItem.from(it, api, true) } + .map { BaseItem.from(it, api, useSeriesForPrimary) } return nextUp } diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/main/settings/HomeRowSettings.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/main/settings/HomeRowSettings.kt index 5858a028..457a7e3d 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/main/settings/HomeRowSettings.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/main/settings/HomeRowSettings.kt @@ -135,7 +135,7 @@ internal object Options { val ViewOptionsUseSeries = AppSwitchPreference( - title = R.string.go_to_series, // TODO + title = R.string.use_series, defaultValue = true, getter = { it.useSeries }, setter = { vo, value -> vo.copy(useSeries = value) }, @@ -175,11 +175,11 @@ internal object Options { ViewOptionsAspectRatio, // TODO // ViewOptionsShowTitles, -// ViewOptionsUseSeries, + ViewOptionsUseSeries, ViewOptionsColumns, ViewOptionsSpacing, ViewOptionsContentScale, - ViewOptionsApplyAll, +// ViewOptionsApplyAll, ViewOptionsReset, ) } diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/main/settings/HomeSettingsViewModel.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/main/settings/HomeSettingsViewModel.kt index 11962c18..a4f4a338 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/main/settings/HomeSettingsViewModel.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/main/settings/HomeSettingsViewModel.kt @@ -296,13 +296,15 @@ class HomeSettingsViewModel viewOptions: HomeRowViewOptions, ) { viewModelScope.launchIO { + var fetchData = false updateState { val index = it.rows.indexOfFirst { it.id == rowId } - val newRowConfig = - it.rows[index] - .config - .updateViewOptions(viewOptions) + val config = it.rows[index].config + val newRowConfig = config.updateViewOptions(viewOptions) val newRow = it.rows[index].copy(config = newRowConfig) + if (config.viewOptions.useSeries != viewOptions.useSeries) { + fetchData = true + } it.copy( rows = it.rows.toMutableList().apply { @@ -321,6 +323,9 @@ class HomeSettingsViewModel }, ) } + if (fetchData) { + fetchRowData() + } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 55c15cfb..f81e123b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -472,6 +472,7 @@ Load from server Save to server Load from web client + Use series image Disabled