From b384a491cdca335db27922740b0ce0a49af7f6da Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Mon, 13 Nov 2023 23:55:51 +0300 Subject: [PATCH] 11/13/2 --- lib/constant/links.dart | 2 + .../home/captin/map_driver_controller.dart | 30 +- .../home/captin/order_request_controller.dart | 1 - .../home/map_passenger_controller.dart | 28 +- .../buttom_sheet_map_show.dart | 294 +++++++++--------- 5 files changed, 202 insertions(+), 153 deletions(-) diff --git a/lib/constant/links.dart b/lib/constant/links.dart index ca15baf..7c0fe13 100644 --- a/lib/constant/links.dart +++ b/lib/constant/links.dart @@ -53,6 +53,8 @@ class AppLink { static const String addDriverOrder = "$ride/driver_order/add.php"; static const String getDriverOrder = "$ride/driver_order/get.php"; + static const String getOrderCancelStatus = + "$ride/driver_order/getOrderCancelStatus.php"; static const String updateDriverOrder = "$ride/driver_order/update.php"; static const String deleteDriverOrder = "$ride/driver_order/delete.php"; diff --git a/lib/controller/home/captin/map_driver_controller.dart b/lib/controller/home/captin/map_driver_controller.dart index 5189e87..05f0ca2 100644 --- a/lib/controller/home/captin/map_driver_controller.dart +++ b/lib/controller/home/captin/map_driver_controller.dart @@ -47,8 +47,8 @@ class MapDriverController extends GetxController { double progress = 0; double progressToPassenger = 0; bool isRideBegin = false; - int progressTimerToShowPassengerInfoWindowFromDriver = 25; - int remainingTimeToShowPassengerInfoWindowFromDriver = 25; + int progressTimerToShowPassengerInfoWindowFromDriver = 15; + int remainingTimeToShowPassengerInfoWindowFromDriver = 15; int remainingTimeToPassenger = 60; bool isDriverNearPassengerStart = false; GoogleMapController? mapController; @@ -218,6 +218,31 @@ class MapDriverController extends GetxController { // 'isRideFinished', box.read(BoxName.name).toString(), tokenPassenger); } + void cancelCheckRidefromPassenger() async { + for (int i = 0; + i <= remainingTimeToShowPassengerInfoWindowFromDriver; + i++) { + await Future.delayed(const Duration(milliseconds: 500)); + await CRUD().post(link: AppLink.getOrderCancelStatus, payload: { + 'order_id': rideId, + }).then((value) { + if (value['status'] == 'Cancel') { + Get.snackbar('Order Cancelled'.tr, 'Order Cancelled by Passenger'.tr, + backgroundColor: AppColor.redColor); + remainingTimeTimerRideBegin = 0; + remainingTimeToShowPassengerInfoWindowFromDriver = 0; + remainingTimeToPassenger = 0; + isRideStarted = false; + isRideFinished = false; + isPassengerInfoWindow = false; + clearPolyline(); + update(); + } + }); + update(); + } + } + void rideIsBeginPassengerTimer() async { // print('mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'); // print(durationOfRideValue); @@ -353,6 +378,7 @@ class MapDriverController extends GetxController { addCustomCarIcon(); // updateMarker(); startTimerToShowPassengerInfoWindowFromDriver(); + cancelCheckRidefromPassenger(); // checkIsDriverNearPassenger(); super.onInit(); } diff --git a/lib/controller/home/captin/order_request_controller.dart b/lib/controller/home/captin/order_request_controller.dart index 7580aa7..c390765 100644 --- a/lib/controller/home/captin/order_request_controller.dart +++ b/lib/controller/home/captin/order_request_controller.dart @@ -1,6 +1,5 @@ import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; -import 'package:ride/constant/colors.dart'; import 'package:ride/constant/links.dart'; import 'package:ride/constant/style.dart'; import 'package:ride/main.dart'; diff --git a/lib/controller/home/map_passenger_controller.dart b/lib/controller/home/map_passenger_controller.dart index 38f7f34..8dea096 100644 --- a/lib/controller/home/map_passenger_controller.dart +++ b/lib/controller/home/map_passenger_controller.dart @@ -7,7 +7,6 @@ import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_polyline_algorithm/google_polyline_algorithm.dart'; import 'package:location/location.dart'; import 'package:ride/constant/box_name.dart'; -import 'package:ride/constant/colors.dart'; import 'package:ride/constant/credential.dart'; import 'package:ride/constant/links.dart'; import 'package:ride/controller/firebase/firbase_messge.dart'; @@ -74,9 +73,9 @@ class MapPassengerController extends GetxController { int selectedPassengerCount = 1; double progress = 0; double progressTimerToPassengerFromDriverAfterApplied = 0; - int durationTimer = 25; + int durationTimer = 15; late int durationToRide; - int remainingTime = 25; + int remainingTime = 15; int remainingTimeToPassengerFromDriverAfterApplied = 60; int timeToPassengerFromDriverAfterApplied = 0; Timer? timerToPassengerFromDriverAfterApplied; @@ -86,6 +85,8 @@ class MapPassengerController extends GetxController { String stringRemainingTimeRideBegin = ''; late String rideId; bool noCarString = false; + bool isCashSelectedBeforeConfirmRide = false; + bool isPassengerChosen = false; late String driverToken; int carsOrder = 0; @@ -94,6 +95,11 @@ class MapPassengerController extends GetxController { update(); } + void onChangedPassengersChoose() { + isPassengerChosen = true; + update(); + } + // final mainBottomMenuMap = GlobalKey(); void changeBottomSheetShown() { isBottomSheetShown = !isBottomSheetShown; @@ -103,6 +109,7 @@ class MapPassengerController extends GetxController { void changeCashConfirmPageShown() { isCashConfirmPageShown = !isCashConfirmPageShown; + isCashSelectedBeforeConfirmRide = true; cashConfirmPageShown = isCashConfirmPageShown == true ? 250 : 0; update(); } @@ -530,6 +537,8 @@ class MapPassengerController extends GetxController { changeCancelRidePageShow(); rideConfirm = false; shouldFetch = false; + isCashSelectedBeforeConfirmRide = false; + isPassengerChosen = false; timeToPassengerFromDriverAfterApplied = 0; update(); } else { @@ -538,19 +547,16 @@ class MapPassengerController extends GetxController { data = []; rideConfirm = false; shouldFetch = false; + isPassengerChosen = false; + isCashSelectedBeforeConfirmRide = false; timeToPassengerFromDriverAfterApplied = 0; changeCancelRidePageShow(); remainingTime = 25; update(); - await CRUD().post(link: AppLink.addCancelRideFromPassenger, payload: { - "driverID": FirebaseMessagesController() - .driverID - .toString(), // Convert to String - "passengerID": - box.read(BoxName.passengerID).toString(), // Convert to String - "rideID": rideId.toString(), // Convert to String - "note": cancelNote + await CRUD().post(link: AppLink.updateDriverOrder, payload: { + "order_id": rideId.toString(), // Convert to String + "status": 'Cancel' }); update(); diff --git a/lib/views/home/map_widget.dart/buttom_sheet_map_show.dart b/lib/views/home/map_widget.dart/buttom_sheet_map_show.dart index c9eb3fd..c58c996 100644 --- a/lib/views/home/map_widget.dart/buttom_sheet_map_show.dart +++ b/lib/views/home/map_widget.dart/buttom_sheet_map_show.dart @@ -2,6 +2,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; +import 'package:ride/constant/info.dart'; import 'package:ride/controller/payment/payment_controller.dart'; import 'package:ride/views/widgets/elevated_btn.dart'; @@ -218,7 +219,7 @@ GetBuilder buttomSheetMapPage() { .title, ) : Text( - 'Sefer Wallet', + '${AppInformation.appName} Wallet', style: AppStyle .title, ), @@ -329,147 +330,162 @@ GetBuilder buttomSheetMapPage() { ], ), ), - Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - TextButton( - onPressed: () { - Get.defaultDialog( - title: 'How Many Passengers?'.tr, - titleStyle: AppStyle.title, - content: Column( - children: [ - Text( - 'Allowed up to 4 Passengers.' - .tr, - style: AppStyle.title, - ), - SizedBox( - height: - 200, // Set the desired height here - child: CupertinoPicker( - itemExtent: 32, - onSelectedItemChanged: - (index) { - controller - .onChangedPassengerCount( - index + 1); - }, - children: [ - Text('1 Passenger'.tr), - Text('2 Passengers'.tr), - Text('3 Passengers'.tr), - Text('4 Passengers'.tr), - ], + SizedBox( + width: Get.width * .95, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + TextButton( + onPressed: () { + Get.defaultDialog( + barrierDismissible: false, + title: + 'How Many Passengers?'.tr, + titleStyle: AppStyle.title, + content: Column( + children: [ + Text( + 'Allowed up to 4 Passengers.' + .tr, + style: AppStyle.title, ), - ), - MyElevatedButton( - title: 'Back', - onPressed: () => Get.back(), - ) - ], - ), - ); - }, - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Text('How Many Passengers?'.tr, - style: AppStyle.title), - const SizedBox( - width: 10, - ), - Container( - decoration: BoxDecoration( - border: Border.all()), - child: Padding( - padding: - const EdgeInsets.all(3.0), - child: Text( - controller - .selectedPassengerCount - .toString(), - style: AppStyle.title), + SizedBox( + height: + 200, // Set the desired height here + child: CupertinoPicker( + itemExtent: 32, + onSelectedItemChanged: + (index) { + controller + .onChangedPassengerCount( + index + 1); + }, + children: [ + Text( + '1 Passenger'.tr), + Text('2 Passengers' + .tr), + Text('3 Passengers' + .tr), + Text('4 Passengers' + .tr), + ], + ), + ), + MyElevatedButton( + title: 'Back', + onPressed: () => + Get.back(), + ) + ], ), - ), - ], + ); + }, + child: Row( + mainAxisAlignment: + MainAxisAlignment + .spaceBetween, + children: [ + Text('How Many Passengers?'.tr, + style: AppStyle.title), + const SizedBox( + width: 10, + ), + Container( + decoration: BoxDecoration( + border: Border.all()), + child: Padding( + padding: + const EdgeInsets.all( + 3.0), + child: Text( + controller + .selectedPassengerCount + .toString(), + style: AppStyle.title), + ), + ), + ], + ), ), - ), - MyElevatedButton( - title: 'Confirm Selection'.tr, - onPressed: () { - controller.changeConfirmRide(); - - // Get.to(() => UsePaypal( - // sandboxMode: true, - // clientId: - // "AXE7bR3WzFEfAInUA2PBDOsW4zolx11Qr3jVOOjjJ7KGDLY3tnMIhZgyFT5Qkvj1NKWPaE8VZbG4UrZs", - // secretKey: - // "EJPW01FKqOm-SKKP16LQ_2cr3b124aZgmE0vi3JfbkWgLffv2xIjT4iCIfQv8RYn3W8h4DzxgZu_UxZC", - // returnURL: - // "https://samplesite.com/return", - // cancelURL: - // "https://samplesite.com/cancel", - // transactions: const [ - // { - // "amount": { - // "total": '10.12', - // "currency": "USD", - // "details": { - // "subtotal": '10.12', - // "shipping": '0', - // "shipping_discount": 0 - // } - // }, - // "description": - // "The payment transaction description.", - // "payment_options": { - // "allowed_payment_method": - // "INSTANT_FUNDING_SOURCE" - // }, - // "item_list": { - // "items": [ - // { - // "name": - // "A demo product", - // "quantity": 1, - // "price": '10.12', - // "currency": "USD" - // } - // ], - // // shipping address is not required though - // "shipping_address": { - // "recipient_name": - // "Jane Foster", - // "line1": "Travis County", - // "line2": "", - // "city": "Austin", - // "country_code": "US", - // "postal_code": "73301", - // "phone": "+00000000", - // "state": "Texas" - // }, - // } - // } - // ], - // note: - // "Contact us for any questions on your order.", - // onSuccess: (Map params) async { - // print("onSuccess: $params"); - // }, - // onError: (error) { - // print("onError: $error"); - // }, - // onCancel: (params) { - // print('cancelled: $params'); - // }, - // ) - // ); - }, - ), - ], + controller.isCashSelectedBeforeConfirmRide == + false + ? MyElevatedButton( + title: 'Next'.tr, + onPressed: () { + controller + .changeCashConfirmPageShown(); + }, + ) + : controller.isPassengerChosen == + false + ? MyElevatedButton( + title: 'Next'.tr, + onPressed: () { + controller + .onChangedPassengersChoose(); + Get.defaultDialog( + barrierDismissible: + false, + title: + 'How Many Passengers?' + .tr, + titleStyle: + AppStyle.title, + content: Column( + children: [ + Text( + 'Allowed up to 4 Passengers.' + .tr, + style: AppStyle + .title, + ), + SizedBox( + height: + 200, // Set the desired height here + child: + CupertinoPicker( + itemExtent: + 32, + onSelectedItemChanged: + (index) { + controller.onChangedPassengerCount( + index + + 1); + }, + children: [ + Text('1 Passenger' + .tr), + Text('2 Passengers' + .tr), + Text('3 Passengers' + .tr), + Text('4 Passengers' + .tr), + ], + ), + ), + MyElevatedButton( + title: 'Back', + onPressed: () => + Get.back(), + ) + ], + ), + ); + }, + ) + : MyElevatedButton( + title: 'Confirm Selection' + .tr, + onPressed: () { + controller + .changeConfirmRide(); + }, + ), + ], + ), ) ], ),