This commit is contained in:
Hamza-Ayed
2024-02-16 00:54:29 +03:00
parent 6c57b0edaf
commit 4d9e76697b
9 changed files with 165 additions and 58 deletions

View File

@@ -133,8 +133,7 @@ class FirebaseMessagesController extends GetxController {
NotificationController().showNotification('Order', '', 'order'); NotificationController().showNotification('Order', '', 'order');
} }
var myListString = message.data['DriverList']; var myListString = message.data['DriverList'];
// print(myListString);
// print('9999999999999myListString999999999999999');
var myList = jsonDecode(myListString) as List<dynamic>; var myList = jsonDecode(myListString) as List<dynamic>;
driverToken = myList[14].toString(); driverToken = myList[14].toString();
update(); update();
@@ -146,10 +145,10 @@ class FirebaseMessagesController extends GetxController {
}); });
} else if (message.notification!.title! == 'Apply Ride') { } else if (message.notification!.title! == 'Apply Ride') {
var passengerList = message.data['passengerList']; var passengerList = message.data['passengerList'];
// print(passengerList);
// print('9999999999999my Apply Ride 999999999999999');
var myList = jsonDecode(passengerList) as List<dynamic>; var myList = jsonDecode(passengerList) as List<dynamic>;
driverID = myList[2].toString(); driverID = myList[2].toString();
NotificationController().showNotification( NotificationController().showNotification(
'Apply Order', 'Driver Applied the Ride for You'.tr, 'order'); 'Apply Order', 'Driver Applied the Ride for You'.tr, 'order');
// driverAppliedTripSnakBar(); // driverAppliedTripSnakBar();
@@ -162,11 +161,14 @@ class FirebaseMessagesController extends GetxController {
'Cancel Trip'.tr, 'Passenger Cancel Trip'.tr, 'order'); 'Cancel Trip'.tr, 'Passenger Cancel Trip'.tr, 'order');
cancelTripDialog(); cancelTripDialog();
} else if (message.notification!.title! == 'DriverIsGoingToPassenger') { } else if (message.notification!.title! == 'DriverIsGoingToPassenger') {
Get.find<MapPassengerController>().isDriverInPassengerWay = true;
Get.find<MapPassengerController>().update();
NotificationController().showNotification('Driver is Going To You'.tr, NotificationController().showNotification('Driver is Going To You'.tr,
'Please stay on the picked point.'.tr, 'order'); 'Please stay on the picked point.'.tr, 'order');
// Get.snackbar('Driver is Going To Passenger', '', // Get.snackbar('Driver is Going To Passenger', '',
// backgroundColor: AppColor.greenColor); // backgroundColor: AppColor.greenColor);
} else if (message.notification!.title! == 'RideIsBegin') { } else if (message.notification!.title! == 'RideIsBegin') {
Get.find<MapPassengerController>().getBeginRideFromDriver();
// Get.snackbar('RideIsBegin', '', backgroundColor: AppColor.greenColor); // Get.snackbar('RideIsBegin', '', backgroundColor: AppColor.greenColor);
NotificationController() NotificationController()
.showNotification('Trip is Begin'.tr, ''.tr, 'order'); .showNotification('Trip is Begin'.tr, ''.tr, 'order');
@@ -191,16 +193,11 @@ class FirebaseMessagesController extends GetxController {
'you will pay to Driver'.tr + 'you will pay to Driver'.tr +
' ${Get.find<MapPassengerController>().totalPassenger} \$'.tr, ' ${Get.find<MapPassengerController>().totalPassenger} \$'.tr,
'order'); 'order');
Get.find<MapPassengerController>().tripFinishedFromDriver();
if (Get.find<PaymentController>().isCashChecked == false && if (Get.find<PaymentController>().isCashChecked == false &&
Get.find<PaymentController>().isWalletChecked == true) { Get.find<PaymentController>().isWalletChecked == true) {
driverFinishTripDialoge(driverList); driverFinishTripDialoge(driverList);
} else if (double.parse(box.read(BoxName.passengerWalletTotal)) < 0) { } else {
CRUD().post(link: AppLink.addPassengersWallet, payload: {
'passenger_id': box.read(BoxName.passengerID).toString(),
'balance':
((-1) * double.parse(box.read(BoxName.passengerWalletTotal)))
.toString()
});
Get.to(() => RateDriverFromPassenger(), arguments: { Get.to(() => RateDriverFromPassenger(), arguments: {
'driverId': driverList[0].toString(), 'driverId': driverList[0].toString(),
'rideId': driverList[1].toString(), 'rideId': driverList[1].toString(),
@@ -268,6 +265,9 @@ class FirebaseMessagesController extends GetxController {
'Hi ,I will go now'.tr, 'Hi ,I will go now'.tr,
'I will go now'.tr, 'I will go now'.tr,
Get.find<MapPassengerController>().driverToken, []); Get.find<MapPassengerController>().driverToken, []);
Get.find<MapPassengerController>()
.startTimerDriverWaitPassenger5Minute();
Get.back(); Get.back();
})); }));
} }

