From d04a003426c460fc4fedaa1a16a97a4575d29c40 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Thu, 14 Sep 2023 02:15:45 +0300 Subject: [PATCH] 9/13/3 --- lib/constant/links.dart | 3 +- lib/controller/firebase/firbase_messge.dart | 112 +----------------- lib/controller/functions/crud.dart | 24 ++-- lib/controller/home/map_page_controller.dart | 17 ++- lib/views/auth/login_page.dart | 14 +-- lib/views/home/map_page.dart | 40 ++++--- .../map_widget.dart/cancel_raide_page.dart | 13 +- 7 files changed, 73 insertions(+), 150 deletions(-) diff --git a/lib/constant/links.dart b/lib/constant/links.dart index 142f0ab..3cb1fa2 100644 --- a/lib/constant/links.dart +++ b/lib/constant/links.dart @@ -28,7 +28,8 @@ class AppLink { ////=======================cancelRide=================== static const String ride = '$server/ride'; - static const String addCancelRide = "$server/ride/cancelRide/add.php"; + static const String addCancelRideFromPassenger = + "$server/ride/cancelRide/add.php"; static const String cancelRide = "$server/ride/cancelRide/get.php"; //-----------------ridessss------------------ static const String addRides = "$ride/rides/add.php"; diff --git a/lib/controller/firebase/firbase_messge.dart b/lib/controller/firebase/firbase_messge.dart index 7f496c8..d9eb7cb 100644 --- a/lib/controller/firebase/firbase_messge.dart +++ b/lib/controller/firebase/firbase_messge.dart @@ -23,6 +23,7 @@ class FirebasMessagesController extends GetxController { List tokens = []; List dataTokens = []; + late String driverID; NotificationSettings? notificationSettings; @override void onInit() async { @@ -110,103 +111,13 @@ class FirebasMessagesController extends GetxController { 'DriverList': myList, 'body': message.notification!.body }); - // Get.defaultDialog( - // barrierDismissible: false, - // 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('Rouats of Trip'.tr)), - // ), - - // Padding( - // padding: const EdgeInsets.all(8.0), - // child: Text( - // 'Tatal From Passenger is '.tr + - // double.parse(myList[2]).toStringAsFixed(2), - // style: AppStyle.title, - // ), - // ), - // Padding( - // padding: const EdgeInsets.all(8.0), - // child: Text( - // 'Tatal 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'); var myList = jsonDecode(passengerList) as List; + driverID = myList[2].toString(); Get.snackbar( 'Captin Applied the Ride for You'.tr, 'message', @@ -266,25 +177,6 @@ class FirebasMessagesController extends GetxController { overlayColor: AppColor.primaryColor.withOpacity(0.5), userInputForm: null, ); - - // Get.defaultDialog( - // barrierDismissible: false, - // title: message.notification!.title.toString(), - // content: Row( - // children: [Text(myList[1].toString())], - // ), - // confirm: MyElevatedButton( - // title: 'Ok', - // onPressed: () { - // // MapController().rideConfirm = true; - // }, - // ), - // cancel: MyElevatedButton( - // title: 'Cancel', - // onPressed: () { - // Get.back(); - // }, - // )); } else if (message.notification!.title!.contains('Promo')) { Get.to(const PromosPassengerPage()); } diff --git a/lib/controller/functions/crud.dart b/lib/controller/functions/crud.dart index 4bddc99..e95f11f 100644 --- a/lib/controller/functions/crud.dart +++ b/lib/controller/functions/crud.dart @@ -83,20 +83,24 @@ class CRUD { }, ); print(response.request); + print('body========================='); + print(response.body); - var jsonData = jsonDecode(response.body); - if (response.statusCode == 200) { - if (jsonData['status'] == 'success') { - Get.back(); - Get.snackbar( - jsonData['status'], - jsonData['message'], - ); + if (response.body.isNotEmpty) { + var jsonData = jsonDecode(response.body); + if (response.statusCode == 200) { + if (jsonData['status'] == 'success') { + Get.back(); + Get.snackbar( + jsonData['status'], + jsonData['message'], + ); - return response.body; + return response.body; + } } + return (jsonData['status']); } - return (jsonData['status']); } Future getGoogleApi({ diff --git a/lib/controller/home/map_page_controller.dart b/lib/controller/home/map_page_controller.dart index 31b609e..d6cac87 100644 --- a/lib/controller/home/map_page_controller.dart +++ b/lib/controller/home/map_page_controller.dart @@ -63,7 +63,7 @@ class MapController extends GetxController { int selectedPassengerCount = 1; double progress = 0; int durationTimer = 25; - int remainingTime = 0; + int remainingTime = 25; void onChangedPassengerCount(int newValue) { selectedPassengerCount = newValue; @@ -129,12 +129,13 @@ class MapController extends GetxController { update(); } + var rideId; changeConfirmRide() async { rideConfirm = true; shouldFetch = true; update(); // print('rideConfirm= $rideConfirm'); - var rideId; + await getCarsLocationByPassenger(); await CRUD().post(link: AppLink.addRides, payload: { "start_location": '${data[0]['start_address']}', @@ -226,6 +227,8 @@ class MapController extends GetxController { void timerEnded() async { print('Timer ended'); // refuseOrder(); + isCancelRidePageShown = false; + update(); } Future getRideStatus(int rideId) async { @@ -251,12 +254,16 @@ class MapController extends GetxController { data = []; rideConfirm = false; changeCancelRidePageShow(); + remainingTime = 25; + update(); - await CRUD().post(link: AppLink.addCancelRide, payload: { - "driverID": "1", // Convert to String + await CRUD().post(link: AppLink.addCancelRideFromPassenger, payload: { + "driverID": FirebasMessagesController() + .driverID + .toString(), // Convert to String "passengerID": box.read(BoxName.pasengerID).toString(), // Convert to String - "rideID": "222", // Convert to String + "rideID": rideId.toString(), // Convert to String "note": cancelNote }); diff --git a/lib/views/auth/login_page.dart b/lib/views/auth/login_page.dart index 5804951..c5b4519 100644 --- a/lib/views/auth/login_page.dart +++ b/lib/views/auth/login_page.dart @@ -184,13 +184,13 @@ class LoginPage extends StatelessWidget { displayFullTextOnTap: true, stopPauseOnTap: true, ), - // GestureDetector( - // onTap: () => Get.to(LoginCaptin()), - // child: Text( - // 'If You Want be Captin Click Here.'.tr, - // style: AppStyle.headtitle2, - // ), - // ) + GestureDetector( + onTap: () => Get.to(LoginCaptin()), + child: Text( + 'If You Want be Captin Click Here.'.tr, + style: AppStyle.headtitle2, + ), + ) ], ), ) diff --git a/lib/views/home/map_page.dart b/lib/views/home/map_page.dart index e06dc8c..6680dc0 100644 --- a/lib/views/home/map_page.dart +++ b/lib/views/home/map_page.dart @@ -7,6 +7,7 @@ import 'package:ride/constant/colors.dart'; import 'package:ride/constant/style.dart'; import 'package:ride/controller/home/map_page_controller.dart'; import 'package:ride/views/home/map_widget.dart/cancel_raide_page.dart'; +import 'package:ride/views/widgets/circle_container.dart'; import 'package:ride/views/widgets/elevated_btn.dart'; import 'package:ride/views/widgets/mycircular.dart'; @@ -299,20 +300,31 @@ class CancelRidePageShow extends StatelessWidget { @override Widget build(BuildContext context) { return GetBuilder( - builder: (controller) => controller.data.isNotEmpty - ? Positioned( - right: 5, - top: 55, - child: GestureDetector( - onTap: () { - controller.changeCancelRidePageShow(); - }, - child: const Icon( - Icons.clear, - size: 30, - ), - )) - : const SizedBox()); + builder: (controller) => + controller.data.isNotEmpty && controller.remainingTime > 0 + ? Positioned.directional( + end: 10, + top: 55, + textDirection: TextDirection.ltr, + child: GestureDetector( + onTap: () { + controller.changeCancelRidePageShow(); + }, + child: Container( + decoration: BoxDecoration( + color: AppColor.redColor, + borderRadius: BorderRadius.circular(15)), + child: const Padding( + padding: EdgeInsets.all(3), + child: Icon( + Icons.clear, + size: 30, + color: AppColor.secondaryColor, + ), + ), + ), + )) + : const SizedBox()); } } diff --git a/lib/views/home/map_widget.dart/cancel_raide_page.dart b/lib/views/home/map_widget.dart/cancel_raide_page.dart index de72d25..6525c10 100644 --- a/lib/views/home/map_widget.dart/cancel_raide_page.dart +++ b/lib/views/home/map_widget.dart/cancel_raide_page.dart @@ -58,13 +58,20 @@ GetBuilder cancelRidePage() { itemCount: reasons.length, itemBuilder: (context, index) { return ListTile( - title: Text(reasons[index]), + title: InkWell( + onTap: () { + controller.selectReason( + index, + reasons[index].toString(), + ); + }, + child: Text(reasons[index])), leading: Radio( value: index, groupValue: controller.selectedReason, onChanged: (int? value) { - print(value); - print(reasons[index]); + // print(value); + // print(reasons[index]); controller.selectReason( value!, reasons[index].toString(),