Background image & appearance settings

This commit is contained in:
2024-11-10 21:48:42 +08:00
parent c1e10916ee
commit ac70624c4e
13 changed files with 354 additions and 34 deletions

View File

@ -1,4 +1,7 @@
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
const kMaterialYouToggleStoreKey = 'app_theme_material_you';
class ThemeSet {
ThemeData light;
@ -7,21 +10,28 @@ class ThemeSet {
ThemeSet({required this.light, required this.dark});
}
ThemeSet createAppThemeSet() {
Future<ThemeSet> createAppThemeSet({bool? useMaterial3}) async {
return ThemeSet(
light: createAppTheme(Brightness.light),
dark: createAppTheme(Brightness.dark),
light: await createAppTheme(Brightness.light, useMaterial3: useMaterial3),
dark: await createAppTheme(Brightness.dark, useMaterial3: useMaterial3),
);
}
ThemeData createAppTheme(Brightness brightness) {
Future<ThemeData> createAppTheme(
Brightness brightness, {
bool? useMaterial3,
}) async {
final prefs = await SharedPreferences.getInstance();
return ThemeData(
useMaterial3: false,
useMaterial3:
useMaterial3 ?? (prefs.getBool(kMaterialYouToggleStoreKey) ?? false),
colorScheme: ColorScheme.fromSeed(
seedColor: Colors.indigo,
brightness: brightness,
),
brightness: brightness,
iconTheme: const IconThemeData(fill: 0, weight: 400, opticalSize: 20),
scaffoldBackgroundColor: Colors.transparent,
);
}