9/24/1-backLocation

This commit is contained in:
Hamza-Ayed
2024-09-24 13:32:36 +03:00
parent 3313cb0203
commit f5b7307f86
27 changed files with 880 additions and 343 deletions

View File

@@ -14,6 +14,7 @@ import '../../../constant/style.dart';
import '../../../controller/auth/apple_sigin.dart';
import '../../../controller/auth/captin/login_captin_controller.dart';
import '../../../controller/auth/google_sign.dart';
import '../../../controller/functions/location_permission.dart';
import '../../../controller/functions/overlay_permisssion.dart';
import '../../../main.dart';
import '../../widgets/elevated_btn.dart';
@@ -416,7 +417,9 @@ class LoginCaptin extends StatelessWidget {
await Permission.location.status;
if (!status.isGranted) {
// WidgetsBinding.instance.addPostFrameCallback((_) {
getPermissionLocation();
// getPermissionLocation();
// getPermissionLocation();
getLocationPermission();
// });
return;
}

View File

@@ -16,6 +16,7 @@ import '../../../../constant/colors.dart';
import '../../../../constant/info.dart';
import '../../../../constant/style.dart';
import '../../../../controller/functions/location_controller.dart';
import '../../../../controller/functions/location_permission.dart';
import '../../../../controller/functions/overlay_permisssion.dart';
import '../../../../controller/functions/package_info.dart';
import '../../../../controller/home/captin/home_captain_controller.dart';
@@ -41,6 +42,7 @@ class HomeCaptain extends StatelessWidget {
WidgetsBinding.instance.addPostFrameCallback((_) {
checkForUpdate(context);
getPermissionOverlay();
// getPermissionLocation1();
_showFirstTimeOfferNotification(context);
});
return Scaffold(

View File

@@ -13,6 +13,8 @@ import 'package:google_maps_flutter/google_maps_flutter.dart';
import '../../../../../constant/colors.dart';
import '../../../../../constant/links.dart';
import '../../../../../controller/firebase/firbase_messge.dart';
import '../../../../../controller/functions/location_permission.dart';
import '../../../../../controller/functions/overlay_permisssion.dart';
import '../../../../../print.dart';
import '../../../../Rate/ride_calculate_driver.dart';
import '../../../../../controller/functions/location_controller.dart';
@@ -140,6 +142,8 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
borderRadius: BorderRadius.circular(15)),
child: IconButton(
onPressed: () {
NotificationController()
.showNotification('Sefer Driver'.tr, ''.tr, '', '');
final now = DateTime.now();
DateTime? lastRequestTime =
box.read(BoxName.lastTimeStaticThrottle);
@@ -155,8 +159,13 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
// Optionally show a message or handle the throttling case
final minutesLeft =
2 - now.difference(lastRequestTime).inMinutes;
Get.snackbar(
// Get.snackbar(
// '${'Please wait'.tr} $minutesLeft ${"minutes before trying again.".tr}',
// '');
NotificationController1().showNotification(
'Sefer Driver'.tr,
'${'Please wait'.tr} $minutesLeft ${"minutes before trying again.".tr}',
'ding',
'');
}
},
@@ -266,17 +275,21 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
// child: Builder(builder: (context) {
// return IconButton(
// onPressed: () async {
// FirebaseMessagesController().sendNotificationToAnyWithoutData(
// 'Order'.tr,
// 'from: ',
// // jsonDecode(value)['message'].toString(),
// 'dEugS-JOT4Ka5riF4s5TEN:APA91bEDL_W7BuEQGbyL-RMaKiMWDlURXhFuaybe5WurTUV8K5eIooSGe22yY22_U2hEZcfPr46ig1v--l00dbOGiivazxvmTyhUyQQW6lJsuIN-wordGtBxtREyeYtEKvxIa1J4ApEu',
// 'order.wav'
// // polylineCoordinates.toString()
// );
// // FirebaseMessagesController().sendNotificationToAnyWithoutData(
// // 'Order'.tr,
// // 'from: ',
// // // jsonDecode(value)['message'].toString(),
// // 'dqK5wNrPTr20HQ8qa5KsgL:APA91bHwPW_XzCIxQtg_IkJmHg1JRd8NRMquvsgedBaHAIgErTs6Uzpw1IX0EIJqkTaZq5dxd1u2z7NVdLlvcmEzrpjjWt1pUsZaa5UU7Cpx6hUzJMUdXvhNlAYFGklM8bWUG4ZXSRf1',
// // 'order.wav');
// // NotificationController().showNotification(
// // 'Order'.tr,
// // 'We regret to inform you that another driver has accepted this order.'
// // .tr,
// // 'order',
// // '');
// // requestLocationPermission();
// // Get.to(SmsSignupEgypt());
// // print(AppLink.addDriverPaymentPoints);
// // print(box.read(BoxName.tokenDriver));
// },
// icon: const Icon(
// FontAwesome5.closed_captioning,

View File

@@ -5,7 +5,9 @@ import 'package:flutter_overlay_window/flutter_overlay_window.dart';
import 'package:get/get.dart';
import 'package:just_audio/just_audio.dart';
import '../../../../constant/box_name.dart';
import '../../../../constant/links.dart';
import '../../../../constant/style.dart';
import '../../../../controller/functions/crud.dart';
import '../../../../main.dart';
class OrderOverlay extends StatefulWidget {
@@ -111,6 +113,56 @@ class _OrderOverlayState extends State<OrderOverlay>
super.dispose();
}
void refuseOrder(
orderID,
) async {
await CRUD().postFromDialogue(link: AppLink.addDriverOrder, payload: {
//TODO need review
'driver_id': box.read(BoxName.driverID),
// box.read(BoxName.driverID).toString(),
'order_id': orderID,
'status': 'Refused'
});
await CRUD().post(link: AppLink.updateRides, payload: {
'id': orderID,
// 'rideTimeStart': DateTime.now().toString(),
'status': 'Refused',
'driver_id': box.read(BoxName.driverID),
});
}
addRideToNotificationDriverString(
orderID,
String startLocation,
String endLocation,
String date,
String time,
String price,
String passengerId,
String status,
String carType,
String passengerRate,
String priceForPassenger,
String distance,
String duration,
) async {
await CRUD().post(link: AppLink.addWaitingRide, payload: {
'id': orderID,
'start_location': startLocation,
'end_location': endLocation,
'date': date,
'time': time,
'price': price,
'passenger_id': passengerId,
'status': status,
'carType': carType,
'passengerRate': passengerRate,
'price_for_passenger': priceForPassenger,
'distance': distance,
'duration': duration,
});
}
@override
Widget build(BuildContext context) {
String duration = (double.parse(d[4].toString()) / 60).toStringAsFixed(0);
@@ -306,6 +358,23 @@ class _OrderOverlayState extends State<OrderOverlay>
void _rejectOrder() async {
box.write(BoxName.rideStatus, 'reject');
refuseOrder(
d[16].toString(),
);
addRideToNotificationDriverString(
d[16].toString(),
d[29].toString(),
d[30].toString(),
'${DateTime.now().year}-${DateTime.now().month}-${DateTime.now().day}',
'${DateTime.now().hour}:${DateTime.now().minute}',
d[2].toString(),
d[7].toString(),
'wait',
d[31].toString(),
d[33].toString(),
d[2].toString(),
d[5].toString(),
d[4].toString()); //
bool isOverlayActive = await FlutterOverlayWindow.isActive();
if (isOverlayActive) {
await FlutterOverlayWindow.closeOverlay();

View File

@@ -379,6 +379,27 @@ class OrderRequestPage extends StatelessWidget {
'order_id': myList[16].toString(),
'status': 'Apply'
});
CRUD().postFromDialogue(
link:
'${AppLink.seferAlexandriaServer}/driver_order/add.php',
payload: {
'driver_id': myList[6].toString(),
// box.read(BoxName.driverID).toString(),
'order_id': myList[16].toString(),
'status': 'Apply'
});
CRUD().postFromDialogue(
link:
'${AppLink.seferGizaServer}/driver_order/add.php',
payload: {
'driver_id': myList[6].toString(),
// box.read(BoxName.driverID).toString(),
'order_id': myList[16].toString(),
'status': 'Apply'
});
///
var res = await CRUD().post(
link: AppLink.updateRideAndCheckIfApplied,
payload: {
@@ -387,6 +408,24 @@ class OrderRequestPage extends StatelessWidget {
'status': 'Apply',
'driver_id': myList[6].toString(),
});
CRUD().post(
link:
'${AppLink.seferAlexandriaServer}/rides/updateRideAndCheckIfApplied.php',
payload: {
'id': myList[16],
'rideTimeStart': DateTime.now().toString(),
'status': 'Apply',
'driver_id': myList[6].toString(),
});
CRUD().post(
link:
'${AppLink.seferAlexandriaServer}/rides/updateRideAndCheckIfApplied.php',
payload: {
'id': myList[16],
'rideTimeStart': DateTime.now().toString(),
'status': 'Apply',
'driver_id': myList[6].toString(),
});
if (res == 'failure') {
MyDialog().getDialog(
"This ride is already applied by another driver."

View File

@@ -346,6 +346,24 @@ class OrderSpeedRequest extends StatelessWidget {
'status': 'Apply',
'driver_id': box.read(BoxName.driverID),
});
CRUD().post(
link:
"${AppLink.seferAlexandriaServer}/rides/updateStausFromSpeed.php",
payload: {
'id': myList[16],
'rideTimeStart': DateTime.now().toString(),
'status': 'Apply',
'driver_id': box.read(BoxName.driverID),
});
CRUD().post(
link:
"${AppLink.seferGizaServer}/rides/updateStausFromSpeed.php",
payload: {
'id': myList[16],
'rideTimeStart': DateTime.now().toString(),
'status': 'Apply',
'driver_id': box.read(BoxName.driverID),
});
// .then((value) {
// var json = jsonDecode(res);
if (res == "failure") {
@@ -379,6 +397,24 @@ class OrderSpeedRequest extends StatelessWidget {
'order_id': body.toString(),
'status': 'Apply'
});
CRUD().postFromDialogue(
link:
'${AppLink.seferAlexandriaServer}/driver_order/add.php',
payload: {
'driver_id': myList[6].toString(),
// box.read(BoxName.driverID).toString(),
'order_id': body.toString(),
'status': 'Apply'
});
CRUD().postFromDialogue(
link:
'${AppLink.seferGizaServer}/driver_order/add.php',
payload: {
'driver_id': myList[6].toString(),
// box.read(BoxName.driverID).toString(),
'order_id': body.toString(),
'status': 'Apply'
});
FirebaseMessagesController()
.sendNotificationToPassengerToken(
'Apply Ride',

View File

@@ -117,6 +117,28 @@ class AvailableRidesPage extends StatelessWidget {
'driver_id':
box.read(BoxName.driverID),
});
CRUD().post(
link:
'${AppLink.seferAlexandriaServer}rides/updateStausFromSpeed.php',
payload: {
'id': list['id'],
'rideTimeStart':
DateTime.now().toString(),
'status': 'Apply',
'driver_id':
box.read(BoxName.driverID),
});
CRUD().post(
link:
'${AppLink.seferGizaServer}rides/updateStausFromSpeed.php',
payload: {
'id': list['id'],
'rideTimeStart':
DateTime.now().toString(),
'status': 'Apply',
'driver_id':
box.read(BoxName.driverID),
});
// .then((value) {
// var json = jsonDecode(res);
if (res == "failure") {
@@ -126,20 +148,6 @@ class AvailableRidesPage extends StatelessWidget {
'', () {
Get.back();
});
// Get.defaultDialog(
// title:
// "This ride is already taken by another driver."
// .tr,
// middleText: '',
// titleStyle: AppStyle.title,
// middleTextStyle: AppStyle.title,
// confirm: MyElevatedButton(
// title: 'Ok'.tr,
// onPressed: () {
// Get.back();
// // Get.back();
// // Get.back();
// }));
} else if (jsonDecode(res)['status'] ==
"success") {
List<String> bodyToPassenger = [
@@ -160,6 +168,26 @@ class AvailableRidesPage extends StatelessWidget {
'order_id': list['id'],
'status': 'Apply'
});
CRUD().postFromDialogue(
link:
'${AppLink.seferAlexandriaServer}/driver_order/add.php',
payload: {
'driver_id':
box.read(BoxName.driverID),
// box.read(BoxName.driverID).toString(),
'order_id': list['id'],
'status': 'Apply'
});
CRUD().postFromDialogue(
link:
'${AppLink.seferGizaServer}/driver_order/add.php',
payload: {
'driver_id':
box.read(BoxName.driverID),
// box.read(BoxName.driverID).toString(),
'order_id': list['id'],
'status': 'Apply'
});
await CRUD().post(
link: AppLink.updateRides,
payload: {
@@ -168,6 +196,24 @@ class AvailableRidesPage extends StatelessWidget {
DateTime.now().toString(),
'status': 'Applied'
});
CRUD().post(
link:
'${AppLink.seferAlexandriaServer}/rides/update.php',
payload: {
'id': list['id'],
'DriverIsGoingToPassenger':
DateTime.now().toString(),
'status': 'Applied'
});
CRUD().post(
link:
'${AppLink.seferGizaServer}/rides/update.php',
payload: {
'id': list['id'],
'DriverIsGoingToPassenger':
DateTime.now().toString(),
'status': 'Applied'
});
await CRUD().post(
link: AppLink.updateWaitingRide,
payload: {