chore: Add reset button for config viewer

This commit is contained in:
Christian Kußowski 2026-03-08 11:12:32 +01:00
parent bad0a549cb
commit a3a2a37a14
No known key found for this signature in database
GPG key ID: E067ECD60F1A0652
3 changed files with 23 additions and 2 deletions

View file

@ -75,6 +75,11 @@ enum AppSettings<T> {
static SharedPreferences get store => _store!;
static SharedPreferences? _store;
static Future<void> reset({bool loadWebConfigFile = true}) async {
await AppSettings._store!.clear();
await init(loadWebConfigFile: loadWebConfigFile);
}
static Future<SharedPreferences> init({bool loadWebConfigFile = true}) async {
if (AppSettings._store != null) return AppSettings.store;

View file

@ -2781,5 +2781,6 @@
"@mute": {
"description": "This should be a very short string because there is not much space in the button!"
},
"createNewChat": "Create new chat"
"createNewChat": "Create new chat",
"reset": "Reset"
}

View file

@ -48,6 +48,11 @@ class _ConfigViewerState extends State<ConfigViewer> {
setState(() {});
}
Future<void> _reset() async {
await AppSettings.reset();
setState(() {});
}
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
@ -55,8 +60,12 @@ class _ConfigViewerState extends State<ConfigViewer> {
appBar: AppBar(
title: Text(L10n.of(context).advancedConfigurations),
leading: BackButton(onPressed: () => context.go('/')),
actions: [
TextButton(onPressed: _reset, child: Text(L10n.of(context).reset)),
],
),
body: Column(
crossAxisAlignment: .stretch,
children: [
Container(
margin: const EdgeInsets.all(16),
@ -81,7 +90,13 @@ class _ConfigViewerState extends State<ConfigViewer> {
value = appSetting.value.toString();
}
if (appSetting is AppSettings<bool>) {
value = appSetting.value.toString();
return SwitchListTile.adaptive(
title: Text(appSetting.name),
subtitle: Text(value),
value: appSetting.value,
onChanged: (value) =>
_changeSetting(appSetting, store, (!value).toString()),
);
}
if (appSetting is AppSettings<double>) {
value = appSetting.value.toString();