main.dart 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_gen/gen_l10n/app_localizations.dart';
  3. import 'package:provider/provider.dart';
  4. import 'package:shared_preferences/shared_preferences.dart';
  5. // My Codes
  6. import './controller/language_change_controller.dart';
  7. import './views/home.dart';
  8. Future<void> main() async {
  9. WidgetsFlutterBinding.ensureInitialized();
  10. SharedPreferences sp = await SharedPreferences.getInstance();
  11. final String locale = sp.getString('locale') ?? '';
  12. //print(locale);
  13. runApp(MyApp(locale: locale));
  14. }
  15. class MyApp extends StatelessWidget {
  16. final String locale;
  17. const MyApp({super.key, required this.locale});
  18. // This widget is the root of your application.
  19. @override
  20. Widget build(BuildContext context) {
  21. return MultiProvider(
  22. providers: [
  23. ChangeNotifierProvider(create: (_) => LanguageChangeController())
  24. ],
  25. child: Consumer<LanguageChangeController>(
  26. builder: (context, provider, child) {
  27. if (locale.isEmpty) {
  28. provider.changeLanguage(Locale('en'));
  29. }
  30. return MaterialApp(
  31. localizationsDelegates: AppLocalizations.localizationsDelegates,
  32. supportedLocales: AppLocalizations.supportedLocales,
  33. locale: provider.appLocale,
  34. title: 'Kittipoyi - Service Provider',
  35. theme: ThemeData(
  36. colorScheme: ColorScheme.fromSeed(
  37. seedColor: const Color.fromRGBO(240, 86, 39, 1)),
  38. useMaterial3: true,
  39. ),
  40. routes: {Home.routeName: (context) => const Home()},
  41. home: const Home(),
  42. );
  43. }),
  44. );
  45. }
  46. }