This commit is contained in:
Hamza-Ayed
2023-10-17 01:38:00 +03:00
parent 06905be0e9
commit a321b993ec
6 changed files with 87 additions and 30 deletions

View File

@@ -6,7 +6,6 @@ import 'package:location/location.dart';
import 'package:ride/constant/box_name.dart'; import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/links.dart'; import 'package:ride/constant/links.dart';
import 'package:ride/controller/functions/crud.dart'; import 'package:ride/controller/functions/crud.dart';
import 'package:ride/controller/home/captin/map_driver_controller.dart';
import 'package:ride/main.dart'; import 'package:ride/main.dart';
// LocationController.dart // LocationController.dart

View File

@@ -35,6 +35,7 @@ class MapDriverController extends GetxController {
late String durationToPassenger; late String durationToPassenger;
late String walletChecked; late String walletChecked;
late String direction; late String direction;
late String durationOfRideValue;
late String status; late String status;
bool isPassengerInfoWindow = false; bool isPassengerInfoWindow = false;
bool isBtnRideBegin = false; bool isBtnRideBegin = false;
@@ -50,7 +51,9 @@ class MapDriverController extends GetxController {
bool isDriverNearPassengerStart = false; bool isDriverNearPassengerStart = false;
GoogleMapController? mapController; GoogleMapController? mapController;
late LatLng myLocation; late LatLng myLocation;
int remainingTimeTimerRideBegin = 60;
String stringRemainingTimeRideBegin = '';
double progressTimerRideBegin = 0;
late Timer timer; late Timer timer;
void onMapCreated(GoogleMapController controller) { void onMapCreated(GoogleMapController controller) {
@@ -59,7 +62,7 @@ class MapDriverController extends GetxController {
mapController = controller; mapController = controller;
controller.getVisibleRegion(); controller.getVisibleRegion();
controller.animateCamera( controller.animateCamera(
CameraUpdate.newLatLngZoom(myLocation, 10), CameraUpdate.newLatLngZoom(myLocation, 15),
); );
update(); update();
@@ -173,12 +176,14 @@ class MapDriverController extends GetxController {
isRideStarted = true; isRideStarted = true;
isRideFinished = false; isRideFinished = false;
box.write(BoxName.statusDriverLocation, 'on'); box.write(BoxName.statusDriverLocation, 'on');
update(); update();
await CRUD().post(link: AppLink.updateRides, payload: { await CRUD().post(link: AppLink.updateRides, payload: {
'id': rideId, 'id': rideId,
'rideTimeStart': DateTime.now().toString(), 'rideTimeStart': DateTime.now().toString(),
'status': 'Begin' 'status': 'Begin'
}); });
rideIsBeginPassengerTimer();
// FirebaseMessagesController().sendNotificationToAnyWithoutData( // FirebaseMessagesController().sendNotificationToAnyWithoutData(
// 'RideIsBegin', box.read(BoxName.name).toString(), tokenPassenger); // 'RideIsBegin', box.read(BoxName.name).toString(), tokenPassenger);
} }
@@ -204,6 +209,24 @@ class MapDriverController extends GetxController {
// 'isRideFinished', box.read(BoxName.name).toString(), tokenPassenger); // 'isRideFinished', box.read(BoxName.name).toString(), tokenPassenger);
} }
void rideIsBeginPassengerTimer() async {
// print('mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm');
// print(durationOfRideValue);
int durationOfRide = int.parse(durationOfRideValue);
for (int i = 0; i <= durationOfRide; i++) {
await Future.delayed(const Duration(seconds: 1));
progressTimerRideBegin = i / durationOfRide;
remainingTimeTimerRideBegin = durationOfRide - i;
int minutes = (remainingTimeTimerRideBegin / 60).floor();
int seconds = remainingTimeTimerRideBegin % 60;
stringRemainingTimeRideBegin =
'$minutes:${seconds.toString().padLeft(2, '0')}';
update();
}
}
void updateMarker() { void updateMarker() {
// Remove the existing marker with the ID `MyLocation`. // Remove the existing marker with the ID `MyLocation`.
markers.remove(MarkerId('MyLocation'.tr)); markers.remove(MarkerId('MyLocation'.tr));
@@ -310,6 +333,7 @@ class MapDriverController extends GetxController {
direction = Get.arguments['direction']; direction = Get.arguments['direction'];
durationToPassenger = Get.arguments['DurationToPassenger']; durationToPassenger = Get.arguments['DurationToPassenger'];
rideId = Get.arguments['rideId']; rideId = Get.arguments['rideId'];
durationOfRideValue = Get.arguments['durationOfRideValue'];
String lat = Get.find<LocationController>().myLocation.latitude.toString(); String lat = Get.find<LocationController>().myLocation.latitude.toString();
String lng = Get.find<LocationController>().myLocation.longitude.toString(); String lng = Get.find<LocationController>().myLocation.longitude.toString();
String origin = '$lat,$lng'; String origin = '$lat,$lng';

View File

@@ -308,7 +308,8 @@ class MapPassengerController extends GetxController {
rideId, rideId,
rideTimerBegin.toString(), rideTimerBegin.toString(),
dataCarsLocationByPassenger['message'][carsOrder]['driver_id'] dataCarsLocationByPassenger['message'][carsOrder]['driver_id']
.toString() .toString(),
durationToRide.toString()
]; ];
FirebaseMessagesController().sendNotificationToDriverMAP( FirebaseMessagesController().sendNotificationToDriverMAP(
'Order', 'Order',

View File

@@ -8,9 +8,7 @@ import 'package:ride/controller/home/captin/map_driver_controller.dart';
import 'package:ride/main.dart'; import 'package:ride/main.dart';
import 'package:ride/views/widgets/elevated_btn.dart'; import 'package:ride/views/widgets/elevated_btn.dart';
import '../../../constant/links.dart';
import '../../../constant/style.dart'; import '../../../constant/style.dart';
import '../../../controller/functions/crud.dart';
import '../../../controller/functions/launch.dart'; import '../../../controller/functions/launch.dart';
class PassengerInfoWindow extends StatelessWidget { class PassengerInfoWindow extends StatelessWidget {

View File

@@ -76,9 +76,11 @@ class PassengerLocationMapPage extends StatelessWidget {
right: 5, right: 5,
child: Container( child: Container(
decoration: AppStyle.boxDecoration, decoration: AppStyle.boxDecoration,
height: 60, height: 100,
width: 200, width: 200,
child: Row( child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [ children: [
Column( Column(
@@ -92,18 +94,24 @@ class PassengerLocationMapPage extends StatelessWidget {
), ),
], ],
), ),
MyElevatedButton( mapDriverController
.remainingTimeTimerRideBegin <
60
? MyElevatedButton(
title: 'End Ride'.tr, title: 'End Ride'.tr,
onPressed: () { onPressed: () {
mapDriverController.finishRideFromDriver(); mapDriverController
.finishRideFromDriver();
}, },
kolor: AppColor.redColor, kolor: AppColor.redColor,
), )
: const SizedBox(),
Column( Column(
children: [ children: [
const Icon(Icons.timelapse), const Icon(Icons.timelapse),
Text( Text(
mapDriverController.duration.toString() + mapDriverController.duration
.toString() +
' ' + ' ' +
'Minute'.tr, 'Minute'.tr,
style: AppStyle.title), style: AppStyle.title),
@@ -111,6 +119,32 @@ class PassengerLocationMapPage extends StatelessWidget {
), ),
], ],
), ),
Stack(
children: [
LinearProgressIndicator(
backgroundColor: AppColor.accentColor,
color: mapDriverController
.remainingTimeTimerRideBegin <
60
? AppColor.redColor
: AppColor.greenColor,
minHeight: 40,
borderRadius: BorderRadius.circular(15),
value: mapDriverController
.progressTimerRideBegin
.toDouble(),
),
Center(
child: Text(
mapDriverController
.stringRemainingTimeRideBegin,
style: AppStyle.title,
),
)
],
),
],
),
)) ))
: const SizedBox()) : const SizedBox())
], ],

View File

@@ -204,6 +204,7 @@ class OrderRequestPage extends StatelessWidget {
'rideId': myList[16].toString(), 'rideId': myList[16].toString(),
'passengerId': myList[7].toString(), 'passengerId': myList[7].toString(),
'driverId': myList[18].toString(), 'driverId': myList[18].toString(),
'durationOfRideValue': myList[19].toString(),
}); });
}, },
), ),