View File

@@ -1,6 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:math';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
@@ -8,7 +7,6 @@ import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; 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:SEFER/constant/style.dart'; import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:SEFER/views/widgets/elevated_btn.dart';
import '../../../constant/api_key.dart'; import '../../../constant/api_key.dart';
@@ -45,6 +43,7 @@ class MapDriverController extends GetxController {
late String step2; late String step2;
late String step3; late String step3;
late String step4; late String step4;
late String passengerWalletBurc;
late String duration; late String duration;
late String totalCost; late String totalCost;
late String distance; late String distance;
@@ -213,6 +212,10 @@ class MapDriverController extends GetxController {
await Future.delayed(const Duration(seconds: 1)); await Future.delayed(const Duration(seconds: 1));
progressInPassengerLocationFromDriver = i / (timeWaitingPassenger * 60); progressInPassengerLocationFromDriver = i / (timeWaitingPassenger * 60);
remainingTimeInPassengerLocatioWait = (timeWaitingPassenger * 60) - i; remainingTimeInPassengerLocatioWait = (timeWaitingPassenger * 60) - i;
if (isRideBegin == true) {
remainingTimeInPassengerLocatioWait = 0;
update();
}
if (remainingTimeInPassengerLocatioWait == 0) { if (remainingTimeInPassengerLocatioWait == 0) {
isdriverWaitTimeEnd = true; isdriverWaitTimeEnd = true;
print(isdriverWaitTimeEnd); print(isdriverWaitTimeEnd);
@@ -289,6 +292,8 @@ class MapDriverController extends GetxController {
isPassengerInfoWindow = false; isPassengerInfoWindow = false;
isRideStarted = true; isRideStarted = true;
isRideFinished = false; isRideFinished = false;
remainingTimeInPassengerLocatioWait = 0;
timeWaitingPassenger = 0;
box.write(BoxName.statusDriverLocation, 'on'); box.write(BoxName.statusDriverLocation, 'on');
update(); update();
@@ -305,6 +310,8 @@ class MapDriverController extends GetxController {
'rideTimeStart': DateTime.now().toString(), 'rideTimeStart': DateTime.now().toString(),
'status': 'Begin' 'status': 'Begin'
}); });
FirebaseMessagesController().sendNotificationToAnyWithoutData(
'RideIsBegin', box.read(BoxName.name).toString(), tokenPassenger);
rideIsBeginPassengerTimer(); rideIsBeginPassengerTimer();
double pointsSubstraction = 0; double pointsSubstraction = 0;
pointsSubstraction = double.parse(paymentAmount) * -100; pointsSubstraction = double.parse(paymentAmount) * -100;
@@ -320,9 +327,6 @@ class MapDriverController extends GetxController {
print('...................'); print('...................');
print(d); print(d);
print('...................'); print('...................');
// FirebaseMessagesController().sendNotificationToAnyWithoutData(
// 'RideIsBegin', box.read(BoxName.name).toString(), tokenPassenger);
} }
calculateDistanseBetweenDriverAndPassengerLocation() { calculateDistanseBetweenDriverAndPassengerLocation() {
@@ -375,8 +379,16 @@ class MapDriverController extends GetxController {
} }
void finishRideFromDriver() async { void finishRideFromDriver() async {
double distanceToDestination = Geolocator.distanceBetween(
latLngPassengerDestination.latitude,
latLngPassengerDestination.longitude,
Get.find<LocationController>().myLocation.latitude,
Get.find<LocationController>().myLocation.longitude,
);
// if (distanceToDestination < 50) {
isRideFinished = true; isRideFinished = true;
isRideStarted = false; isRideStarted = false;
box.write(BoxName.statusDriverLocation, 'off'); box.write(BoxName.statusDriverLocation, 'off');
// changeRideToBeginToPassenger(); // changeRideToBeginToPassenger();
await CRUD().post(link: AppLink.updateRides, payload: { await CRUD().post(link: AppLink.updateRides, payload: {
@@ -384,14 +396,21 @@ class MapDriverController extends GetxController {
'rideTimeFinish': DateTime.now().toString(), 'rideTimeFinish': DateTime.now().toString(),
'status': 'Finished' 'status': 'Finished'
}); });
print('walletChecked is $walletChecked');
if (walletChecked == 'true') { if (walletChecked == 'true') {
await CRUD().post(link: AppLink.addPassengersWallet, payload: { await CRUD().post(link: AppLink.addPassengersWallet, payload: {
'passenger_id': passengerId, 'passenger_id': passengerId,
'ba lance': ((-1) * double.parse(totalCost)).toString() 'balance': ((-1) * double.parse(paymentAmount)).toString()
});
}
print('passengerWalletBurc bef ${double.parse(passengerWalletBurc)}');
if (double.parse(passengerWalletBurc) < 0) {
print('passengerWalletBurc aft ${double.parse(passengerWalletBurc)}');
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
'passenger_id': passengerId,
'balance': ((-1) * double.parse(passengerWalletBurc)).toString()
}); });
} }
// Get.back();
Future.delayed(const Duration(milliseconds: 300)); Future.delayed(const Duration(milliseconds: 300));
FirebaseMessagesController().sendNotificationToPassengerToken( FirebaseMessagesController().sendNotificationToPassengerToken(
'Driver Finish Trip', 'Driver Finish Trip',
@@ -408,6 +427,19 @@ class MapDriverController extends GetxController {
'passengerId': passengerId, 'passengerId': passengerId,
'driverId': driverId 'driverId': driverId
}); });
// } else {
// Get.defaultDialog(
// title: 'You don\'t arrive destenation yet .'.tr,
// middleText: '',
// confirm: MyElevatedButton(
// title: 'Ok'.tr,
// onPressed: () {
// Get.back();
// }));
// }
// add wallet from passenger from driver
// Get.back();
} }
void cancelCheckRidefromPassenger() async { void cancelCheckRidefromPassenger() async {
@@ -447,23 +479,22 @@ class MapDriverController extends GetxController {
// print('mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'); // print('mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm');
// print(durationOfRideValue); // print(durationOfRideValue);
int durationOfRide = int.parse(durationOfRideValue); int durationOfRide = int.parse(durationOfRideValue);
update();
for (int i = 0; i <= durationOfRide; i++) { for (int i = 0; i <= durationOfRide; i++) {
await Future.delayed(const Duration(seconds: 1)); await Future.delayed(const Duration(seconds: 1));
progressTimerRideBegin = i / durationOfRide; progressTimerRideBegin = i / durationOfRide;
remainingTimeTimerRideBegin = durationOfRide - i; remainingTimeTimerRideBegin = durationOfRide - i;
remainingTimeTimerRideBegin < 60 ? driverEndPage = 160 : 100; remainingTimeTimerRideBegin < 60 ? driverEndPage = 160 : 100;
if (remainingTimeTimerRideBegin < 120) {
// to make driver available on last 2 minute in his trip
box.write(BoxName.statusDriverLocation, 'off');
}
int minutes = (remainingTimeTimerRideBegin / 60).floor(); int minutes = (remainingTimeTimerRideBegin / 60).floor();
int seconds = remainingTimeTimerRideBegin % 60; int seconds = remainingTimeTimerRideBegin % 60;
stringRemainingTimeRideBegin = stringRemainingTimeRideBegin =
'$minutes:${seconds.toString().padLeft(2, '0')}'; '$minutes:${seconds.toString().padLeft(2, '0')}';
update(); update();
} }
if (remainingTimeTimerRideBegin < 120) {
// to make driver available on last 2 minute in his trip
box.write(BoxName.statusDriverLocation, 'off');
}
} }
void updateMarker() { void updateMarker() {
@@ -701,6 +732,7 @@ class MapDriverController extends GetxController {
step2 = Get.arguments['step2']; step2 = Get.arguments['step2'];
step3 = Get.arguments['step3']; step3 = Get.arguments['step3'];
step4 = Get.arguments['step4']; step4 = Get.arguments['step4'];
passengerWalletBurc = Get.arguments['passengerWalletBurc'];
var coords = passengerLocation.split(','); var coords = passengerLocation.split(',');
var coordDestination = passengerDestination.split(','); var coordDestination = passengerDestination.split(',');

View File

@@ -3,7 +3,6 @@ import 'package:get/get.dart';
import 'package:SEFER/constant/links.dart'; import 'package:SEFER/constant/links.dart';
import 'package:SEFER/constant/style.dart'; import 'package:SEFER/constant/style.dart';
import 'package:SEFER/main.dart'; import 'package:SEFER/main.dart';
import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:SEFER/views/widgets/elevated_btn.dart';
import '../../../constant/box_name.dart'; import '../../../constant/box_name.dart';

View File

@@ -94,6 +94,10 @@ class MapPassengerController extends GetxController {
double heightPointsPageForRider = 0; double heightPointsPageForRider = 0;
double mainBottomMenuMapHeight = Get.height * .2; double mainBottomMenuMapHeight = Get.height * .2;
double wayPointSheetHeight = 0; double wayPointSheetHeight = 0;
String stringRemainingTimeToPassenger = '';
String stringRemainingTimeDriverWaitPassenger5Minute = '';
bool isDriverInPassengerWay = false;
bool isDriverArrivePassenger = false;
bool startLocationFromMap = false; bool startLocationFromMap = false;
bool workLocationFromMap = false; bool workLocationFromMap = false;
bool homeLocationFromMap = false; bool homeLocationFromMap = false;
@@ -135,10 +139,12 @@ class MapPassengerController extends GetxController {
int selectedPassengerCount = 1; int selectedPassengerCount = 1;
double progress = 0; double progress = 0;
double progressTimerToPassengerFromDriverAfterApplied = 0; double progressTimerToPassengerFromDriverAfterApplied = 0;
double progressTimerDriverWaitPassenger5Minute = 0;
int durationTimer = 25; int durationTimer = 25;
int durationToRide = 0; int durationToRide = 0;
int remainingTime = 25; int remainingTime = 25;
int remainingTimeToPassengerFromDriverAfterApplied = 60; int remainingTimeToPassengerFromDriverAfterApplied = 60;
int remainingTimeDriverWaitPassenger5Minute = 60;
int timeToPassengerFromDriverAfterApplied = 0; int timeToPassengerFromDriverAfterApplied = 0;
Timer? timerToPassengerFromDriverAfterApplied; Timer? timerToPassengerFromDriverAfterApplied;
bool rideTimerBegin = false; bool rideTimerBegin = false;
@@ -448,8 +454,6 @@ class MapPassengerController extends GetxController {
update(); update();
} }
String stringRemainingTimeToPassenger = '';
void startTimerFromDriverToPassengerAfterApplied() async { void startTimerFromDriverToPassengerAfterApplied() async {
for (int i = 0; i <= timeToPassengerFromDriverAfterApplied; i++) { for (int i = 0; i <= timeToPassengerFromDriverAfterApplied; i++) {
await Future.delayed(const Duration(seconds: 1)); await Future.delayed(const Duration(seconds: 1));
@@ -470,14 +474,24 @@ class MapPassengerController extends GetxController {
stringRemainingTimeToPassenger = stringRemainingTimeToPassenger =
'$minutes:${seconds.toString().padLeft(2, '0')}'; '$minutes:${seconds.toString().padLeft(2, '0')}';
// var cameraUpdate = CameraUpdate.newLatLngZoom( update();
// driverLocationToPassenger, }
// 17, }
// );
// mapController!.animateCamera(cameraUpdate);
// print(driverCarsLocationToPassengerAfterApplied); void startTimerDriverWaitPassenger5Minute() async {
// print(driverCarsLocationToPassengerAfterApplied[0]); isDriverArrivePassenger = true;
isDriverInPassengerWay = false;
timeToPassengerFromDriverAfterApplied = 0;
update();
for (int i = 0; i <= 300; i++) {
await Future.delayed(const Duration(seconds: 1));
progressTimerDriverWaitPassenger5Minute = i / 300;
remainingTimeDriverWaitPassenger5Minute = 300 - i;
int minutes = (remainingTimeDriverWaitPassenger5Minute / 60).floor();
int seconds = remainingTimeDriverWaitPassenger5Minute % 60;
stringRemainingTimeDriverWaitPassenger5Minute =
'$minutes:${seconds.toString().padLeft(2, '0')}';
update(); update();
} }
@@ -535,6 +549,13 @@ class MapPassengerController extends GetxController {
// } // }
} }
void tripFinishedFromDriver() async {
isRideFinished = true;
rideTimerBegin = false;
remainingTimeTimerRideBegin = 0;
update();
}
void getBeginRideFromDriver() async { void getBeginRideFromDriver() async {
try { try {
var res = await CRUD() var res = await CRUD()
@@ -548,7 +569,10 @@ class MapPassengerController extends GetxController {
timeToPassengerFromDriverAfterApplied = 0; timeToPassengerFromDriverAfterApplied = 0;
remainingTime = 0; remainingTime = 0;
remainingTimeToPassengerFromDriverAfterApplied = 0; remainingTimeToPassengerFromDriverAfterApplied = 0;
remainingTimeDriverWaitPassenger5Minute = 0;
rideTimerBegin = true; rideTimerBegin = true;
isDriverInPassengerWay = false;
isDriverArrivePassenger = false;
update(); update();
// isCancelRidePageShown = true; // isCancelRidePageShown = true;
rideIsBeginPassengerTimer(); rideIsBeginPassengerTimer();
@@ -733,7 +757,11 @@ class MapPassengerController extends GetxController {
placesCoordinate[2], placesCoordinate[2],
placesCoordinate[3], placesCoordinate[3],
placesCoordinate[4], placesCoordinate[4],
costDistance.toStringAsFixed(2) costDistance.toStringAsFixed(2),
double.parse(box.read(BoxName.passengerWalletTotal)) < 0
? double.parse(box.read(BoxName.passengerWalletTotal))
.toStringAsFixed(2)
: '0',
]; ];
FirebaseMessagesController().sendNotificationToDriverMAP( FirebaseMessagesController().sendNotificationToDriverMAP(
'Order', 'Order',

View File

@@ -241,7 +241,8 @@ class PassengerInfoWindow extends StatelessWidget {
), ),
controller.remainingTimeInPassengerLocatioWait < controller.remainingTimeInPassengerLocatioWait <
300 && 300 &&
controller.remainingTimeInPassengerLocatioWait != controller
.remainingTimeInPassengerLocatioWait !=
0 0
? Stack( ? Stack(
children: [ children: [
@@ -272,8 +273,9 @@ class PassengerInfoWindow extends StatelessWidget {
) )
: controller.isdriverWaitTimeEnd : controller.isdriverWaitTimeEnd
? MyElevatedButton( ? MyElevatedButton(
title: title: 'You Can Cancel Trip And get Cost of Trip From'
'You Can Cancel Trip And get Cost of Trip From ${AppInformation.appName}' .tr +
' ${AppInformation.appName}'
.tr, .tr,
kolor: AppColor kolor: AppColor
.deepPurpleAccent, .deepPurpleAccent,

View File

@@ -223,7 +223,7 @@ class OrderRequestPage extends StatelessWidget {
'passengerLocation': myList[0].toString(), 'passengerLocation': myList[0].toString(),
'passengerDestination': myList[1].toString(), 'passengerDestination': myList[1].toString(),
'Duration': myList[4].toString(), 'Duration': myList[4].toString(),
'totalCost': myList[2].toString(), 'totalCost': myList[26].toString(),
'Distance': myList[5].toString(), 'Distance': myList[5].toString(),
'name': myList[8].toString(), 'name': myList[8].toString(),
'phone': myList[10].toString(), 'phone': myList[10].toString(),
@@ -236,7 +236,7 @@ class OrderRequestPage extends StatelessWidget {
'passengerId': myList[7].toString(), 'passengerId': myList[7].toString(),
'driverId': myList[18].toString(), 'driverId': myList[18].toString(),
'durationOfRideValue': myList[19].toString(), 'durationOfRideValue': myList[19].toString(),
'paymentAmount': myList[3].toString(), 'paymentAmount': myList[2].toString(),
'paymentMethod': 'paymentMethod':
myList[13].toString() == 'true' ? 'visa' : 'cash', myList[13].toString() == 'true' ? 'visa' : 'cash',
'isHaveSteps': myList[20].toString(), 'isHaveSteps': myList[20].toString(),
@@ -245,6 +245,7 @@ class OrderRequestPage extends StatelessWidget {
'step2': myList[23].toString(), 'step2': myList[23].toString(),
'step3': myList[24].toString(), 'step3': myList[24].toString(),
'step4': myList[25].toString(), 'step4': myList[25].toString(),
'passengerWalletBurc': myList[26].toString(),
}); });
}, },
), ),

View File

@@ -1,7 +1,6 @@
import 'package:flutter/cupertino.dart'; 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:SEFER/constant/box_name.dart'; import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/info.dart'; import 'package:SEFER/constant/info.dart';
import 'package:SEFER/controller/payment/payment_controller.dart'; import 'package:SEFER/controller/payment/payment_controller.dart';

View File

@@ -4,7 +4,6 @@ import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/controller/profile/profile_controller.dart'; import 'package:SEFER/controller/profile/profile_controller.dart';
import 'package:SEFER/main.dart'; import 'package:SEFER/main.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import '../../../constant/colors.dart'; import '../../../constant/colors.dart';
import '../../../constant/style.dart'; import '../../../constant/style.dart';
@@ -26,7 +25,7 @@ class RideBeginPassenger extends StatelessWidget {
bottom: 4, bottom: 4,
child: Container( child: Container(
decoration: AppStyle.boxDecoration, decoration: AppStyle.boxDecoration,
height: 200, height: controller.rideTimerBegin ? 200 : 0,
// width: 100, // width: 100,
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),

View File

@@ -1,15 +1,11 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/links.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:SEFER/views/widgets/elevated_btn.dart';
import '../../../constant/box_name.dart';
import '../../../constant/colors.dart'; import '../../../constant/colors.dart';
import '../../../constant/style.dart'; import '../../../constant/style.dart';
import '../../../controller/firebase/firbase_messge.dart';
import '../../../controller/functions/crud.dart';
import '../../../controller/home/map_passenger_controller.dart'; import '../../../controller/home/map_passenger_controller.dart';
import '../../../main.dart'; import 'ride_begin_passenger.dart';
class TimerToPassengerFromDriver extends StatelessWidget { class TimerToPassengerFromDriver extends StatelessWidget {
const TimerToPassengerFromDriver({ const TimerToPassengerFromDriver({
@@ -20,14 +16,20 @@ class TimerToPassengerFromDriver extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return GetBuilder<MapPassengerController>(builder: (controller) { return GetBuilder<MapPassengerController>(builder: (controller) {
if (controller.remainingTime == 0 && if (controller.remainingTime == 0 &&
controller.timeToPassengerFromDriverAfterApplied > 0) { (controller.isDriverInPassengerWay == true ||
controller.timeToPassengerFromDriverAfterApplied > 0)) {
// ) {
return Positioned( return Positioned(
left: 10, left: 10,
right: 10, right: 10,
bottom: 5, bottom: 5,
child: Container( child: Container(
decoration: AppStyle.boxDecoration, decoration: AppStyle.boxDecoration,
height: 200, height: controller.remainingTime == 0 &&
(controller.isDriverInPassengerWay == true ||
controller.timeToPassengerFromDriverAfterApplied > 0)
? 200
: 0,
// width: 100, // width: 100,
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
@@ -66,12 +68,6 @@ class TimerToPassengerFromDriver extends StatelessWidget {
? MyElevatedButton( ? MyElevatedButton(
title: 'You can cancel trip'.tr, title: 'You can cancel trip'.tr,
onPressed: () async { onPressed: () async {
// await CRUD()
// .post(link: AppLink.updateRides, payload: {
// 'id': controller.rideId,
// 'rideTimeStart': DateTime.now().toString(),
// 'status': 'Applied'
// });
await controller await controller
.calculateDistanceBetweenPassengerAndDriverBeforecancelRide(); .calculateDistanceBetweenPassengerAndDriverBeforecancelRide();
}) })
@@ -81,8 +77,59 @@ class TimerToPassengerFromDriver extends StatelessWidget {
), ),
), ),
); );
} else if (controller.remainingTime == 0 &&
controller.isDriverArrivePassenger == true) {
return Positioned(
left: 10,
right: 10,
bottom: 5,
child: Container(
decoration: AppStyle.boxDecoration,
height: controller.remainingTime == 0 &&
controller.isDriverArrivePassenger == true
? 150
: 0,
// width: 100,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Text(
'The driver waitting you in picked location .'.tr,
style: AppStyle.title,
textAlign: TextAlign.center,
),
Stack(
children: [
LinearProgressIndicator(
backgroundColor: AppColor.accentColor,
color:
controller.remainingTimeDriverWaitPassenger5Minute <
60
? AppColor.redColor
: AppColor.greenColor,
minHeight: 50,
borderRadius: BorderRadius.circular(15),
value: controller
.progressTimerDriverWaitPassenger5Minute
.toDouble(),
),
Center(
child: Text(
controller
.stringRemainingTimeDriverWaitPassenger5Minute,
style: AppStyle.title,
),
)
],
),
],
),
),
),
);
} else { } else {
return const SizedBox(); return const RideBeginPassenger();
} }
}); });
} }