import 'dart:io'; import 'dart:math'; import 'package:Tripz/constant/box_name.dart'; import 'package:Tripz/controller/payment/paymob/paymob_response.dart'; import 'package:Tripz/views/home/HomePage/contact_us.dart'; import 'package:Tripz/views/home/HomePage/share_app_page.dart'; import 'package:Tripz/views/home/my_wallet/passenger_wallet.dart'; import 'package:Tripz/views/home/profile/passenger_profile_page.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_stripe/flutter_stripe.dart'; import 'package:get/get.dart'; import 'package:get_storage/get_storage.dart'; import 'package:flutter/services.dart'; import 'package:quick_actions/quick_actions.dart'; import 'package:wakelock_plus/wakelock_plus.dart'; import 'constant/api_key.dart'; import 'constant/info.dart'; import 'constant/notification.dart'; import 'controller/auth/google_sign.dart'; import 'controller/firebase/firbase_messge.dart'; import 'controller/firebase/local_notification.dart'; import 'controller/functions/encrypt_decrypt.dart'; import 'controller/functions/secure_storage.dart'; import 'controller/local/local_controller.dart'; import 'controller/local/translations.dart'; import 'controller/payment/paymob/paymob_wallet.dart'; import 'firebase_options.dart'; import 'models/db_sql.dart'; import 'splash_screen_page.dart'; final box = GetStorage(); final storage = FlutterSecureStorage(); // final PaymobPayment paymobPayment = PaymobPayment(); final PaymobPayment paymobPayment = PaymobPayment(); final PaymobPaymentWallet paymobPaymentWallet = PaymobPaymentWallet(); DbSql sql = DbSql.instance; // EncryptionHelper encryptionHelper = EncryptionHelper.instance; @pragma('vm:entry-point') Future backgroundMessageHandler(RemoteMessage message) async { await Firebase.initializeApp(); FirebaseMessagesController().fireBaseTitles(message); } void main() async { WidgetsFlutterBinding.ensureInitialized(); WakelockPlus.enable(); await GetStorage.init(); final AppInitializer initializer = AppInitializer(); await initializer.initializeApp(); await EncryptionHelper.initialize(); NotificationController notificationController = Get.put(NotificationController()); Stripe.publishableKey = AK.publishableKey; // if (box.read(BoxName.driverID) != null) {} if (Platform.isAndroid || Platform.isIOS) { await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); await FirebaseMessagesController().requestFirebaseMessagingPermission(); FirebaseMessaging.onBackgroundMessage(backgroundMessageHandler); List initializationTasks = [ FirebaseMessagesController().getNotificationSettings(), FirebaseMessagesController().getToken(), ]; // cameras = await availableCameras(); await Future.wait(initializationTasks); SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); } await notificationController.initNotifications(); // Generate a random index to pick a message final random = Random(); final randomMessage = messages[random.nextInt(messages.length)]; // Schedule the notification with the random message notificationController.scheduleNotificationsForSevenDays( randomMessage.split(':')[0], randomMessage.split(':')[1], "tone1", ); // final encryptionHelper = await EncryptionHelper.initialize(); final QuickActions quickActions = QuickActions(); quickActions.initialize((String shortcutType) { print('Activated shortcut: $shortcutType'); if (shortcutType == 'share_app') { Get.toNamed('/shareApp'); } else if (shortcutType == 'wallet') { Get.toNamed('/wallet'); } else if (shortcutType == 'profile') { Get.toNamed('/profile'); } else if (shortcutType == 'contact_support') { Get.toNamed('/contactSupport'); } }); quickActions.setShortcutItems([ ShortcutItem( type: 'share_app', localizedTitle: 'Share App'.tr, icon: 'icon_share', ), ShortcutItem( type: 'wallet', localizedTitle: 'Wallet'.tr, icon: 'icon_wallet', ), ShortcutItem( type: 'profile', localizedTitle: 'Profile'.tr, icon: 'icon_user', ), ShortcutItem( type: 'contact_support', localizedTitle: 'Contact Support'.tr, icon: 'icon_support', ), ]); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { LocaleController localController = Get.put(LocaleController()); return GetMaterialApp( title: AppInformation.appName, translations: MyTranslation(), debugShowCheckedModeBanner: false, locale: localController.language, theme: localController.appTheme, key: UniqueKey(), // routes: {'/':const HomePage()}, // home: LoginCaptin()); initialRoute: '/', getPages: [ GetPage(name: '/', page: () => SplashScreen()), GetPage(name: '/shareApp', page: () => ShareAppPage()), GetPage(name: '/wallet', page: () => PassengerWallet()), GetPage(name: '/profile', page: () => PassengerProfilePage()), GetPage(name: '/contactSupport', page: () => ContactUsPage()), ], // home: SplashScreen() ); } }