11/13/2
This commit is contained in:
@@ -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";
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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';
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user