36 lines
1.3 KiB
Dart
36 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|||
|
|
import 'package:flutter_localizations/flutter_localizations.dart';
|
||
|
|
import 'package:provider/provider.dart';
|
||
|
|
|
||
|
|
import 'design/app_theme.dart';
|
||
|
|
import 'design/zen_style.dart';
|
||
|
|
import 'home/home_view.dart';
|
||
|
|
import 'localization/app_localizations.dart';
|
||
|
|
import 'settings/settings_controller.dart';
|
||
|
|
|
||
|
|
class ZenXerciseApp extends StatelessWidget {
|
||
|
|
const ZenXerciseApp({super.key});
|
||
|
|
|
||
|
|
@override
|
||
|
|
Widget build(BuildContext context) {
|
||
|
|
final mode = context.watch<SettingsController>().mode;
|
||
|
|
// The whole app morphs into the new Mode at that Mode's own pace.
|
||
|
|
final style = ZenStyle.forMode(mode);
|
||
|
|
return MaterialApp(
|
||
|
|
theme: AppTheme.forMode(mode),
|
||
|
|
themeAnimationDuration: style.motion,
|
||
|
|
themeAnimationCurve: style.curve,
|
||
|
|
restorationScopeId: 'app',
|
||
|
|
localizationsDelegates: const [
|
||
|
|
AppLocalizations.delegate,
|
||
|
|
GlobalMaterialLocalizations.delegate,
|
||
|
|
GlobalWidgetsLocalizations.delegate,
|
||
|
|
GlobalCupertinoLocalizations.delegate,
|
||
|
|
],
|
||
|
|
supportedLocales: AppLocalizations.supportedLocales,
|
||
|
|
onGenerateTitle: (context) => AppLocalizations.of(context).appTitle,
|
||
|
|
onGenerateRoute: (settings) =>
|
||
|
|
MaterialPageRoute<Object?>(settings: settings, builder: (context) => const HomeView()),
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|