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/links.dart';
import 'package:ride/controller/functions/crud.dart';
import 'package:ride/controller/home/captin/map_driver_controller.dart';
import 'package:ride/main.dart';
// LocationController.dart

View File

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

View File

@@ -308,7 +308,8 @@ class MapPassengerController extends GetxController {
rideId,
rideTimerBegin.toString(),
dataCarsLocationByPassenger['message'][carsOrder]['driver_id']
.toString()
.toString(),
durationToRide.toString()
];
FirebaseMessagesController().sendNotificationToDriverMAP(
'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/views/widgets/elevated_btn.dart';
import '../../../constant/links.dart';
import '../../../constant/style.dart';
import '../../../controller/functions/crud.dart';
import '../../../controller/functions/launch.dart';
class PassengerInfoWindow extends StatelessWidget {

View File

@@ -76,37 +76,71 @@ class PassengerLocationMapPage extends StatelessWidget {
right: 5,
child: Container(
decoration: AppStyle.boxDecoration,
height: 60,
height: 100,
width: 200,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
child: Column(
children: [
Column(
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
const Icon(Icons.social_distance),
Text(
mapDriverController.distance.toString() +
' ' +
'KM'.tr,
style: AppStyle.title,
Column(
children: [
const Icon(Icons.social_distance),
Text(
mapDriverController.distance.toString() +
' ' +
'KM'.tr,
style: AppStyle.title,
),
],
),
mapDriverController
.remainingTimeTimerRideBegin <
60
? MyElevatedButton(
title: 'End Ride'.tr,
onPressed: () {
mapDriverController
.finishRideFromDriver();
},
kolor: AppColor.redColor,
)
: const SizedBox(),
Column(
children: [
const Icon(Icons.timelapse),
Text(
mapDriverController.duration
.toString() +
' ' +
'Minute'.tr,
style: AppStyle.title),
],
),
],
),
MyElevatedButton(
title: 'End Ride'.tr,
onPressed: () {
mapDriverController.finishRideFromDriver();
},
kolor: AppColor.redColor,
),
Column(
Stack(
children: [
const Icon(Icons.timelapse),
Text(
mapDriverController.duration.toString() +
' ' +
'Minute'.tr,
style: AppStyle.title),
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,
),
)
],
),
],

View File

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