Files
Fondex/lib/main.dart

88 lines
3.4 KiB
Dart

import 'package:customer/screen_ui/splash_screen/splash_screen.dart';
import 'package:customer/service/localization_service.dart';
import 'package:customer/themes/app_them_data.dart';
import 'package:customer/themes/easy_loading_config.dart';
import 'package:customer/utils/preferences.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:get/get.dart';
import 'controllers/global_setting_controller.dart';
import 'controllers/theme_controller.dart';
import 'firebase_options.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(name: 'default', options: DefaultFirebaseOptions.currentPlatform);
await Preferences.initPref();
Get.put(ThemeController());
await configEasyLoading();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
MyApp({super.key});
final themeController = Get.find<ThemeController>();
@override
Widget build(BuildContext context) {
Get.put(ThemeController());
return Obx(
() => GetMaterialApp(
debugShowCheckedModeBanner: false,
builder: (context, child) {
return SafeArea(bottom: true, top: false, child: EasyLoading.init()(context, child));
},
translations: LocalizationService(),
locale: LocalizationService.locale,
fallbackLocale: LocalizationService.locale,
themeMode: themeController.themeMode,
theme: ThemeData(
scaffoldBackgroundColor: AppThemeData.surface,
textTheme: TextTheme(bodyLarge: TextStyle(color: AppThemeData.grey900)),
appBarTheme: AppBarTheme(
backgroundColor: AppThemeData.surface,
foregroundColor: AppThemeData.grey900,
iconTheme: IconThemeData(color: AppThemeData.grey900),
),
bottomNavigationBarTheme: BottomNavigationBarThemeData(
backgroundColor: AppThemeData.surface,
selectedItemColor: AppThemeData.primary300,
unselectedItemColor: AppThemeData.grey600,
selectedLabelStyle: TextStyle(fontFamily: AppThemeData.bold, fontSize: 12),
unselectedLabelStyle: TextStyle(fontFamily: AppThemeData.bold, fontSize: 12),
type: BottomNavigationBarType.fixed,
),
),
darkTheme: ThemeData(
scaffoldBackgroundColor: AppThemeData.surfaceDark,
textTheme: TextTheme(bodyLarge: TextStyle(color: AppThemeData.greyDark900)),
appBarTheme: AppBarTheme(
backgroundColor: AppThemeData.surfaceDark,
foregroundColor: AppThemeData.greyDark900,
iconTheme: IconThemeData(color: AppThemeData.greyDark900),
),
bottomNavigationBarTheme: BottomNavigationBarThemeData(
backgroundColor: AppThemeData.grey900,
selectedItemColor: AppThemeData.primary300,
unselectedItemColor: AppThemeData.grey300,
selectedLabelStyle: TextStyle(fontFamily: AppThemeData.bold, fontSize: 12),
unselectedLabelStyle: TextStyle(fontFamily: AppThemeData.bold, fontSize: 12),
type: BottomNavigationBarType.fixed,
),
),
home: GetBuilder<GlobalSettingController>(
init: GlobalSettingController(),
builder: (context) {
return const SplashScreen();
},
),
),
);
}
}