main.dart 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import 'package:flutter/material.dart';
  2. import 'screens/home_screen.dart';
  3. import 'services/app_strings.dart';
  4. import 'theme/app_theme.dart';
  5. import 'theme/theme_controller.dart';
  6. import 'theme/locale_controller.dart';
  7. void main() async {
  8. WidgetsFlutterBinding.ensureInitialized();
  9. await ThemeController.load();
  10. await AppStrings.preloadAll();
  11. await LocaleController.load();
  12. runApp(const PalmOilApp());
  13. }
  14. class PalmOilApp extends StatelessWidget {
  15. const PalmOilApp({super.key});
  16. @override
  17. Widget build(BuildContext context) {
  18. return ValueListenableBuilder<ThemeMode>(
  19. valueListenable: ThemeController.themeMode,
  20. builder: (context, mode, _) {
  21. return ValueListenableBuilder<String>(
  22. valueListenable: LocaleController.localeCode,
  23. builder: (context, _, _) {
  24. return MaterialApp(
  25. title: 'Palm Oil Ripeness AI',
  26. debugShowCheckedModeBanner: false,
  27. theme: AppTheme.light,
  28. darkTheme: AppTheme.dark,
  29. themeMode: mode,
  30. home: const HomeScreen(),
  31. );
  32. },
  33. );
  34. },
  35. );
  36. }
  37. }