This commit is contained in:
Hamza-Ayed
2023-11-13 23:55:51 +03:00
parent 8aab58d4aa
commit b384a491cd
5 changed files with 202 additions and 153 deletions

View File

@@ -53,6 +53,8 @@ class AppLink {
static const String addDriverOrder = "$ride/driver_order/add.php"; static const String addDriverOrder = "$ride/driver_order/add.php";
static const String getDriverOrder = "$ride/driver_order/get.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 updateDriverOrder = "$ride/driver_order/update.php";
static const String deleteDriverOrder = "$ride/driver_order/delete.php"; static const String deleteDriverOrder = "$ride/driver_order/delete.php";

View File

@@ -47,8 +47,8 @@ class MapDriverController extends GetxController {
double progress = 0; double progress = 0;
double progressToPassenger = 0; double progressToPassenger = 0;
bool isRideBegin = false; bool isRideBegin = false;
int progressTimerToShowPassengerInfoWindowFromDriver = 25; int progressTimerToShowPassengerInfoWindowFromDriver = 15;
int remainingTimeToShowPassengerInfoWindowFromDriver = 25; int remainingTimeToShowPassengerInfoWindowFromDriver = 15;
int remainingTimeToPassenger = 60; int remainingTimeToPassenger = 60;
bool isDriverNearPassengerStart = false; bool isDriverNearPassengerStart = false;
GoogleMapController? mapController; GoogleMapController? mapController;
@@ -218,6 +218,31 @@ class MapDriverController extends GetxController {
// 'isRideFinished', box.read(BoxName.name).toString(), tokenPassenger); // '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 { void rideIsBeginPassengerTimer() async {
// print('mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'); // print('mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm');
// print(durationOfRideValue); // print(durationOfRideValue);
@@ -353,6 +378,7 @@ class MapDriverController extends GetxController {
addCustomCarIcon(); addCustomCarIcon();
// updateMarker(); // updateMarker();
startTimerToShowPassengerInfoWindowFromDriver(); startTimerToShowPassengerInfoWindowFromDriver();
cancelCheckRidefromPassenger();
// checkIsDriverNearPassenger(); // checkIsDriverNearPassenger();
super.onInit(); super.onInit();
} }

View File

@@ -1,6 +1,5 @@
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/links.dart'; import 'package:ride/constant/links.dart';
import 'package:ride/constant/style.dart'; import 'package:ride/constant/style.dart';
import 'package:ride/main.dart'; import 'package:ride/main.dart';

View File

@@ -7,7 +7,6 @@ import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_polyline_algorithm/google_polyline_algorithm.dart'; import 'package:google_polyline_algorithm/google_polyline_algorithm.dart';
import 'package:location/location.dart'; import 'package:location/location.dart';
import 'package:ride/constant/box_name.dart'; import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/credential.dart'; import 'package:ride/constant/credential.dart';
import 'package:ride/constant/links.dart'; import 'package:ride/constant/links.dart';
import 'package:ride/controller/firebase/firbase_messge.dart'; import 'package:ride/controller/firebase/firbase_messge.dart';
@@ -74,9 +73,9 @@ class MapPassengerController extends GetxController {
int selectedPassengerCount = 1; int selectedPassengerCount = 1;
double progress = 0; double progress = 0;
double progressTimerToPassengerFromDriverAfterApplied = 0; double progressTimerToPassengerFromDriverAfterApplied = 0;
int durationTimer = 25; int durationTimer = 15;
late int durationToRide; late int durationToRide;
int remainingTime = 25; int remainingTime = 15;
int remainingTimeToPassengerFromDriverAfterApplied = 60; int remainingTimeToPassengerFromDriverAfterApplied = 60;
int timeToPassengerFromDriverAfterApplied = 0; int timeToPassengerFromDriverAfterApplied = 0;
Timer? timerToPassengerFromDriverAfterApplied; Timer? timerToPassengerFromDriverAfterApplied;
@@ -86,6 +85,8 @@ class MapPassengerController extends GetxController {
String stringRemainingTimeRideBegin = ''; String stringRemainingTimeRideBegin = '';
late String rideId; late String rideId;
bool noCarString = false; bool noCarString = false;
bool isCashSelectedBeforeConfirmRide = false;
bool isPassengerChosen = false;
late String driverToken; late String driverToken;
int carsOrder = 0; int carsOrder = 0;
@@ -94,6 +95,11 @@ class MapPassengerController extends GetxController {
update(); update();
} }
void onChangedPassengersChoose() {
isPassengerChosen = true;
update();
}
// final mainBottomMenuMap = GlobalKey<AnimatedContainer>(); // final mainBottomMenuMap = GlobalKey<AnimatedContainer>();
void changeBottomSheetShown() { void changeBottomSheetShown() {
isBottomSheetShown = !isBottomSheetShown; isBottomSheetShown = !isBottomSheetShown;
@@ -103,6 +109,7 @@ class MapPassengerController extends GetxController {
void changeCashConfirmPageShown() { void changeCashConfirmPageShown() {
isCashConfirmPageShown = !isCashConfirmPageShown; isCashConfirmPageShown = !isCashConfirmPageShown;
isCashSelectedBeforeConfirmRide = true;
cashConfirmPageShown = isCashConfirmPageShown == true ? 250 : 0; cashConfirmPageShown = isCashConfirmPageShown == true ? 250 : 0;
update(); update();
} }
@@ -530,6 +537,8 @@ class MapPassengerController extends GetxController {
changeCancelRidePageShow(); changeCancelRidePageShow();
rideConfirm = false; rideConfirm = false;
shouldFetch = false; shouldFetch = false;
isCashSelectedBeforeConfirmRide = false;
isPassengerChosen = false;
timeToPassengerFromDriverAfterApplied = 0; timeToPassengerFromDriverAfterApplied = 0;
update(); update();
} else { } else {
@@ -538,19 +547,16 @@ class MapPassengerController extends GetxController {
data = []; data = [];
rideConfirm = false; rideConfirm = false;
shouldFetch = false; shouldFetch = false;
isPassengerChosen = false;
isCashSelectedBeforeConfirmRide = false;
timeToPassengerFromDriverAfterApplied = 0; timeToPassengerFromDriverAfterApplied = 0;
changeCancelRidePageShow(); changeCancelRidePageShow();
remainingTime = 25; remainingTime = 25;
update(); update();
await CRUD().post(link: AppLink.addCancelRideFromPassenger, payload: { await CRUD().post(link: AppLink.updateDriverOrder, payload: {
"driverID": FirebaseMessagesController() "order_id": rideId.toString(), // Convert to String
.driverID "status": 'Cancel'
.toString(), // Convert to String
"passengerID":
box.read(BoxName.passengerID).toString(), // Convert to String
"rideID": rideId.toString(), // Convert to String
"note": cancelNote
}); });
update(); update();

View File

@@ -2,6 +2,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:ride/constant/info.dart';
import 'package:ride/controller/payment/payment_controller.dart'; import 'package:ride/controller/payment/payment_controller.dart';
import 'package:ride/views/widgets/elevated_btn.dart'; import 'package:ride/views/widgets/elevated_btn.dart';
@@ -218,7 +219,7 @@ GetBuilder<MapPassengerController> buttomSheetMapPage() {
.title, .title,
) )
: Text( : Text(
'Sefer Wallet', '${AppInformation.appName} Wallet',
style: AppStyle style: AppStyle
.title, .title,
), ),
@@ -329,14 +330,18 @@ GetBuilder<MapPassengerController> buttomSheetMapPage() {
], ],
), ),
), ),
Row( SizedBox(
width: Get.width * .95,
child: Row(
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.spaceBetween, MainAxisAlignment.spaceBetween,
children: [ children: [
TextButton( TextButton(
onPressed: () { onPressed: () {
Get.defaultDialog( Get.defaultDialog(
title: 'How Many Passengers?'.tr, barrierDismissible: false,
title:
'How Many Passengers?'.tr,
titleStyle: AppStyle.title, titleStyle: AppStyle.title,
content: Column( content: Column(
children: [ children: [
@@ -357,16 +362,21 @@ GetBuilder<MapPassengerController> buttomSheetMapPage() {
index + 1); index + 1);
}, },
children: [ children: [
Text('1 Passenger'.tr), Text(
Text('2 Passengers'.tr), '1 Passenger'.tr),
Text('3 Passengers'.tr), Text('2 Passengers'
Text('4 Passengers'.tr), .tr),
Text('3 Passengers'
.tr),
Text('4 Passengers'
.tr),
], ],
), ),
), ),
MyElevatedButton( MyElevatedButton(
title: 'Back', title: 'Back',
onPressed: () => Get.back(), onPressed: () =>
Get.back(),
) )
], ],
), ),
@@ -374,7 +384,8 @@ GetBuilder<MapPassengerController> buttomSheetMapPage() {
}, },
child: Row( child: Row(
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.spaceBetween, MainAxisAlignment
.spaceBetween,
children: [ children: [
Text('How Many Passengers?'.tr, Text('How Many Passengers?'.tr,
style: AppStyle.title), style: AppStyle.title),
@@ -386,7 +397,8 @@ GetBuilder<MapPassengerController> buttomSheetMapPage() {
border: Border.all()), border: Border.all()),
child: Padding( child: Padding(
padding: padding:
const EdgeInsets.all(3.0), const EdgeInsets.all(
3.0),
child: Text( child: Text(
controller controller
.selectedPassengerCount .selectedPassengerCount
@@ -397,79 +409,83 @@ GetBuilder<MapPassengerController> buttomSheetMapPage() {
], ],
), ),
), ),
MyElevatedButton( controller.isCashSelectedBeforeConfirmRide ==
title: 'Confirm Selection'.tr, false
? MyElevatedButton(
title: 'Next'.tr,
onPressed: () { onPressed: () {
controller.changeConfirmRide(); controller
.changeCashConfirmPageShown();
// Get.to(() => UsePaypal( },
// sandboxMode: true, )
// clientId: : controller.isPassengerChosen ==
// "AXE7bR3WzFEfAInUA2PBDOsW4zolx11Qr3jVOOjjJ7KGDLY3tnMIhZgyFT5Qkvj1NKWPaE8VZbG4UrZs", false
// secretKey: ? MyElevatedButton(
// "EJPW01FKqOm-SKKP16LQ_2cr3b124aZgmE0vi3JfbkWgLffv2xIjT4iCIfQv8RYn3W8h4DzxgZu_UxZC", title: 'Next'.tr,
// returnURL: onPressed: () {
// "https://samplesite.com/return", controller
// cancelURL: .onChangedPassengersChoose();
// "https://samplesite.com/cancel", Get.defaultDialog(
// transactions: const [ barrierDismissible:
// { false,
// "amount": { title:
// "total": '10.12', 'How Many Passengers?'
// "currency": "USD", .tr,
// "details": { titleStyle:
// "subtotal": '10.12', AppStyle.title,
// "shipping": '0', content: Column(
// "shipping_discount": 0 children: [
// } Text(
// }, 'Allowed up to 4 Passengers.'
// "description": .tr,
// "The payment transaction description.", style: AppStyle
// "payment_options": { .title,
// "allowed_payment_method": ),
// "INSTANT_FUNDING_SOURCE" SizedBox(
// }, height:
// "item_list": { 200, // Set the desired height here
// "items": [ child:
// { CupertinoPicker(
// "name": itemExtent:
// "A demo product", 32,
// "quantity": 1, onSelectedItemChanged:
// "price": '10.12', (index) {
// "currency": "USD" controller.onChangedPassengerCount(
// } index +
// ], 1);
// // shipping address is not required though },
// "shipping_address": { children: [
// "recipient_name": Text('1 Passenger'
// "Jane Foster", .tr),
// "line1": "Travis County", Text('2 Passengers'
// "line2": "", .tr),
// "city": "Austin", Text('3 Passengers'
// "country_code": "US", .tr),
// "postal_code": "73301", Text('4 Passengers'
// "phone": "+00000000", .tr),
// "state": "Texas" ],
// }, ),
// } ),
// } MyElevatedButton(
// ], title: 'Back',
// note: onPressed: () =>
// "Contact us for any questions on your order.", Get.back(),
// onSuccess: (Map params) async { )
// print("onSuccess: $params"); ],
// }, ),
// onError: (error) { );
// print("onError: $error"); },
// }, )
// onCancel: (params) { : MyElevatedButton(
// print('cancelled: $params'); title: 'Confirm Selection'
// }, .tr,
// ) onPressed: () {
// ); controller
.changeConfirmRide();
}, },
), ),
], ],
),
) )
], ],
), ),