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