This commit is contained in:
Hamza-Ayed
2023-10-12 14:16:55 +03:00
parent bf9fce363d
commit c1e4c74356
14 changed files with 416 additions and 39 deletions

View File

@@ -9,9 +9,11 @@ import 'package:ride/constant/colors.dart';
import 'package:ride/controller/firebase/firbase_messge.dart';
import 'package:ride/controller/functions/location_controller.dart';
import 'package:ride/main.dart';
import 'package:ride/views/Rate/rate_passenger.dart';
import '../../../constant/credential.dart';
import '../../../constant/links.dart';
import '../../../views/home/Captin/home_captin.dart';
import '../../functions/crud.dart';
class MapDriverController extends GetxController {
@@ -28,6 +30,8 @@ class MapDriverController extends GetxController {
late String name;
late String phone;
late String rideId;
late String passengerId;
late String driverId;
late String tokenPassenger;
late String durationToPassenger;
late String walletChecked;
@@ -35,6 +39,7 @@ class MapDriverController extends GetxController {
bool isPassengerInfoWindow = false;
bool isBtnRideBegin = false;
bool isRideFinished = false;
bool isRideStarted = false;
double passengerInfoWindow = Get.height * .32;
double progress = 0;
double progressToPassenger = 0;
@@ -156,10 +161,11 @@ class MapDriverController extends GetxController {
tokenPassenger);
}
void beginRideFromDriver() async {
void startRideFromDriver() async {
changeRideToBeginToPassenger();
isPassengerInfoWindow = false;
isRideFinished = true;
isRideStarted = true;
isRideFinished = false;
update();
await CRUD().post(link: AppLink.updateRides, payload: {
'id': rideId,
@@ -171,14 +177,23 @@ class MapDriverController extends GetxController {
}
void finishRideFromDriver() async {
isRideFinished = true;
isRideStarted = false;
// changeRideToBeginToPassenger();
await CRUD().post(link: AppLink.updateRides, payload: {
'id': rideId,
'rideTimeStart': DateTime.now().toString(),
'rideTimeFinish': DateTime.now().toString(),
'status': 'Finished'
});
FirebaseMessagesController().sendNotificationToAnyWithoutData(
'isRideFinished', box.read(BoxName.name).toString(), tokenPassenger);
Get.back();
Future.delayed(const Duration(milliseconds: 300));
Get.to(() => RatePassenger(), arguments: {
'rideId': rideId,
'passengerId': passengerId,
'driverId': driverId
});
// FirebaseMessagesController().sendNotificationToAnyWithoutData(
// 'isRideFinished', box.read(BoxName.name).toString(), tokenPassenger);
}
void updateMarker() {
@@ -277,6 +292,8 @@ class MapDriverController extends GetxController {
// Get the passenger location from the arguments.
passengerLocation = Get.arguments['passengerLocation'];
duration = Get.arguments['Duration'];
passengerId = Get.arguments['passengerId'];
driverId = Get.arguments['driverId'];
distance = Get.arguments['Distance'];
name = Get.arguments['name'];
phone = Get.arguments['phone'];

View File

@@ -9,11 +9,11 @@ import 'package:location/location.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/credential.dart';
import 'package:ride/constant/links.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/controller/firebase/firbase_messge.dart';
import 'package:ride/controller/functions/crud.dart';
import 'package:ride/controller/functions/secure_storage.dart';
import 'package:ride/controller/payment/payment_controller.dart';
import 'package:ride/views/Rate/rate_captain.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import '../../main.dart';
import '../../models/model/locations.dart';
@@ -175,22 +175,23 @@ class MapPassengerController extends GetxController {
update();
print('rideTimerBegin: $rideTimerBegin');
print('isRideFinished: $isRideFinished');
Get.defaultDialog(
title: 'Ride Is Finished.'.tr,
titleStyle: AppStyle.title,
content: Text(
'Rate the Captain Please?'.tr,
style: AppStyle.title,
),
confirm: MyElevatedButton(
title: 'Ok'.tr,
onPressed: () {
Get.back(); //todo make Rate page
},
),
barrierDismissible: false,
);
Get.to(() => RateCaptain());
// Get.defaultDialog(
// title: 'Ride Is Finished.'.tr,
// titleStyle: AppStyle.title,
// content: Text(
// 'Rate the Captain Please?'.tr,
// style: AppStyle.title,
// ),
// confirm: MyElevatedButton(
// title: 'Ok'.tr,
// onPressed: () {
//
// Get.back(); //todo make Rate page
// },
// ),
// barrierDismissible: false,
// );
}
void getBeginRideFromDriver() async {
@@ -260,8 +261,9 @@ class MapPassengerController extends GetxController {
"endtime": durationToAdd.toString(),
"price": totalPassenger.toString(),
"passenger_id": box.read(BoxName.pasengerID).toString(),
"driver_id":
dataCarsLocationByPassenger['message'][carsOrder]['id'].toString(),
"driver_id": dataCarsLocationByPassenger['message'][carsOrder]
['driver_id']
.toString(),
"status": "waiting",
"price_for_driver": totalDriver.toString(),
"price_for_passenger": totalME.toString(),
@@ -289,6 +291,8 @@ class MapPassengerController extends GetxController {
duration1.toString(),
rideId,
rideTimerBegin.toString(),
dataCarsLocationByPassenger['message'][carsOrder]['driver_id']
.toString()
];
FirebaseMessagesController().sendNotificationToDriverMAP(
'Order',