mirror of
https://gitlab.com/veilid/veilidchat.git
synced 2025-08-02 11:16:10 -04:00
updates and cleanup
This commit is contained in:
parent
6bd60207d8
commit
ef1ded4494
11 changed files with 142 additions and 108 deletions
|
@ -22,24 +22,25 @@ List<DropdownMenuItem<dynamic>> _getBrightnessDropdownItems() {
|
|||
}
|
||||
|
||||
Widget buildSettingsPageBrightnessPreferences(
|
||||
{required BuildContext context, required void Function() onChanged}) {
|
||||
{required BuildContext context,
|
||||
required void Function() onChanged,
|
||||
required ThemeSwitcherState switcher}) {
|
||||
final preferencesRepository = PreferencesRepository.instance;
|
||||
final themePreferences = preferencesRepository.value.themePreference;
|
||||
return ThemeSwitcher.withTheme(
|
||||
builder: (_, switcher, theme) => FormBuilderDropdown(
|
||||
name: formFieldBrightness,
|
||||
decoration: InputDecoration(
|
||||
label: Text(translate('settings_page.brightness_mode'))),
|
||||
items: _getBrightnessDropdownItems(),
|
||||
initialValue: themePreferences.brightnessPreference,
|
||||
onChanged: (value) async {
|
||||
final newThemePrefs = themePreferences.copyWith(
|
||||
brightnessPreference: value as BrightnessPreference);
|
||||
final newPrefs = preferencesRepository.value
|
||||
.copyWith(themePreference: newThemePrefs);
|
||||
return FormBuilderDropdown(
|
||||
name: formFieldBrightness,
|
||||
decoration: InputDecoration(
|
||||
label: Text(translate('settings_page.brightness_mode'))),
|
||||
items: _getBrightnessDropdownItems(),
|
||||
initialValue: themePreferences.brightnessPreference,
|
||||
onChanged: (value) async {
|
||||
final newThemePrefs = themePreferences.copyWith(
|
||||
brightnessPreference: value as BrightnessPreference);
|
||||
final newPrefs = preferencesRepository.value
|
||||
.copyWith(themePreference: newThemePrefs);
|
||||
|
||||
await preferencesRepository.set(newPrefs);
|
||||
switcher.changeTheme(theme: newThemePrefs.themeData());
|
||||
onChanged();
|
||||
}));
|
||||
await preferencesRepository.set(newPrefs);
|
||||
switcher.changeTheme(theme: newThemePrefs.themeData());
|
||||
onChanged();
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:animated_theme_switcher/animated_theme_switcher.dart';
|
||||
import 'package:async_tools/async_tools.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_form_builder/flutter_form_builder.dart';
|
||||
import 'package:flutter_translate/flutter_translate.dart';
|
||||
|
@ -7,6 +8,7 @@ import '../../settings/settings.dart';
|
|||
import '../models/models.dart';
|
||||
|
||||
const String formFieldTheme = 'theme';
|
||||
const String _kSwitchTheme = 'switchTheme';
|
||||
|
||||
List<DropdownMenuItem<dynamic>> _getThemeDropdownItems() {
|
||||
const colorPrefs = ColorPreference.values;
|
||||
|
@ -32,24 +34,27 @@ List<DropdownMenuItem<dynamic>> _getThemeDropdownItems() {
|
|||
}
|
||||
|
||||
Widget buildSettingsPageColorPreferences(
|
||||
{required BuildContext context, required void Function() onChanged}) {
|
||||
{required BuildContext context,
|
||||
required void Function() onChanged,
|
||||
required ThemeSwitcherState switcher}) {
|
||||
final preferencesRepository = PreferencesRepository.instance;
|
||||
final themePreferences = preferencesRepository.value.themePreference;
|
||||
return ThemeSwitcher.withTheme(
|
||||
builder: (_, switcher, theme) => FormBuilderDropdown(
|
||||
name: formFieldTheme,
|
||||
decoration: InputDecoration(
|
||||
label: Text(translate('settings_page.color_theme'))),
|
||||
items: _getThemeDropdownItems(),
|
||||
initialValue: themePreferences.colorPreference,
|
||||
onChanged: (value) async {
|
||||
final newThemePrefs = themePreferences.copyWith(
|
||||
colorPreference: value as ColorPreference);
|
||||
final newPrefs = preferencesRepository.value
|
||||
.copyWith(themePreference: newThemePrefs);
|
||||
return FormBuilderDropdown(
|
||||
name: formFieldTheme,
|
||||
decoration:
|
||||
InputDecoration(label: Text(translate('settings_page.color_theme'))),
|
||||
items: _getThemeDropdownItems(),
|
||||
initialValue: themePreferences.colorPreference,
|
||||
onChanged: (value) {
|
||||
singleFuture(_kSwitchTheme, () async {
|
||||
final newThemePrefs = themePreferences.copyWith(
|
||||
colorPreference: value as ColorPreference);
|
||||
final newPrefs = preferencesRepository.value
|
||||
.copyWith(themePreference: newThemePrefs);
|
||||
|
||||
await preferencesRepository.set(newPrefs);
|
||||
switcher.changeTheme(theme: newThemePrefs.themeData());
|
||||
onChanged();
|
||||
}));
|
||||
await preferencesRepository.set(newPrefs);
|
||||
switcher.changeTheme(theme: newThemePrefs.themeData());
|
||||
onChanged();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -9,24 +9,25 @@ import '../models/models.dart';
|
|||
const String formFieldEnableWallpaper = 'enable_wallpaper';
|
||||
|
||||
Widget buildSettingsPageWallpaperPreferences(
|
||||
{required BuildContext context, required void Function() onChanged}) {
|
||||
{required BuildContext context,
|
||||
required void Function() onChanged,
|
||||
required ThemeSwitcherState switcher}) {
|
||||
final preferencesRepository = PreferencesRepository.instance;
|
||||
final themePreferences = preferencesRepository.value.themePreference;
|
||||
return ThemeSwitcher.withTheme(
|
||||
builder: (_, switcher, theme) => FormBuilderCheckbox(
|
||||
name: formFieldEnableWallpaper,
|
||||
title: Text(translate('settings_page.enable_wallpaper')),
|
||||
initialValue: themePreferences.enableWallpaper,
|
||||
onChanged: (value) async {
|
||||
if (value != null) {
|
||||
final newThemePrefs =
|
||||
themePreferences.copyWith(enableWallpaper: value);
|
||||
final newPrefs = preferencesRepository.value
|
||||
.copyWith(themePreference: newThemePrefs);
|
||||
return FormBuilderCheckbox(
|
||||
name: formFieldEnableWallpaper,
|
||||
title: Text(translate('settings_page.enable_wallpaper')),
|
||||
initialValue: themePreferences.enableWallpaper,
|
||||
onChanged: (value) async {
|
||||
if (value != null) {
|
||||
final newThemePrefs =
|
||||
themePreferences.copyWith(enableWallpaper: value);
|
||||
final newPrefs = preferencesRepository.value
|
||||
.copyWith(themePreference: newThemePrefs);
|
||||
|
||||
await preferencesRepository.set(newPrefs);
|
||||
switcher.changeTheme(theme: newThemePrefs.themeData());
|
||||
onChanged();
|
||||
}
|
||||
}));
|
||||
await preferencesRepository.set(newPrefs);
|
||||
switcher.changeTheme(theme: newThemePrefs.themeData());
|
||||
onChanged();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue