| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // Copyright 2021 The Flutter team. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- import 'package:flutter/material.dart';
- import 'package:flutter/scheduler.dart';
- import 'constants.dart';
- import 'home.dart';
- void main() {
- runApp(
- const App(),
- );
- }
- class App extends StatefulWidget {
- const App({super.key});
- @override
- State<App> createState() => _AppState();
- }
- class _AppState extends State<App> {
- bool useMaterial3 = true;
- ThemeMode themeMode = ThemeMode.system;
- ColorSeed colorSelected = ColorSeed.baseColor;
- bool get useLightMode {
- switch (themeMode) {
- case ThemeMode.system:
- return SchedulerBinding.instance.window.platformBrightness ==
- Brightness.light;
- case ThemeMode.light:
- return true;
- case ThemeMode.dark:
- return false;
- }
- }
- void handleBrightnessChange(bool useLightMode) {
- setState(() {
- themeMode = useLightMode ? ThemeMode.light : ThemeMode.dark;
- });
- }
- void handleMaterialVersionChange() {
- setState(() {
- useMaterial3 = !useMaterial3;
- });
- }
- void handleColorSelect(int value) {
- setState(() {
- colorSelected = ColorSeed.values[value];
- });
- }
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- debugShowCheckedModeBanner: false,
- title: 'Material 3',
- themeMode: themeMode,
- theme: ThemeData(
- colorSchemeSeed: colorSelected.color,
- useMaterial3: useMaterial3,
- brightness: Brightness.light,
- ),
- darkTheme: ThemeData(
- colorSchemeSeed: colorSelected.color,
- useMaterial3: useMaterial3,
- brightness: Brightness.dark,
- ),
- home: Home(
- useLightMode: useLightMode,
- useMaterial3: useMaterial3,
- colorSelected: colorSelected,
- handleBrightnessChange: handleBrightnessChange,
- handleMaterialVersionChange: handleMaterialVersionChange,
- handleColorSelect: handleColorSelect,
- ),
- );
- }
- }
|