mirror of
https://gitlab.com/veilid/veilidchat.git
synced 2025-07-24 07:00:47 -04:00
37 lines
1.4 KiB
Dart
37 lines
1.4 KiB
Dart
import 'package:animated_theme_switcher/animated_theme_switcher.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_form_builder/flutter_form_builder.dart';
|
|
import 'package:flutter_translate/flutter_translate.dart';
|
|
|
|
import '../../settings/settings.dart';
|
|
import '../models/models.dart';
|
|
|
|
const String formFieldEnableWallpaper = 'enable_wallpaper';
|
|
|
|
Widget buildSettingsPageWallpaperPreferences(
|
|
{required BuildContext context,
|
|
required void Function() onChanged,
|
|
required ThemeSwitcherState switcher}) {
|
|
final preferencesRepository = PreferencesRepository.instance;
|
|
final themePreferences = preferencesRepository.value.themePreference;
|
|
final theme = Theme.of(context);
|
|
final textTheme = theme.textTheme;
|
|
|
|
return FormBuilderCheckbox(
|
|
name: formFieldEnableWallpaper,
|
|
title: Text(translate('settings_page.enable_wallpaper'),
|
|
style: textTheme.labelMedium),
|
|
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();
|
|
}
|
|
});
|
|
}
|