From b710fe314eba46a336d59f610d08edb48b96ef6e Mon Sep 17 00:00:00 2001 From: Hamza Aleghwairyeen Date: Mon, 1 Apr 2024 03:41:04 +0300 Subject: [PATCH] 4/1/1 --- assets/images/freeRide.png | Bin 0 -> 36112 bytes devtools_options.yaml | 1 + .../home/captin/order_request_controller.dart | 16 +- .../home/map_passenger_controller.dart | 20 +- lib/controller/local/translations.dart | 7 +- .../orderCaptin/order_speed_request.dart | 63 +---- lib/views/home/map_page_passenger.dart | 2 +- .../car_details_widget_to_go.dart | 262 +++++++++++++++--- 8 files changed, 252 insertions(+), 119 deletions(-) create mode 100644 assets/images/freeRide.png create mode 100644 devtools_options.yaml diff --git a/assets/images/freeRide.png b/assets/images/freeRide.png new file mode 100644 index 0000000000000000000000000000000000000000..0667d425444f4ad0701a71971cd28e4863de12b3 GIT binary patch literal 36112 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 literal 0 HcmV?d00001 diff --git a/devtools_options.yaml b/devtools_options.yaml new file mode 100644 index 0000000..7e7e7f6 --- /dev/null +++ b/devtools_options.yaml @@ -0,0 +1 @@ +extensions: diff --git a/lib/controller/home/captin/order_request_controller.dart b/lib/controller/home/captin/order_request_controller.dart index 7e2e3d4..ddbf139 100644 --- a/lib/controller/home/captin/order_request_controller.dart +++ b/lib/controller/home/captin/order_request_controller.dart @@ -97,14 +97,14 @@ class OrderRequestController extends GetxController { update(); } - if (remainingTimeSpeed == 0) { - if (applied == false) { - print('applied========================='); - print(applied); - Get.back(); - // refuseOrder(box.read(BoxName.driverID), orderID); - } - } + // if (remainingTimeSpeed == 0) { + // if (applied == false) { + // print('applied========================='); + // print(applied); + // Get.back(); + // // refuseOrder(box.read(BoxName.driverID), orderID); + // } + // } } void refuseOrder(orderID) async { diff --git a/lib/controller/home/map_passenger_controller.dart b/lib/controller/home/map_passenger_controller.dart index e995a6e..8a23023 100644 --- a/lib/controller/home/map_passenger_controller.dart +++ b/lib/controller/home/map_passenger_controller.dart @@ -471,7 +471,7 @@ class MapPassengerController extends GetxController { // Format the message. String message = - '${'${'Hi! This is'.tr} ${box.read(BoxName.name)}.\n${' I am using'.tr}'} ${box.read(AppInformation.appName)}${' to ride with'.tr} $firstName${' as the driver.'.tr} $firstName \n${'is driving a '.tr}$model\n${' with license plate '.tr}$licensePlate.\n${' I am currently located at '.tr}$passengerLocation.\n${' If you need to reach me, please contact the driver directly at'.tr}\n\n $driverPhone.'; + '${'${'Hi! This is'.tr} ${box.read(BoxName.name)}.\n${' I am using'.tr}'} ${AppInformation.appName}${' to ride with'.tr} $firstName${' as the driver.'.tr} $firstName \n${'is driving a '.tr}$model\n${' with license plate '.tr}$licensePlate.\n${' I am currently located at '.tr} https://www.google.com/maps/place/${passengerLocation.latitude},${passengerLocation.longitude}.\n${' If you need to reach me, please contact the driver directly at'.tr}\n\n $driverPhone.'; // Launch the URL to send the SMS. launchCommunication('whatsapp', to, message); @@ -1199,18 +1199,16 @@ class MapPassengerController extends GetxController { } void reloadMarkerDriverCarsLocationToPassengerAfterApplied() { - // Clear existing markers - // markers.clear(); - // update(); clearMarkersExceptStartEnd(); // for (var i = 0; i < driverCarsLocationToPassengerAfterApplied.length; i++) { + LatLng driverPosition = LatLng( + double.parse( + datadriverCarsLocationToPassengerAfterApplied[0]['latitude']), + double.parse( + datadriverCarsLocationToPassengerAfterApplied[0]['longitude'])); final driverAcceptedMarker = Marker( markerId: const MarkerId('driverToPassengers'), - position: LatLng( - double.parse( - datadriverCarsLocationToPassengerAfterApplied[0]['latitude']), - double.parse( - datadriverCarsLocationToPassengerAfterApplied[0]['longitude'])), + position: driverPosition, rotation: double.parse( datadriverCarsLocationToPassengerAfterApplied['message'][0] ['heading']), @@ -1218,9 +1216,7 @@ class MapPassengerController extends GetxController { ); markers.add(driverAcceptedMarker); // update(); - mapController?.animateCamera(CameraUpdate.newLatLng(LatLng( - driverCarsLocationToPassengerAfterApplied[0].latitude, - driverCarsLocationToPassengerAfterApplied[0].longitude))); + mapController?.animateCamera(CameraUpdate.newLatLng(driverPosition)); update(); // } // Update the map with the new markers } diff --git a/lib/controller/local/translations.dart b/lib/controller/local/translations.dart index 54695a7..b4d1561 100644 --- a/lib/controller/local/translations.dart +++ b/lib/controller/local/translations.dart @@ -458,7 +458,12 @@ class MyTranslation extends Translations { 'Are you sure to cancel?': "هل أنت متأكد من الإلغاء؟", 'Yes': 'نعم', 'Insert Emergincy Number': "أدخل رقم الطوارئ", - 'Insert': "إدراج",'You can decline a request without any cost':'‏يمكنك إلغاء الطلب بدون أي تكلفة', + 'Best choice for comfort car and flexible route and stops point': 'أفضل اختيار لسيارة مريحة ومسار مرن ونقاط توقف', + 'Insert': "إدراج",'This is for delivery or a motorcycle.':"هذا للتسليم أو الدراجة النارية", + 'This trip goes directly from your starting point to your destination for a fixed price. The driver must follow the planned route':'الرحلة دي من نقطة البداية لنقطة النهاية بسعر ثابت والسواق لازم يمشي بنفس الطريق.', + 'You can decline a request without any cost': + '‏يمكنك إلغاء الطلب بدون أي تكلفة', + 'Perfect for adventure seekers who want to experience something new and exciting':'خيار مثالي لللي عايزين يخرجوا من الروتين ويجربوا حاجات جديدة ومثيرة', " My current location is:": "موقعي الحالي هو:", " \nand I have a trip on": "\nولدي رحلة على", "App \nwith Passenger ": "التطبيق\nمع الراكب ", diff --git a/lib/views/home/Captin/orderCaptin/order_speed_request.dart b/lib/views/home/Captin/orderCaptin/order_speed_request.dart index d7463a1..87ef710 100644 --- a/lib/views/home/Captin/orderCaptin/order_speed_request.dart +++ b/lib/views/home/Captin/orderCaptin/order_speed_request.dart @@ -270,34 +270,6 @@ class OrderSpeedRequest extends StatelessWidget { ), ), ), - // Padding( - // padding: const EdgeInsets.all(8.0), - // child: RichText( - // text: TextSpan( - // text: 'Duration To Passenger is '.tr, - // style: AppStyle.title, - // children: [ - // TextSpan( - // text: myList[11].toString(), - // style: AppStyle.headTitle2), - // ], - // ), - // ), - // ), - // Padding( - // padding: const EdgeInsets.all(8.0), - // child: RichText( - // text: TextSpan( - // text: 'Distance To Passenger is '.tr, - // style: AppStyle.title, - // children: [ - // TextSpan( - // text: myList[12].toString(), - // style: AppStyle.headTitle2), - // ], - // ), - // ), - // ), Padding( padding: const EdgeInsets.all(4), child: Container( @@ -315,36 +287,6 @@ class OrderSpeedRequest extends StatelessWidget { ), ), ), - // Padding( - // padding: const EdgeInsets.all(8.0), - // child: RichText( - // text: TextSpan( - // text: 'Distance from Passenger to destination is '.tr, - // style: AppStyle.title, - // children: [ - // TextSpan( - // text: myList[5].toString(), - // style: AppStyle.headTitle2), - // TextSpan(text: ' KM'.tr, style: AppStyle.title), - // ]), - // ), - // ), - // Padding( - // padding: const EdgeInsets.all(8.0), - // child: RichText( - // text: TextSpan( - // text: 'Duration of Trip is '.tr, - // style: AppStyle.title, - // children: [ - // TextSpan( - // text: hours > 1 - // ? '${'Your Ride Duration is '.tr}$hours${' H and'.tr} $minutes m' - // : '${'Your Ride Duration is '.tr} $minutes m', - // style: AppStyle.title), - // TextSpan(text: ' Minutes'.tr, style: AppStyle.title), - // ]), - // ), - // ), Padding( padding: const EdgeInsets.all(8.0), child: Row( @@ -356,8 +298,6 @@ class OrderSpeedRequest extends StatelessWidget { onPressed: () async { box.write(BoxName.statusDriverLocation, 'on'); - // orderRequestController.changeApplied(); - var res = await CRUD() .post(link: AppLink.updateStausFromSpeed, payload: { 'id': myList[16], @@ -378,8 +318,7 @@ class OrderSpeedRequest extends StatelessWidget { middleTextStyle: AppStyle.title, confirm: MyElevatedButton( title: 'Ok'.tr, onPressed: () => Get.back())); - } else if (json['message'] == - "Ride data updated successfully") { + } else if (json['status'] == "success") { List bodyToPassenger = [ box.read(BoxName.driverID).toString(), box.read(BoxName.nameDriver).toString(), diff --git a/lib/views/home/map_page_passenger.dart b/lib/views/home/map_page_passenger.dart index df8c53c..6a6302a 100644 --- a/lib/views/home/map_page_passenger.dart +++ b/lib/views/home/map_page_passenger.dart @@ -44,7 +44,7 @@ class MapPagePassenger extends StatelessWidget { const MapMenuWidget(), const MenuIconMapPageWidget(), buttomSheetMapPage(), - const CarDetailsTypeToChoose(), + CarDetailsTypeToChoose(), const ApplyOrderWidget(), // hexagonClipper(), const CancelRidePageShow(), diff --git a/lib/views/home/map_widget.dart/car_details_widget_to_go.dart b/lib/views/home/map_widget.dart/car_details_widget_to_go.dart index 72579c4..0167c46 100644 --- a/lib/views/home/map_widget.dart/car_details_widget_to_go.dart +++ b/lib/views/home/map_widget.dart/car_details_widget_to_go.dart @@ -6,6 +6,7 @@ import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import '../../../controller/functions/tts.dart'; import '../../../controller/home/map_passenger_controller.dart'; class CarType { @@ -31,11 +32,15 @@ List carTypes = [ carType: 'Delivery'.tr, carDetail: 'Delivery service'.tr, image: 'assets/images/moto.png'), + CarType( + carType: 'Free Ride'.tr, + carDetail: 'free ride without end point'.tr, + image: 'assets/images/freeRide.png'), ]; class CarDetailsTypeToChoose extends StatelessWidget { - const CarDetailsTypeToChoose({super.key}); - + CarDetailsTypeToChoose({super.key}); + final textToSpeechController = Get.put(TextToSpeechController()); @override Widget build(BuildContext context) { return GetBuilder( @@ -59,7 +64,7 @@ class CarDetailsTypeToChoose extends StatelessWidget { child: Column( children: [ SizedBox( - height: Get.height * .3, + height: Get.height * .4, child: ListView.builder( itemCount: carTypes.length, itemBuilder: (context, index) { @@ -117,9 +122,11 @@ class CarDetailsTypeToChoose extends StatelessWidget { ? mapPassengerController .totalPassenger .toStringAsFixed(2) - : mapPassengerController - .totalPassengerMotoDelivery - .toStringAsFixed(2), + : carType.carType == 'Delivery' + ? mapPassengerController + .totalPassengerMotoDelivery + .toStringAsFixed(2) + : '50', style: AppStyle.title .copyWith(fontSize: 20), ), @@ -177,40 +184,184 @@ class CarDetailsTypeToChoose extends StatelessWidget { onTap: () { mapPassengerController.selectCarFromList(index); + + if (mapPassengerController.selectedIndex != -1) { + // Get.snackbar('You should select one'.tr, '', + // backgroundColor: AppColor.greenColor); + if (mapPassengerController.selectedIndex == 0) { + box.write(BoxName.carType, 'Comfort'); + mapPassengerController.totalPassenger = + mapPassengerController + .totalPassengerComfort; + Get.defaultDialog( + title: 'Comfort', + titleStyle: AppStyle.title, + content: CarDialogue( + textToSpeechController: + textToSpeechController, + image: 'assets/images/blob.png', + text: + 'Best choice for comfort car and flexible route and stops point' + .tr), + confirm: MyElevatedButton( + kolor: AppColor.greenColor, + title: 'Next'.tr, + onPressed: () { + Get.back(); + mapPassengerController + .isBottomSheetShown = false; + mapPassengerController.update(); + mapPassengerController + .changeCashConfirmPageShown(); + }), + cancel: MyElevatedButton( + title: 'Cancel'.tr, + kolor: AppColor.redColor, + onPressed: () { + Get.back(); + })); + } else if (mapPassengerController + .selectedIndex == + 1) { + box.write(BoxName.carType, 'Speed'); + mapPassengerController.totalPassenger = + mapPassengerController.totalPassenger; + Get.defaultDialog( + title: 'Speed', + titleStyle: AppStyle.title, + content: CarDialogue( + textToSpeechController: + textToSpeechController, + image: 'assets/images/carspeed.png', + text: + 'This trip goes directly from your starting point to your destination for a fixed price. The driver must follow the planned route' + .tr), + confirm: MyElevatedButton( + kolor: AppColor.greenColor, + title: 'Next'.tr, + onPressed: () { + Get.back(); + mapPassengerController + .isBottomSheetShown = false; + mapPassengerController.update(); + mapPassengerController + .changeCashConfirmPageShown(); + }), + cancel: MyElevatedButton( + title: 'Cancel'.tr, + kolor: AppColor.redColor, + onPressed: () { + Get.back(); + })); + } else if (mapPassengerController + .selectedIndex == + 2) { + box.write(BoxName.carType, 'Delivery'); + mapPassengerController.totalPassenger = + mapPassengerController + .totalPassengerMotoDelivery; + Get.defaultDialog( + title: 'Delivery', + titleStyle: AppStyle.title, + content: CarDialogue( + textToSpeechController: + textToSpeechController, + image: 'assets/images/moto.png', + text: + 'This is for delivery or a motorcycle.' + .tr), + confirm: MyElevatedButton( + kolor: AppColor.greenColor, + title: 'Next'.tr, + onPressed: () { + Get.back(); + mapPassengerController + .isBottomSheetShown = false; + mapPassengerController.update(); + mapPassengerController + .changeCashConfirmPageShown(); + }), + cancel: MyElevatedButton( + title: 'Cancel'.tr, + kolor: AppColor.redColor, + onPressed: () { + Get.back(); + })); + } else if (mapPassengerController + .selectedIndex == + 3) { + box.write(BoxName.carType, 'FreeRide'); + mapPassengerController.totalPassenger = 50; + Get.defaultDialog( + title: 'FreeRide', + titleStyle: AppStyle.title, + content: CarDialogue( + textToSpeechController: + textToSpeechController, + image: 'assets/images/freeRide.png', + text: + 'Perfect for adventure seekers who want to experience something new and exciting' + .tr), + confirm: MyElevatedButton( + kolor: AppColor.greenColor, + title: 'Next'.tr, + onPressed: () { + Get.back(); + mapPassengerController + .isBottomSheetShown = false; + mapPassengerController.update(); + mapPassengerController + .changeCashConfirmPageShown(); + }), + cancel: MyElevatedButton( + title: 'Cancel'.tr, + kolor: AppColor.redColor, + onPressed: () { + Get.back(); + })); + } + } else { + Get.snackbar('You should select one'.tr, '', + backgroundColor: AppColor.redColor); + } }, ); }, ), ), - MyElevatedButton( - title: 'Next'.tr, - onPressed: () { - if (mapPassengerController.selectedIndex != -1) { - // Get.snackbar('You should select one'.tr, '', - // backgroundColor: AppColor.greenColor); - if (mapPassengerController.selectedIndex == 0) { - box.write(BoxName.carType, 'Comfort'); - mapPassengerController.totalPassenger = - mapPassengerController.totalPassengerComfort; - } else if (mapPassengerController.selectedIndex == - 1) { - box.write(BoxName.carType, 'Speed'); - } else if (mapPassengerController.selectedIndex == - 2) { - box.write(BoxName.carType, 'Delivery'); - mapPassengerController.totalPassenger = - mapPassengerController - .totalPassengerMotoDelivery; - } - mapPassengerController.isBottomSheetShown = false; - mapPassengerController.update(); - mapPassengerController.changeCashConfirmPageShown(); - // mapPassengerController.confirmRideForFirstDriver(); - } else { - Get.snackbar('You should select one'.tr, '', - backgroundColor: AppColor.redColor); - } - }) + // MyElevatedButton( + // title: 'Next'.tr, + // onPressed: () { + // if (mapPassengerController.selectedIndex != -1) { + // // Get.snackbar('You should select one'.tr, '', + // // backgroundColor: AppColor.greenColor); + // if (mapPassengerController.selectedIndex == 0) { + // box.write(BoxName.carType, 'Comfort'); + // mapPassengerController.totalPassenger = + // mapPassengerController.totalPassengerComfort; + // } else if (mapPassengerController.selectedIndex == + // 1) { + // box.write(BoxName.carType, 'Speed'); + // } else if (mapPassengerController.selectedIndex == + // 2) { + // box.write(BoxName.carType, 'Delivery'); + // mapPassengerController.totalPassenger = + // mapPassengerController + // .totalPassengerMotoDelivery; + // } else if (mapPassengerController.selectedIndex == + // 3) { + // box.write(BoxName.carType, 'FreeRide'); + // mapPassengerController.totalPassenger = 50; + // } + // mapPassengerController.isBottomSheetShown = false; + // mapPassengerController.update(); + // mapPassengerController.changeCashConfirmPageShown(); + // // mapPassengerController.confirmRideForFirstDriver(); + // } else { + // Get.snackbar('You should select one'.tr, '', + // backgroundColor: AppColor.redColor); + // } + // }) ], ), ), @@ -220,3 +371,44 @@ class CarDetailsTypeToChoose extends StatelessWidget { }); } } + +class CarDialogue extends StatelessWidget { + const CarDialogue({ + super.key, + required this.textToSpeechController, + required this.image, + required this.text, + }); + + final TextToSpeechController textToSpeechController; + final String image, text; + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + image, + width: 50, + ), + IconButton( + onPressed: () { + textToSpeechController.speakText( + text, + ); + }, + icon: const Icon(Icons.headphones)), + ], + ), + Text( + text.tr, + style: AppStyle.title, + textAlign: TextAlign.center, + ), + ], + ); + } +}