From 2d0e5b84d49624a2d63dc47148a9ce6ef5066683 Mon Sep 17 00:00:00 2001 From: Damontecres Date: Sat, 24 Jan 2026 22:15:14 -0500 Subject: [PATCH] Add settings to go to home settings --- .../wholphin/preferences/AppPreference.kt | 7 +++++++ .../ui/main/settings/HomeSettingsViewModel.kt | 21 ++++++++++++------- app/src/main/res/values/strings.xml | 1 + 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt b/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt index f1be13a4..27fd1d5b 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt @@ -617,6 +617,12 @@ sealed interface AppPreference { setter = { prefs, _ -> prefs }, ) + val CustomizeHome = + AppDestinationPreference( + title = R.string.customize_home, + destination = Destination.HomeSettings, + ) + val SendCrashReports = AppSwitchPreference( title = R.string.send_crash_reports, @@ -946,6 +952,7 @@ val basicPreferences = preferences = listOf( AppPreference.RequireProfilePin, + AppPreference.CustomizeHome, AppPreference.UserPinnedNavDrawerItems, ), ), 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 4b88834e..9bb22f7e 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 @@ -100,7 +100,7 @@ class HomeSettingsViewModel } } rows?.let { rows -> - _state.update { + updateState { it.copy(loading = LoadingState.Success, rowData = rows) } } @@ -128,7 +128,7 @@ class HomeSettingsViewModel direction: MoveDirection, index: Int, ) { - _state.update { + updateState { val rows = it.rows.move(direction, index) // TODO would be more efficient to move rowData, but uncombined continue watching is two rows // val rowData = it.rowData.move(direction, index) @@ -141,7 +141,7 @@ class HomeSettingsViewModel } fun deleteRow(index: Int) { - _state.update { + updateState { val rows = it.rows.toMutableList().apply { removeAt(index) } val rowData = it.rowData.toMutableList().apply { removeAt(index) } it.copy( @@ -186,7 +186,7 @@ class HomeSettingsViewModel ) } } - _state.update { + updateState { it.copy( loading = LoadingState.Loading, rows = it.rows.toMutableList().apply { add(newRow) }, @@ -246,7 +246,7 @@ class HomeSettingsViewModel ) } } - _state.update { + updateState { it.copy( loading = LoadingState.Loading, rows = it.rows.toMutableList().apply { add(newRow) }, @@ -261,7 +261,7 @@ class HomeSettingsViewModel viewOptions: HomeRowViewOptions, ) { viewModelScope.launchIO { - _state.update { + updateState { val index = it.rows.indexOfFirst { it.config.id == rowId } val newRowConfig = it.rows[index] @@ -290,7 +290,7 @@ class HomeSettingsViewModel } fun updateViewOptionsForAll(viewOptions: HomeRowViewOptions) { - _state.update { + updateState { it.copy( rowData = it.rowData.toMutableList().map { row -> @@ -319,6 +319,13 @@ class HomeSettingsViewModel } } } + + private fun updateState(update: (HomePageSettingsState) -> HomePageSettingsState) { + _state.update { + update.invoke(it) + } + homeSettingsService.currentSettings.update { HomePageResolvedSettings(state.value.rows) } + } } data class HomePageSettingsState( diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f0f23aaa..150d1213 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -467,6 +467,7 @@ Recently released in %1$s Height Apply to all rows + Customize home page Disabled