From db3123320baec5f980627b55713c5e0d6e6699d8 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Sun, 3 Dec 2023 10:52:56 +0300 Subject: [PATCH] 12/3/2 --- lib/controller/firebase/firbase_messge.dart | 377 ++++++++++-------- .../mapDriverWidgets/driver_end_ride_bar.dart | 8 +- 2 files changed, 205 insertions(+), 180 deletions(-) diff --git a/lib/controller/firebase/firbase_messge.dart b/lib/controller/firebase/firbase_messge.dart index 18a2768..4f2404a 100644 --- a/lib/controller/firebase/firbase_messge.dart +++ b/lib/controller/firebase/firbase_messge.dart @@ -201,6 +201,115 @@ class FirebaseMessagesController extends GetxController { update(); } } + // If the app is in the background or terminated, show a system tray message + RemoteNotification? notification = message.notification; + AndroidNotification? android = message.notification?.android; + // if (notification != null && android != null) { + if (notification != null && android != null) { + print('onMessageOpenedApp: ${notification.title} ${notification.body}'); + if (message.data.isNotEmpty) { + if (message.notification!.title!.contains('Order')) { + var myListString = message.data['DriverList']; + print(myListString); + print('9999999999999myListString999999999999999'); + var myList = jsonDecode(myListString) as List; + driverToken = myList[14].toString(); + update(); + print('driverToken==============$driverToken'); + Get.to(() => OrderRequestPage(), arguments: { + 'myListString': myListString, + 'DriverList': myList, + 'body': message.notification!.body + }); + } else if (message.notification!.title!.contains('Apply Ride')) { + var passengerList = message.data['passengerList']; + print(passengerList); + print('9999999999999my Apply Ride 999999999999999'); + var myList = jsonDecode(passengerList) as List; + driverID = myList[2].toString(); + + Get.snackbar( + 'Captain Applied the Ride for You'.tr, + 'message', + colorText: AppColor.greenColor, + duration: const Duration(seconds: 11), + instantInit: true, + snackPosition: SnackPosition.TOP, + titleText: Text( + 'Applied'.tr, + style: const TextStyle(color: AppColor.redColor), + ), + messageText: Text( + 'Captain Applied the Ride for You'.tr, + style: AppStyle.title, + ), + icon: const Icon(Icons.approval), + shouldIconPulse: true, + maxWidth: double.infinity, + margin: const EdgeInsets.all(16), + padding: const EdgeInsets.all(16), + borderRadius: 8, + borderColor: AppColor.primaryColor, + borderWidth: 2, + backgroundColor: AppColor.secondaryColor, + leftBarIndicatorColor: AppColor.greenColor, + boxShadows: [ + BoxShadow( + color: Colors.black.withOpacity(0.25), + blurRadius: 4, + spreadRadius: 2, + offset: const Offset(0, 4), + ), + ], + backgroundGradient: const LinearGradient( + colors: [AppColor.greenColor, AppColor.accentColor], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + onTap: (GetSnackBar snackBar) { + // Do something when the snackbar is tapped. + // MapController().rideConfirm = false; + // update(); + }, + isDismissible: true, + showProgressIndicator: false, + dismissDirection: DismissDirection.up, + progressIndicatorController: null, + progressIndicatorBackgroundColor: Colors.transparent, + progressIndicatorValueColor: null, + snackStyle: SnackStyle.GROUNDED, + forwardAnimationCurve: Curves.easeInToLinear, + reverseAnimationCurve: Curves.easeInOut, + animationDuration: const Duration(milliseconds: 4000), + barBlur: 8, + overlayBlur: 0, + snackbarStatus: null, + overlayColor: AppColor.primaryColor.withOpacity(0.5), + userInputForm: null, + ); + } else if (message.notification!.title!.contains('Promo')) { + Get.to(const PromosPassengerPage()); + } else if (message.notification!.title! + .contains('DriverIsGoingToPassenger')) { + Get.snackbar('Driver is Going To Passenger', '', + backgroundColor: AppColor.greenColor); + } else if (message.notification!.title!.contains('RideIsBegin')) { + // MapPassengerController mapController = Get.put(MapPassengerController()); + Get.snackbar('RideIsBegin', '', + backgroundColor: AppColor.greenColor); + // mapController.driverArrivePassenger(); + update(); + } else if (message.notification!.title! + .contains('Captain Finish Trip')) { + // MapPassengerController mapController = + // Get.find(); + Get.snackbar('Ride Finished'.tr, '', + backgroundColor: AppColor.greenColor); + // mapController.isRideFinished = true;//todo fix that for dfinish ride in passenger app + update(); + } + } + } }); FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) { @@ -209,184 +318,104 @@ class FirebaseMessagesController extends GetxController { RemoteNotification? notification = message.notification; if (message.data.isNotEmpty) { if (message.notification!.title!.contains('Order')) { - var myListString = message.data['myList']; + var myListString = message.data['DriverList']; + print(myListString); + print('9999999999999myListString999999999999999'); var myList = jsonDecode(myListString) as List; - Get.defaultDialog( - barrierDismissible: true, - title: message.notification!.title.toString(), - content: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - // Text(message.notification!.body.toString()), - Padding( - padding: const EdgeInsets.all(8.0), - child: TextButton.icon( - onPressed: () { - String mapUrl = - 'https://www.google.com/maps/dir/${myList[0]}/${myList[1]}/'; - // print(mapUrl); - launchUrl1(mapUrl); - }, - icon: const Icon(Icons.map), - label: Text('Routs of Trip'.tr)), - ), + driverToken = myList[14].toString(); + update(); + print('driverToken==============$driverToken'); + Get.to(() => OrderRequestPage(), arguments: { + 'myListString': myListString, + 'DriverList': myList, + 'body': message.notification!.body + }); + } else if (message.notification!.title!.contains('Apply Ride')) { + var passengerList = message.data['passengerList']; + print(passengerList); + print('9999999999999my Apply Ride 999999999999999'); + var myList = jsonDecode(passengerList) as List; + driverID = myList[2].toString(); - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - 'Total From Passenger is '.tr + - double.parse(myList[2]).toStringAsFixed(2), - style: AppStyle.title, - ), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - 'Total For You is '.tr + - double.parse(myList[3]).toStringAsFixed(2), - style: AppStyle.title, - ), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - 'Distance is '.tr + myList[5].toString() + ' KM'.tr, - style: AppStyle.title, - ), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - 'Duration of Trip is '.tr + - myList[4].toString() + - ' Minutes'.tr, - style: AppStyle.title, - ), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - MyElevatedButton( - title: 'Apply Order'.tr, - onPressed: () async { - await CRUD().postFromDialogue( - link: AppLink.addDriverOrder, - payload: { - 'driver_id': myList[6].toString(), - // box.read(BoxName.driverID).toString(), - 'order_id': - message.notification!.body.toString(), - 'status': 'Apply' - }); - }, - ), - MyElevatedButton( - title: 'Refuse Order'.tr, - onPressed: () async { - await CRUD().postFromDialogue( - link: AppLink.addDriverOrder, - payload: { - 'driver_id': myList[6].toString(), - // box.read(BoxName.driverID).toString(), - 'order_id': - message.notification!.body.toString(), - 'status': 'Refused' - }); - }, - kolor: AppColor.redColor, - ), - ], - ), - ) - ], - )); - } - } else if (message.notification!.title!.contains('Apply Ride')) { - // MapController().rideConfirm = true; - var passengerList = message.data['passengerList']; - print(passengerList); - print('9999999999999my Apply Ride 999999999999999'); - MapPassengerController mapController = - Get.find(); - mapController.rideConfirm = false; - update(); - print( - '-----------------------------rideConfirm===${mapController.rideConfirm}'); - - var myList = jsonDecode(passengerList) as List; - driverID = myList[2].toString(); - Get.snackbar( - 'Captain Applied the Ride for You'.tr, - 'message', - colorText: AppColor.greenColor, - duration: const Duration(seconds: 11), - instantInit: true, - snackPosition: SnackPosition.TOP, - titleText: Text( - 'Applied'.tr, - style: const TextStyle(color: AppColor.redColor), - ), - messageText: Text( + Get.snackbar( 'Captain Applied the Ride for You'.tr, - style: AppStyle.title, - ), - icon: const Icon(Icons.approval), - shouldIconPulse: true, - maxWidth: double.infinity, - margin: const EdgeInsets.all(16), - padding: const EdgeInsets.all(16), - borderRadius: 8, - borderColor: AppColor.primaryColor, - borderWidth: 2, - backgroundColor: AppColor.secondaryColor, - leftBarIndicatorColor: AppColor.greenColor, - boxShadows: [ - BoxShadow( - color: Colors.black.withOpacity(0.25), - blurRadius: 4, - spreadRadius: 2, - offset: const Offset(0, 4), + 'message', + colorText: AppColor.greenColor, + duration: const Duration(seconds: 11), + instantInit: true, + snackPosition: SnackPosition.TOP, + titleText: Text( + 'Applied'.tr, + style: const TextStyle(color: AppColor.redColor), ), - ], - backgroundGradient: const LinearGradient( - colors: [AppColor.greenColor, AppColor.accentColor], - begin: Alignment.topLeft, - end: Alignment.bottomRight, - ), - onTap: (GetSnackBar snackBar) { - // Do something when the snackbar is tapped. - // MapController().rideConfirm = false; - // update(); - }, - isDismissible: true, - showProgressIndicator: false, - dismissDirection: DismissDirection.up, - progressIndicatorController: null, - progressIndicatorBackgroundColor: Colors.transparent, - progressIndicatorValueColor: null, - snackStyle: SnackStyle.GROUNDED, - forwardAnimationCurve: Curves.easeInToLinear, - reverseAnimationCurve: Curves.easeInOut, - animationDuration: const Duration(milliseconds: 4000), - barBlur: 8, - overlayBlur: 0, - snackbarStatus: null, - overlayColor: AppColor.primaryColor.withOpacity(0.5), - userInputForm: null, - ); - } else if (message.notification!.title!.contains('Promo')) { - Get.to(const PromosPassengerPage()); - } else if (message.notification!.title!.contains('RideIsBegin')) { - // MapDirection mapDirection = Get.find(); - // mapDirection.clearPolyline(); - print('jjjjjjjjjjjjjjjjjjjjjjjjjjj'); - Get.defaultDialog( - title: 'The Ride is Begin'.tr, - backgroundColor: AppColor.greenColor, - ); - MapDriverController().clearPolyline(); + messageText: Text( + 'Captain Applied the Ride for You'.tr, + style: AppStyle.title, + ), + icon: const Icon(Icons.approval), + shouldIconPulse: true, + maxWidth: double.infinity, + margin: const EdgeInsets.all(16), + padding: const EdgeInsets.all(16), + borderRadius: 8, + borderColor: AppColor.primaryColor, + borderWidth: 2, + backgroundColor: AppColor.secondaryColor, + leftBarIndicatorColor: AppColor.greenColor, + boxShadows: [ + BoxShadow( + color: Colors.black.withOpacity(0.25), + blurRadius: 4, + spreadRadius: 2, + offset: const Offset(0, 4), + ), + ], + backgroundGradient: const LinearGradient( + colors: [AppColor.greenColor, AppColor.accentColor], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + onTap: (GetSnackBar snackBar) { + // Do something when the snackbar is tapped. + // MapController().rideConfirm = false; + // update(); + }, + isDismissible: true, + showProgressIndicator: false, + dismissDirection: DismissDirection.up, + progressIndicatorController: null, + progressIndicatorBackgroundColor: Colors.transparent, + progressIndicatorValueColor: null, + snackStyle: SnackStyle.GROUNDED, + forwardAnimationCurve: Curves.easeInToLinear, + reverseAnimationCurve: Curves.easeInOut, + animationDuration: const Duration(milliseconds: 4000), + barBlur: 8, + overlayBlur: 0, + snackbarStatus: null, + overlayColor: AppColor.primaryColor.withOpacity(0.5), + userInputForm: null, + ); + } else if (message.notification!.title!.contains('Promo')) { + Get.to(const PromosPassengerPage()); + } else if (message.notification!.title! + .contains('DriverIsGoingToPassenger')) { + Get.snackbar('Driver is Going To Passenger', '', + backgroundColor: AppColor.greenColor); + } else if (message.notification!.title!.contains('RideIsBegin')) { + // MapPassengerController mapController = Get.put(MapPassengerController()); + Get.snackbar('RideIsBegin', '', backgroundColor: AppColor.greenColor); + // mapController.driverArrivePassenger(); + update(); + } else if (message.notification!.title! + .contains('Captain Finish Trip')) { + // MapPassengerController mapController = + // Get.find(); + Get.snackbar('Ride Finished'.tr, '', + backgroundColor: AppColor.greenColor); + // mapController.isRideFinished = true;//todo fix that for dfinish ride in passenger app + update(); + } } }); } diff --git a/lib/views/home/Captin/mapDriverWidgets/driver_end_ride_bar.dart b/lib/views/home/Captin/mapDriverWidgets/driver_end_ride_bar.dart index b990ab4..f37bea3 100644 --- a/lib/views/home/Captin/mapDriverWidgets/driver_end_ride_bar.dart +++ b/lib/views/home/Captin/mapDriverWidgets/driver_end_ride_bar.dart @@ -26,9 +26,7 @@ GetBuilder driverEndRideBar() { children: [ const Icon(Icons.social_distance), Text( - mapDriverController.distance.toString() + - ' ' + - 'KM'.tr, + '${mapDriverController.distance} ${'KM'.tr}', style: AppStyle.title, ), ], @@ -46,9 +44,7 @@ GetBuilder driverEndRideBar() { children: [ const Icon(Icons.timelapse), Text( - mapDriverController.duration.toString() + - ' ' + - 'Minute'.tr, + '${mapDriverController.duration} ${'Minute'.tr}', style: AppStyle.title), ], ),