Add global reset to default

This commit is contained in:
Damontecres 2026-02-05 13:20:34 -05:00
parent 1828e94fae
commit 682b81d936
No known key found for this signature in database
5 changed files with 37 additions and 3 deletions

View file

@ -226,7 +226,7 @@ class HomeSettingsService
}
HomePageResolvedSettings(resolvedRows)
} else {
createDefault(userId)
createDefault()
}
currentSettings.update { resolvedSettings }
@ -235,7 +235,7 @@ class HomeSettingsService
/**
* Create a default [HomePageResolvedSettings] using the available libraries
*/
private suspend fun createDefault(userId: UUID): HomePageResolvedSettings {
suspend fun createDefault(): HomePageResolvedSettings {
Timber.v("Creating default settings")
val navDrawerItems = navDrawerItemRepository.getNavDrawerItems()
val libraries =

View file

@ -72,13 +72,15 @@ fun HomeRowSettings(
Options.ViewOptionsUseThumb -> {
onViewOptionsChange.invoke(
HomeRowViewOptions(
viewOptions.copy(
heightDp = Cards.HEIGHT_EPISODE,
spacing = 20,
imageType = ViewOptionImageType.THUMB,
aspectRatio = AspectRatio.WIDE,
contentScale = PrefContentScale.FIT,
episodeImageType = ViewOptionImageType.THUMB,
episodeAspectRatio = AspectRatio.WIDE,
episodeContentScale = PrefContentScale.FIT,
),
)
}

View file

@ -32,6 +32,7 @@ fun HomeSettingsGlobal(
onClickSave: () -> Unit,
onClickLoad: () -> Unit,
onClickLoadWeb: () -> Unit,
onClickReset: () -> Unit,
modifier: Modifier = Modifier,
) {
val firstFocus: FocusRequester = remember { FocusRequester() }
@ -122,6 +123,20 @@ fun HomeSettingsGlobal(
modifier = Modifier,
)
}
item {
HomeSettingsListItem(
selected = false,
headlineText = stringResource(R.string.reset),
leadingContent = {
Text(
text = stringResource(R.string.fa_arrows_rotate),
fontFamily = FontAwesome,
)
},
onClick = onClickReset,
modifier = Modifier,
)
}
}
}
}

View file

@ -210,6 +210,12 @@ fun HomeSettingsPage(
viewModel.loadFromRemoteWeb()
}
},
onClickReset = {
showConfirmDialog =
ShowConfirm(R.string.overwrite_local_settings) {
viewModel.resetToDefault()
}
},
modifier = destModifier,
)
}

View file

@ -500,6 +500,17 @@ class HomeSettingsViewModel
}
}
}
fun resetToDefault() {
viewModelScope.launchIO {
_state.update { it.copy(loading = LoadingState.Loading) }
val result = homeSettingsService.createDefault()
_state.update {
it.copy(rows = result.rows)
}
fetchRowData()
}
}
}
data class HomePageSettingsState(