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

@@ -1,6 +1,5 @@
import 'dart:async';
import 'dart:convert';
import 'dart:math';
import 'package:flutter/material.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_polyline_algorithm/google_polyline_algorithm.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 '../../../constant/api_key.dart';
@@ -45,6 +43,7 @@ class MapDriverController extends GetxController {
late String step2;
late String step3;
late String step4;
late String passengerWalletBurc;
late String duration;
late String totalCost;
late String distance;
@@ -213,6 +212,10 @@ class MapDriverController extends GetxController {
await Future.delayed(const Duration(seconds: 1));
progressInPassengerLocationFromDriver = i / (timeWaitingPassenger * 60);
remainingTimeInPassengerLocatioWait = (timeWaitingPassenger * 60) - i;
if (isRideBegin == true) {
remainingTimeInPassengerLocatioWait = 0;
update();
}
if (remainingTimeInPassengerLocatioWait == 0) {
isdriverWaitTimeEnd = true;
print(isdriverWaitTimeEnd);
@@ -289,6 +292,8 @@ class MapDriverController extends GetxController {
isPassengerInfoWindow = false;
isRideStarted = true;
isRideFinished = false;
remainingTimeInPassengerLocatioWait = 0;
timeWaitingPassenger = 0;
box.write(BoxName.statusDriverLocation, 'on');
update();
@@ -305,6 +310,8 @@ class MapDriverController extends GetxController {
'rideTimeStart': DateTime.now().toString(),
'status': 'Begin'
});
FirebaseMessagesController().sendNotificationToAnyWithoutData(
'RideIsBegin', box.read(BoxName.name).toString(), tokenPassenger);
rideIsBeginPassengerTimer();
double pointsSubstraction = 0;
pointsSubstraction = double.parse(paymentAmount) * -100;
@@ -320,9 +327,6 @@ class MapDriverController extends GetxController {
print('...................');
print(d);
print('...................');
// FirebaseMessagesController().sendNotificationToAnyWithoutData(
// 'RideIsBegin', box.read(BoxName.name).toString(), tokenPassenger);
}
calculateDistanseBetweenDriverAndPassengerLocation() {
@@ -375,8 +379,16 @@ class MapDriverController extends GetxController {
}
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;
isRideStarted = false;
box.write(BoxName.statusDriverLocation, 'off');
// changeRideToBeginToPassenger();
await CRUD().post(link: AppLink.updateRides, payload: {
@@ -384,14 +396,21 @@ class MapDriverController extends GetxController {
'rideTimeFinish': DateTime.now().toString(),
'status': 'Finished'
});
print('walletChecked is $walletChecked');
if (walletChecked == 'true') {
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
'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));
FirebaseMessagesController().sendNotificationToPassengerToken(
'Driver Finish Trip',
@@ -408,6 +427,19 @@ class MapDriverController extends GetxController {
'passengerId': passengerId,
'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 {
@@ -447,23 +479,22 @@ class MapDriverController extends GetxController {
// print('mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm');
// print(durationOfRideValue);
int durationOfRide = int.parse(durationOfRideValue);
update();
for (int i = 0; i <= durationOfRide; i++) {
await Future.delayed(const Duration(seconds: 1));
progressTimerRideBegin = i / durationOfRide;
remainingTimeTimerRideBegin = durationOfRide - i;
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 seconds = remainingTimeTimerRideBegin % 60;
stringRemainingTimeRideBegin =
'$minutes:${seconds.toString().padLeft(2, '0')}';
update();
}
if (remainingTimeTimerRideBegin < 120) {
// to make driver available on last 2 minute in his trip
box.write(BoxName.statusDriverLocation, 'off');
}
}
void updateMarker() {
@@ -701,6 +732,7 @@ class MapDriverController extends GetxController {
step2 = Get.arguments['step2'];
step3 = Get.arguments['step3'];
step4 = Get.arguments['step4'];
passengerWalletBurc = Get.arguments['passengerWalletBurc'];
var coords = passengerLocation.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/style.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 '../../../constant/box_name.dart';