This commit is contained in:
Hamza-Ayed
2024-02-14 22:31:28 +03:00
parent bbd4ce792e
commit ea7a5bb931
28 changed files with 941 additions and 605 deletions

View File

@@ -8,6 +8,7 @@ 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:ride/constant/style.dart';
import 'package:ride/controller/home/captin/home_captain_controller.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import '../../../constant/api_key.dart';
@@ -45,6 +46,7 @@ class MapDriverController extends GetxController {
late String step3;
late String step4;
late String duration;
late String totalCost;
late String distance;
late String name;
late String phone;
@@ -242,6 +244,46 @@ class MapDriverController extends GetxController {
tokenPassenger);
}
bool isSocialPressed = false;
driverCallPassenger() async {
String scam = await getDriverScam();
if (scam != 'failure') {
if (int.parse(scam) > 3) {
box.write(BoxName.statusDriverLocation, 'on');
Get.find<LocationController>().stopLocationUpdates();
await CRUD().post(link: AppLink.addNotificationCaptain, payload: {
'driverID': box.read(BoxName.driverID),
'title': 'scams operations'.tr,
'body':
'you have connect to passengers and let them cancel the order'.tr,
});
} else if (isSocialPressed == true) {
box.write(BoxName.statusDriverLocation, 'off');
await CRUD().post(link: AppLink.adddriverScam, payload: {
'driverID': box.read(BoxName.driverID),
'passengerID': passengerId,
'rideID': rideId,
'isDriverCalledPassenger': '$isSocialPressed'
});
}
}
}
Future<String> getDriverScam() async {
var res = await CRUD().post(link: AppLink.getdriverScam, payload: {
'driverID': box.read(BoxName.driverID),
});
if (res == 'failure') {
print('Scam is failure');
box.write(BoxName.statusDriverLocation, 'off');
return '0';
}
var d = jsonDecode(res);
print('Scam is ');
print(d['message'][0]['count']);
return d['message'][0]['count'];
}
void startRideFromDriver() async {
changeRideToBeginToPassenger();
isPassengerInfoWindow = false;
@@ -283,14 +325,20 @@ class MapDriverController extends GetxController {
// 'RideIsBegin', box.read(BoxName.name).toString(), tokenPassenger);
}
addWaittingTimeCostFromPassengerToDriverWallet() async {
calculateDistanseBetweenDriverAndPassengerLocation() {
double distance2 = Geolocator.distanceBetween(
latLngpassengerLocation.latitude,
latLngpassengerLocation.longitude,
Get.find<LocationController>().myLocation.latitude,
Get.find<LocationController>().myLocation.longitude,
);
if (distance2 > 80) {
return distance2;
}
addWaittingTimeCostFromPassengerToDriverWallet() async {
double distance2 = calculateDistanseBetweenDriverAndPassengerLocation();
if (distance2 > 40) {
Get.defaultDialog(
title: 'Your are far from passenger location'.tr,
middleText:
@@ -321,6 +369,7 @@ class MapDriverController extends GetxController {
'passenger_id': passengerId,
'balance': (cost * -1).toString()
});
box.write(BoxName.statusDriverLocation, 'off');
Get.offAll(HomeCaptain());
}
}
@@ -335,21 +384,30 @@ class MapDriverController extends GetxController {
'rideTimeFinish': DateTime.now().toString(),
'status': 'Finished'
});
Get.back();
if (walletChecked == 'true') {
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
'passenger_id': passengerId,
'ba lance': ((-1) * double.parse(totalCost)).toString()
});
}
// Get.back();
Future.delayed(const Duration(milliseconds: 300));
FirebaseMessagesController().sendNotificationToPassengerToken(
'Driver Finish Trip',
'you will pay to Driver'.tr + ' $totalCost \$'.tr,
tokenPassenger,
[
box.read(BoxName.driverID),
rideId,
box.read(BoxName.tokenDriver),
],
);
Get.to(() => RatePassenger(), arguments: {
'rideId': rideId,
'passengerId': passengerId,
'driverId': driverId
});
FirebaseMessagesController().sendNotificationToPassengerToken(
'Driver Finish Trip',
box.read(BoxName.name).toString(),
tokenPassenger, [
box.read(BoxName.driverID),
rideId,
box.read(BoxName.tokenDriver),
]);
}
void cancelCheckRidefromPassenger() async {
@@ -623,6 +681,7 @@ class MapDriverController extends GetxController {
passengerLocation = Get.arguments['passengerLocation'];
passengerDestination = Get.arguments['passengerDestination'];
duration = Get.arguments['Duration'];
totalCost = Get.arguments['totalCost'];
passengerId = Get.arguments['passengerId'];
driverId = Get.arguments['driverId'];
distance = Get.arguments['Distance'];