From f5b7307f86f86d16d3bf44ef0366a3cc8deada7c Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Tue, 24 Sep 2024 13:32:36 +0300 Subject: [PATCH] 9/24/1-backLocation --- .vscode/launch.json | 56 +++-- android/app/build.gradle | 4 +- .../src/main/res/drawable/launcher_icon.png | Bin 2854 -> 165978 bytes ios/Runner/Info.plist | 4 +- lib/constant/box_name.dart | 1 + lib/constant/links.dart | 3 +- .../auth/captin/login_captin_controller.dart | 28 +++ .../captin/register_captin_controller.dart | 134 +++++++--- lib/controller/firebase/firbase_messge.dart | 237 ++++++++++++------ .../firebase/local_notification.dart | 113 +++++---- lib/controller/functions/gemeni.dart | 110 ++++---- .../location_background_controller.dart | 45 ++-- .../functions/location_controller.dart | 12 +- .../functions/location_permission.dart | 64 ++++- .../functions/overlay_permisssion.dart | 69 +++-- .../home/captin/home_captain_controller.dart | 12 + .../home/captin/order_request_controller.dart | 50 ++++ lib/controller/local/translations.dart | 1 + lib/controller/rate/rate_conroller.dart | 19 +- lib/main.dart | 1 + lib/views/auth/captin/login_captin.dart | 5 +- .../home/Captin/home_captain/home_captin.dart | 2 + .../widget/left_menu_map_captain.dart | 35 ++- .../Captin/orderCaptin/order_over_lay.dart | 69 +++++ .../orderCaptin/order_request_page.dart | 39 +++ .../orderCaptin/order_speed_request.dart | 36 +++ .../notification/available_rides_page.dart | 74 ++++-- 27 files changed, 880 insertions(+), 343 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 7157bcd..5f2d9f7 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,25 +1,33 @@ { - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Ride", - "request": "launch", - "type": "dart" - }, - { - "name": "Ride (profile mode)", - "request": "launch", - "type": "dart", - "flutterMode": "profile" - }, - { - "name": "Ride (release mode)", - "request": "launch", - "type": "dart", - "flutterMode": "release" - } - ] -} \ No newline at end of file + "version": "0.2.0", + "configurations": [ + { + "name": "Ride", + "request": "launch", + "type": "dart", + "logCatArguments": ["-s", "flutter", "-v", "error"] + }, + { + "name": "Ride (profile mode)", + "request": "launch", + "type": "dart", + "flutterMode": "profile", + "logCatArguments": ["-s", "flutter", "-v", "error"] + }, + { + "name": "Ride (release mode)", + "request": "launch", + "type": "dart", + "flutterMode": "release", + "logCatArguments": ["-s", "flutter", "-v", "error"] + }, + { + "name": "driver_sefer (Flutter)", + "program": "lib/main.dart", + "request": "launch", + "type": "dart", + // "args": ["--verbose", "--no-sound-null-safety"], + "logCatArguments": ["-s", "flutter", "-v", "error"] + } + ] +} diff --git a/android/app/build.gradle b/android/app/build.gradle index 8f7ee31..8f9f263 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -54,8 +54,8 @@ android { // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. minSdk = 23 targetSdk = flutter.targetSdkVersion - versionCode = 90 - versionName = '1.5.90`' + versionCode = 94 + versionName = '1.5.94' multiDexEnabled =true } diff --git a/android/app/src/main/res/drawable/launcher_icon.png b/android/app/src/main/res/drawable/launcher_icon.png index ce698d8db5e20f4dcc235b84b90f405613630392..cb1d9cd8e8673c2602efc7918e6da02a99054ea9 100644 GIT binary patch literal 165978 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

=N`2&*p%LygHa>|g`Q;&I0UgrWDhq_9 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�?=CZur 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

MX>bK^vQYl*YOsc`0HWdWpZb?5GkQ|r;|!8 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 PBblnJXy1b?+dTgt6x^t; literal 2854 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 KT(e&NRn))oo`>ZC diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 0108f81..b49c983 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -33,7 +33,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 58 + 61 CFBundleSignature ???? CFBundleURLTypes @@ -48,7 +48,7 @@ CFBundleVersion - 4.0.58 + 4.0.61 FirebaseAppDelegateProxyEnabled NO GMSApiKey diff --git a/lib/constant/box_name.dart b/lib/constant/box_name.dart index 9dbb404..6817d85 100644 --- a/lib/constant/box_name.dart +++ b/lib/constant/box_name.dart @@ -42,6 +42,7 @@ class BoxName { static const String passengerID = "pasengerID"; static const String phone = "phone"; static const String phoneDriver = "phoneDriver"; + static const String lastOtpTime = "lastOtpTime"; static const String bankCodeDriver = "bankCodeDriver"; static const String accountBankNumberDriver = "accountBankNumberDriver"; static const String dobDriver = "dobDriver"; diff --git a/lib/constant/links.dart b/lib/constant/links.dart index 4068bd7..8be5015 100644 --- a/lib/constant/links.dart +++ b/lib/constant/links.dart @@ -128,7 +128,8 @@ class AppLink { static String addWaitingRide = "$ride/notificationCaptain/addWaitingRide.php"; static String updateWaitingRide = "$ride/notificationCaptain/updateWaitingTrip.php"; - static String getRideWaiting = "$ride/notificationCaptain/getRideWaiting.php"; + static String getRideWaiting = + "$endPoint/ride/notificationCaptain/getRideWaiting.php"; static String getNotificationCaptain = "$ride/notificationCaptain/get.php"; static String updateNotificationCaptain = "$ride/notificationCaptain/update.php"; diff --git a/lib/controller/auth/captin/login_captin_controller.dart b/lib/controller/auth/captin/login_captin_controller.dart index 4cd34d9..d9f3d8e 100644 --- a/lib/controller/auth/captin/login_captin_controller.dart +++ b/lib/controller/auth/captin/login_captin_controller.dart @@ -112,6 +112,22 @@ class LoginDriverController extends GetxController { 'token': box.read(BoxName.tokenDriver), 'captain_id': box.read(BoxName.driverID).toString() }); + CRUD().post( + link: + "${AppLink.seferAlexandriaServer}/ride/firebase/addDriver.php", + payload: { + 'token': box.read(BoxName.tokenDriver), + 'captain_id': + box.read(BoxName.driverID).toString() + }); + CRUD().post( + link: + "${AppLink.seferGizaServer}/ride/firebase/addDriver.php", + payload: { + 'token': box.read(BoxName.tokenDriver), + 'captain_id': + box.read(BoxName.driverID).toString() + }); Get.back(); })); } @@ -139,5 +155,17 @@ class LoginDriverController extends GetxController { 'token': box.read(BoxName.tokenDriver).toString(), 'captain_id': box.read(BoxName.driverID).toString() }); + CRUD().post( + link: "${AppLink.seferAlexandriaServer}/ride/firebase/addDriver.php", + payload: { + 'token': box.read(BoxName.tokenDriver), + 'captain_id': box.read(BoxName.driverID).toString() + }); + CRUD().post( + link: "${AppLink.seferGizaServer}/ride/firebase/addDriver.php", + payload: { + 'token': box.read(BoxName.tokenDriver), + 'captain_id': box.read(BoxName.driverID).toString() + }); } } diff --git a/lib/controller/auth/captin/register_captin_controller.dart b/lib/controller/auth/captin/register_captin_controller.dart index 95ea1eb..bd41b19 100644 --- a/lib/controller/auth/captin/register_captin_controller.dart +++ b/lib/controller/auth/captin/register_captin_controller.dart @@ -94,13 +94,96 @@ class RegisterCaptainController extends GetxController { return validPrefixes.hasMatch(phoneNumber); } + // sendOtpMessage() async { + // SmsEgyptController smsEgyptController = Get.put(SmsEgyptController()); + // isLoading = true; + // update(); + // int randomNumber = Random().nextInt(100000) + 1; + // isLoading = true; + // update(); + // if (formKey3.currentState!.validate()) { + // if (box.read(BoxName.countryCode) == 'Egypt') { + // if (isValidEgyptianPhoneNumber(phoneController.text)) { + // var responseCheker = await CRUD() + // .post(link: AppLink.checkPhoneNumberISVerfiedDriver, payload: { + // 'phone_number': '+2${phoneController.text}', + // }); + // if (responseCheker != 'failure') { + // var d = jsonDecode(responseCheker); + // if (d['message'][0]['is_verified'].toString() == '1') { + // Get.snackbar('Phone number is verified before'.tr, '', + // backgroundColor: AppColor.greenColor); + // box.write(BoxName.phoneVerified, '1'); + // box.write(BoxName.phone, '+2${phoneController.text}'); + // await Get.put(LoginDriverController()).loginUsingCredentials( + // box.read(BoxName.driverID).toString(), + // box.read(BoxName.emailDriver).toString(), + // ); + // } else { + // await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: { + // 'phone_number': '+2${phoneController.text}', + // 'token_code': randomNumber.toString(), + // "driverId": box.read(BoxName.driverID), + // "email": box.read(BoxName.emailDriver), + // }); + + // await smsEgyptController.sendSmsEgypt( + // phoneController.text.toString(), randomNumber.toString()); + + // isSent = true; + + // isLoading = false; + // update(); + // } + // } else { + // await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: { + // 'phone_number': '+2${phoneController.text}', + // 'token_code': randomNumber.toString(), + // "driverId": box.read(BoxName.driverID), + // "email": box.read(BoxName.emailDriver), + // }); + + // await smsEgyptController.sendSmsEgypt( + // phoneController.text.toString(), randomNumber.toString()); + + // isSent = true; + + // isLoading = false; + // update(); + // } + // } else { + // Get.snackbar('Phone Number wrong'.tr, '', + // backgroundColor: AppColor.redColor); + // } + // } + // } + // isLoading = false; + // update(); + // } sendOtpMessage() async { SmsEgyptController smsEgyptController = Get.put(SmsEgyptController()); isLoading = true; update(); + int randomNumber = Random().nextInt(100000) + 1; isLoading = true; update(); + + // Get the current time and the last OTP time (if it exists) + DateTime currentTime = DateTime.now(); + DateTime? lastOtpTime = box.read(BoxName.lastOtpTime); + + // Check if the last OTP was sent within 5 minutes (300 seconds) + if (lastOtpTime != null && + currentTime.difference(lastOtpTime).inSeconds < 300) { + Get.snackbar( + 'Please wait'.tr, 'You can send another OTP after 5 minutes.'.tr, + backgroundColor: AppColor.redColor); + isLoading = false; + update(); + return; + } + if (formKey3.currentState!.validate()) { if (box.read(BoxName.countryCode) == 'Egypt') { if (isValidEgyptianPhoneNumber(phoneController.text)) { @@ -108,6 +191,7 @@ class RegisterCaptainController extends GetxController { .post(link: AppLink.checkPhoneNumberISVerfiedDriver, payload: { 'phone_number': '+2${phoneController.text}', }); + if (responseCheker != 'failure') { var d = jsonDecode(responseCheker); if (d['message'][0]['is_verified'].toString() == '1') { @@ -120,36 +204,10 @@ class RegisterCaptainController extends GetxController { box.read(BoxName.emailDriver).toString(), ); } else { - await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: { - 'phone_number': '+2${phoneController.text}', - 'token_code': randomNumber.toString(), - "driverId": box.read(BoxName.driverID), - "email": box.read(BoxName.emailDriver), - }); - - await smsEgyptController.sendSmsEgypt( - phoneController.text.toString(), randomNumber.toString()); - - isSent = true; - - isLoading = false; - update(); + await _sendOtp(randomNumber, smsEgyptController); } } else { - await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: { - 'phone_number': '+2${phoneController.text}', - 'token_code': randomNumber.toString(), - "driverId": box.read(BoxName.driverID), - "email": box.read(BoxName.emailDriver), - }); - - await smsEgyptController.sendSmsEgypt( - phoneController.text.toString(), randomNumber.toString()); - - isSent = true; - - isLoading = false; - update(); + await _sendOtp(randomNumber, smsEgyptController); } } else { Get.snackbar('Phone Number wrong'.tr, '', @@ -157,6 +215,26 @@ class RegisterCaptainController extends GetxController { } } } + + isLoading = false; + update(); + } + + _sendOtp(int randomNumber, SmsEgyptController smsEgyptController) async { + await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: { + 'phone_number': '+2${phoneController.text}', + 'token_code': randomNumber.toString(), + "driverId": box.read(BoxName.driverID), + "email": box.read(BoxName.emailDriver), + }); + + await smsEgyptController.sendSmsEgypt( + phoneController.text.toString(), randomNumber.toString()); + + // Save the current time as the last OTP time + box.write(BoxName.lastOtpTime, DateTime.now()); + + isSent = true; isLoading = false; update(); } diff --git a/lib/controller/firebase/firbase_messge.dart b/lib/controller/firebase/firbase_messge.dart index 658eebb..724b99c 100644 --- a/lib/controller/firebase/firbase_messge.dart +++ b/lib/controller/firebase/firbase_messge.dart @@ -551,80 +551,8 @@ class FirebaseMessagesController extends GetxController { // } //android/app/src/main/res/raw/iphone_ringtone.wav void sendNotificationToPassengerToken( - String title, body, token, List map, String tone) async { - try { - String serviceAccountKeyJson = '''{ - "type": "service_account", - "project_id": "ride-b1bd8", - "private_key_id": "75e817c0b902db2ef35edf2c2bd159dec1f13249", - "private_key": "-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQD0zH9TQGDQHUv3\\na3/JAD1UKPwAp3wNKT0a6fxiIzjI3JxQWI30QvZCcfl6CdMhIcydX1ncSaYTcEeC\\n/AdPVCPkqyJx1YIGGg6P/mRzCWeaN8fsp6z250m5vcObDCZc3dbJEkepbep+6FPY\\n21m3KO+AHh1glgsTGZOTm5xiU8NGXpdk2QEh8wpiIIlR/HuKwVw9g8urNe3Sno+U\\nDm3z37iFqvZdmpqO8aWTJu6beb3hsREK9XK2I9JqC2JUwiGQRo3idOvPP6hkqrWx\\nKSX96vglQFYfakvJdDp2ZATOlpBYPMtS/IWhJ985u58TSS+Kl8qpnpaZBSxgJirf\\nhWzhnKLfAgMBAAECggEAJP785SePGhS7ZN6ltspm+l+hSjYFrPWFCxq+rlQ1YkHZ\\nC9l+RqKSFhOkiPmQI2s4wbXl3kFxLHHlFNoi/q2wKQBmGb8TQfnRJpjjNHGA61Ev\\n0Ue7/6qPvVb9B2MsLw/FxKiTFPuMG3bgKR9pbSFuJLYoaW7zqITOhVnYphGTqwAY\\nBVVcvISSLvELDmH9VZcv/9DVqVlqbbESHWh1Z4W6XGPoEqeDH/upNTyQQ/46Msgm\\nTGE6VqLHpWuSf6SqHp+r0Y0lI3vIPM1vz5FAJDJbOE/enHa0fSup0OHSMxl0HVMn\\nnO1yrGF3vsIPOej5HKr5d71bEIckzk73/yjNC1/mDQKBgQD7RtUvc9omsSsFMJ6e\\nBASAn6Dktx/QY/XNJjFzHQj69cywLDe5t5AL2gUi3phQ2oqB5XJdwnd5bTIEPEPZ\\nDOuOai2802p6FJk6kjmZAMVGx5JtXBH+vs6jrmQQSMiKbjwN1TT6xIWakvLOonUi\\nX6ZvjYYjU/E0YJU3jSiXWEr76wKBgQD5Zn4SouJ6BCDZMbausJVMBkk3qxsYooip\\np89WakC6e7AZinpkRcqjGGV9GOvc8crJs6fyXAA9ORepGP47Mc0ZrDssOkstznsM\\npr8R0S6MKwEZaT9ixOHdOcLZ47ps+JzA2Wr4KN2OvFHksUkB/46ATD1j9WZVgB8M\\namsYp/Y73QKBgHOo+PvsoZ9psVmkNX6abtAdqdtdB0HOoRea2uwXk0ig12TIFaZg\\nfedWpUKVnxqoXVTJHklV99RmlL0qWDiSH+LfsMnXro0e6iDxqZ1po2Se/CFmXcoa\\nXdctsFVmixhdATuExewfhTfPKABA+xWlXWC/jdy5CK+JPWXijaqMM4edAoGAE5Bj\\nsWiPpYyvWvpYX0nA3G7dzX0hqgQN/mkIjbnWDArp3IcNZNJIvBSM2Yxb7EAXbU0n\\njo6DAkp5Pa2VO+WDNlFZbvW/sf8xjeOCt44WPa6d7nVgIIpbQXRngZoopKW3/jTP\\n/FmQT8McFXmGxZ5belsAsdetSGW9icbLUerTGQ0CgYEAmf/G8Ag3XxmqTXvvHuv2\\n14OP7WnrVqkEMnydrftEwn4peXd/Lz+/GYX5Zc4ZoNgbN8IvZ5z0+OmRsallsbiW\\nBw0/tc68CjzxXOvReWxDluUopqWVGj5tlGqE5xUDku9SWJSxbkiQ3rqutzBdPXpr\\noqHwPyDrmK/Zgqn+uiIm4Ck=\\n-----END PRIVATE KEY-----\\n", - "client_email": "firebase-adminsdk-o2wqi@ride-b1bd8.iam.gserviceaccount.com", - "client_id": "111210077025005706623", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-o2wqi%40ride-b1bd8.iam.gserviceaccount.com", - "universe_domain": "googleapis.com" -} -'''; // As defined above - - // Initialize AccessTokenManager - final accessTokenManager = AccessTokenManager(serviceAccountKeyJson); - - // Obtain an OAuth 2.0 access token - final accessToken = await accessTokenManager.getAccessToken(); - - // Send the notification - final response = await http.post( - Uri.parse( - 'https://fcm.googleapis.com/v1/projects/ride-b1bd8/messages:send'), - headers: { - 'Content-Type': 'application/json', - 'Authorization': 'Bearer $accessToken', - }, - body: jsonEncode({ - 'message': { - 'token': token, - 'notification': { - 'title': title, - 'body': body, - }, - 'data': { - 'passengerList': map, - }, - 'android': { - 'priority': 'high', // Set priority to high - 'notification': { - 'sound': tone, - }, - }, - 'apns': { - 'headers': { - 'apns-priority': '10', // Set APNs priority to 10 - }, - 'payload': { - 'aps': { - 'sound': tone, - }, - }, - }, - }, - }), - ); - - if (response.statusCode == 200) { - // Notification sent successfully - } else { - // Handle error response - 'Failed to send notification. Status code: ${response.statusCode}'; - } - } catch (e) { - // Handle other exceptions - } - } - - void sendNotificationToPassengerTokenCALL( - String title, body, token, List map, String tone) async { + String title, body, token, List map, String tone, + {int retryCount = 2}) async { try { String serviceAccountKeyJson = '''{ "type": "service_account", @@ -692,15 +620,31 @@ class FirebaseMessagesController extends GetxController { } else { print( 'Failed to send notification. Status code: ${response.statusCode}'); + print('Response body: ${response.body}'); + if (retryCount > 0) { + print('Retrying... Attempts remaining: $retryCount'); + await Future.delayed( + const Duration(seconds: 2)); // Optional delay before retrying + return sendNotificationToPassengerToken(title, body, token, map, tone, + retryCount: retryCount - 1); + } } } catch (e) { print('Error sending notification: $e'); + if (retryCount > 0) { + print('Retrying... Attempts remaining: $retryCount'); + await Future.delayed( + const Duration(seconds: 2)); // Optional delay before retrying + return sendNotificationToPassengerToken(title, body, token, map, tone, + retryCount: retryCount - 1); + } } } - void sendNotificationToAnyWithoutData( - String title, String body, String token, String tone) async { + void sendNotificationToPassengerTokenCALL( + String title, body, token, List map, String tone, + {int retryCount = 2}) async { try { String serviceAccountKeyJson = '''{ "type": "service_account", @@ -739,7 +683,7 @@ class FirebaseMessagesController extends GetxController { 'body': body, }, 'data': { - 'DriverList': jsonEncode([]), + 'passengerList': jsonEncode(map), }, 'android': { 'priority': 'high', // Set priority to high @@ -768,15 +712,125 @@ class FirebaseMessagesController extends GetxController { } else { print( 'Failed to send notification. Status code: ${response.statusCode}'); + print('Response body: ${response.body}'); + if (retryCount > 0) { + print('Retrying... Attempts remaining: $retryCount'); + await Future.delayed( + const Duration(seconds: 2)); // Optional delay before retrying + return sendNotificationToPassengerTokenCALL( + title, body, token, map, tone, + retryCount: retryCount - 1); + } } } catch (e) { print('Error sending notification: $e'); + if (retryCount > 0) { + print('Retrying... Attempts remaining: $retryCount'); + await Future.delayed( + const Duration(seconds: 2)); // Optional delay before retrying + return sendNotificationToPassengerTokenCALL( + title, body, token, map, tone, + retryCount: retryCount - 1); + } } } - void sendNotificationToDriverMAP(String title, String body, String token, - List data, String tone) async { + void sendNotificationToAnyWithoutData( + String title, String body, String token, String tone, + {int retryCount = 2}) async { + try { + String serviceAccountKeyJson = '''{ + "type": "service_account", + "project_id": "ride-b1bd8", + "private_key_id": "75e817c0b902db2ef35edf2c2bd159dec1f13249", + "private_key": "-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQD0zH9TQGDQHUv3\\na3/JAD1UKPwAp3wNKT0a6fxiIzjI3JxQWI30QvZCcfl6CdMhIcydX1ncSaYTcEeC\\n/AdPVCPkqyJx1YIGGg6P/mRzCWeaN8fsp6z250m5vcObDCZc3dbJEkepbep+6FPY\\n21m3KO+AHh1glgsTGZOTm5xiU8NGXpdk2QEh8wpiIIlR/HuKwVw9g8urNe3Sno+U\\nDm3z37iFqvZdmpqO8aWTJu6beb3hsREK9XK2I9JqC2JUwiGQRo3idOvPP6hkqrWx\\nKSX96vglQFYfakvJdDp2ZATOlpBYPMtS/IWhJ985u58TSS+Kl8qpnpaZBSxgJirf\\nhWzhnKLfAgMBAAECggEAJP785SePGhS7ZN6ltspm+l+hSjYFrPWFCxq+rlQ1YkHZ\\nC9l+RqKSFhOkiPmQI2s4wbXl3kFxLHHlFNoi/q2wKQBmGb8TQfnRJpjjNHGA61Ev\\n0Ue7/6qPvVb9B2MsLw/FxKiTFPuMG3bgKR9pbSFuJLYoaW7zqITOhVnYphGTqwAY\\nBVVcvISSLvELDmH9VZcv/9DVqVlqbbESHWh1Z4W6XGPoEqeDH/upNTyQQ/46Msgm\\nTGE6VqLHpWuSf6SqHp+r0Y0lI3vIPM1vz5FAJDJbOE/enHa0fSup0OHSMxl0HVMn\\nnO1yrGF3vsIPOej5HKr5d71bEIckzk73/yjNC1/mDQKBgQD7RtUvc9omsSsFMJ6e\\nBASAn6Dktx/QY/XNJjFzHQj69cywLDe5t5AL2gUi3phQ2oqB5XJdwnd5bTIEPEPZ\\nDOuOai2802p6FJk6kjmZAMVGx5JtXBH+vs6jrmQQSMiKbjwN1TT6xIWakvLOonUi\\nX6ZvjYYjU/E0YJU3jSiXWEr76wKBgQD5Zn4SouJ6BCDZMbausJVMBkk3qxsYooip\\np89WakC6e7AZinpkRcqjGGV9GOvc8crJs6fyXAA9ORepGP47Mc0ZrDssOkstznsM\\npr8R0S6MKwEZaT9ixOHdOcLZ47ps+JzA2Wr4KN2OvFHksUkB/46ATD1j9WZVgB8M\\namsYp/Y73QKBgHOo+PvsoZ9psVmkNX6abtAdqdtdB0HOoRea2uwXk0ig12TIFaZg\\nfedWpUKVnxqoXVTJHklV99RmlL0qWDiSH+LfsMnXro0e6iDxqZ1po2Se/CFmXcoa\\nXdctsFVmixhdATuExewfhTfPKABA+xWlXWC/jdy5CK+JPWXijaqMM4edAoGAE5Bj\\nsWiPpYyvWvpYX0nA3G7dzX0hqgQN/mkIjbnWDArp3IcNZNJIvBSM2Yxb7EAXbU0n\\njo6DAkp5Pa2VO+WDNlFZbvW/sf8xjeOCt44WPa6d7nVgIIpbQXRngZoopKW3/jTP\\n/FmQT8McFXmGxZ5belsAsdetSGW9icbLUerTGQ0CgYEAmf/G8Ag3XxmqTXvvHuv2\\n14OP7WnrVqkEMnydrftEwn4peXd/Lz+/GYX5Zc4ZoNgbN8IvZ5z0+OmRsallsbiW\\nBw0/tc68CjzxXOvReWxDluUopqWVGj5tlGqE5xUDku9SWJSxbkiQ3rqutzBdPXpr\\noqHwPyDrmK/Zgqn+uiIm4Ck=\\n-----END PRIVATE KEY-----\\n", + "client_email": "firebase-adminsdk-o2wqi@ride-b1bd8.iam.gserviceaccount.com", + "client_id": "111210077025005706623", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-o2wqi%40ride-b1bd8.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +} +'''; // As defined above + + // Initialize AccessTokenManager + final accessTokenManager = AccessTokenManager(serviceAccountKeyJson); + + // Obtain an OAuth 2.0 access token + final accessToken = await accessTokenManager.getAccessToken(); + + // Send the notification + final response = await http.post( + Uri.parse( + 'https://fcm.googleapis.com/v1/projects/ride-b1bd8/messages:send'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $accessToken', + }, + body: jsonEncode({ + 'message': { + 'token': token, + 'notification': { + 'title': title, + 'body': body, + }, + // 'data': { + // 'DriverList': jsonEncode([]), + // }, + 'android': { + 'priority': 'high', // Set priority to high + 'notification': { + 'sound': tone, + }, + }, + 'apns': { + 'headers': { + 'apns-priority': '10', // Set APNs priority to 10 + }, + 'payload': { + 'aps': { + 'sound': tone, + }, + }, + }, + }, + }), + ); + + if (response.statusCode == 200) { + print( + 'Notification sent successfully. Status code: ${response.statusCode}'); + print('Response body: ${response.body}'); + } else { + print( + 'Failed to send notification. Status code: ${response.statusCode}'); + + print('Response body: ${response.body}'); + if (retryCount > 0) { + print('Retrying... Attempts remaining: $retryCount'); + await Future.delayed( + const Duration(seconds: 2)); // Optional delay before retrying + return sendNotificationToAnyWithoutData(title, body, token, tone, + retryCount: retryCount - 1); + } + } + } catch (e) { + print('Error sending notification: $e'); + if (retryCount > 0) { + print('Retrying... Attempts remaining: $retryCount'); + await Future.delayed( + const Duration(seconds: 2)); // Optional delay before retrying + return sendNotificationToAnyWithoutData(title, body, token, tone, + retryCount: retryCount - 1); + } + } + } + + void sendNotificationToDriverMAP( + String title, String body, String token, List data, String tone, + {int retryCount = 2}) async { try { String serviceAccountKeyJson = '''{ "type": "service_account", @@ -844,10 +898,27 @@ class FirebaseMessagesController extends GetxController { } else { print( 'Failed to send notification. Status code: ${response.statusCode}'); + print('Response body: ${response.body}'); + if (retryCount > 0) { + print('Retrying... Attempts remaining: $retryCount'); + await Future.delayed( + const Duration(seconds: 2)); // Optional delay before retrying + return sendNotificationToPassengerTokenCALL( + title, body, token, data, tone, + retryCount: retryCount - 1); + } } } catch (e) { print('Error sending notification: $e'); + if (retryCount > 0) { + print('Retrying... Attempts remaining: $retryCount'); + await Future.delayed( + const Duration(seconds: 2)); // Optional delay before retrying + return sendNotificationToPassengerTokenCALL( + title, body, token, data, tone, + retryCount: retryCount - 1); + } } } @@ -935,19 +1006,19 @@ class OverlayContent extends StatelessWidget { Widget build(BuildContext context) { return Material( child: Container( - padding: EdgeInsets.all(16.0), + padding: const EdgeInsets.all(16.0), color: Colors.white, child: Column( mainAxisSize: MainAxisSize.min, children: [ Text( title, - style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold), + style: const TextStyle(fontSize: 24, fontWeight: FontWeight.bold), ), - SizedBox(height: 8.0), + const SizedBox(height: 8.0), Text( body, - style: TextStyle(fontSize: 16), + style: const TextStyle(fontSize: 16), ), ], ), diff --git a/lib/controller/firebase/local_notification.dart b/lib/controller/firebase/local_notification.dart index f28f0c5..cc4fa69 100644 --- a/lib/controller/firebase/local_notification.dart +++ b/lib/controller/firebase/local_notification.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:typed_data'; import 'package:SEFER/constant/colors.dart'; import 'package:SEFER/views/home/Captin/orderCaptin/order_request_page.dart'; @@ -31,11 +32,10 @@ class NotificationController extends GetxController { // Create a notification channel const AndroidNotificationChannel channel = AndroidNotificationChannel( - 'dynamic_channel', // Channel ID - 'Dynamic Notifications', // Channel name - description: - 'This channel is used for various types of notifications.', // Channel description - importance: Importance.max, + 'high_importance_channel', + 'High Importance Notifications', + description: 'This channel is used for important notifications.', + importance: Importance.high, ); // Register the channel with the system @@ -55,31 +55,36 @@ class NotificationController extends GetxController { htmlFormatContentTitle: true, ); - AndroidNotificationDetails android = - AndroidNotificationDetails('dynamic_channel', 'Dynamic Notifications', - importance: Importance.max, - priority: Priority.high, - styleInformation: bigTextStyleInformation, - playSound: true, - sound: RawResourceAndroidNotificationSound(tone), - audioAttributesUsage: AudioAttributesUsage.alarm, - visibility: NotificationVisibility.public, - autoCancel: false, - color: AppColor.primaryColor, - showProgress: true, - showWhen: true, - timeoutAfter: title == 'Order' ? 14500 : 6000, - subText: message, - actions: [ - AndroidNotificationAction( - allowGeneratedReplies: true, - 'id', - title.tr, - titleColor: AppColor.bronze, - showsUserInterface: true, - ) - ], - category: AndroidNotificationCategory.call); + AndroidNotificationDetails android = AndroidNotificationDetails( + 'high_importance_channel', 'High Importance Notifications', + importance: Importance.high, + priority: Priority.high, + styleInformation: bigTextStyleInformation, + playSound: true, + sound: RawResourceAndroidNotificationSound(tone), + // audioAttributesUsage: AudioAttributesUsage.alarm, + visibility: NotificationVisibility.public, + autoCancel: false, + color: AppColor.primaryColor, + showProgress: true, + showWhen: true, + ongoing: true, + enableVibration: true, + vibrationPattern: Int64List.fromList([0, 1000, 500, 1000]), + timeoutAfter: 14500, + setAsGroupSummary: true, + subText: message, fullScreenIntent: true, + actions: [ + AndroidNotificationAction( + allowGeneratedReplies: true, + 'id', + title.tr, + titleColor: AppColor.bronze, + showsUserInterface: true, + ) + ], + category: AndroidNotificationCategory.progress, + ); NotificationDetails details = NotificationDetails(android: android); @@ -175,30 +180,30 @@ class NotificationController extends GetxController { } } -// class NotificationController extends GetxController { -// final FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin = -// FlutterLocalNotificationsPlugin(); +class NotificationController1 extends GetxController { + final FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin = + FlutterLocalNotificationsPlugin(); -// // Initializes the local notifications plugin -// Future initNotifications() async { -// const AndroidInitializationSettings android = -// AndroidInitializationSettings('@mipmap/launcher_icon'); -// const InitializationSettings initializationSettings = -// InitializationSettings(android: android); -// await _flutterLocalNotificationsPlugin.initialize(initializationSettings); -// } + // Initializes the local notifications plugin + Future initNotifications() async { + const AndroidInitializationSettings android = + AndroidInitializationSettings('@mipmap/launcher_icon'); + const InitializationSettings initializationSettings = + InitializationSettings(android: android); + await _flutterLocalNotificationsPlugin.initialize(initializationSettings); + } -// // Displays a notification with the given title and message -// void showNotification( -// String title, String message, String tone, String payLoad) async { -// AndroidNotificationDetails android = AndroidNotificationDetails( -// 'your channel id', 'your channel name', -// importance: Importance.max, -// priority: Priority.high, -// showWhen: false, -// sound: RawResourceAndroidNotificationSound(tone)); + // Displays a notification with the given title and message + void showNotification( + String title, String message, String tone, String payLoad) async { + AndroidNotificationDetails android = AndroidNotificationDetails( + 'your channel id', 'your channel name', + importance: Importance.max, + priority: Priority.high, + showWhen: false, + sound: RawResourceAndroidNotificationSound(tone)); -// NotificationDetails details = NotificationDetails(android: android); -// await _flutterLocalNotificationsPlugin.show(0, title, message, details); -// } -// } + NotificationDetails details = NotificationDetails(android: android); + await _flutterLocalNotificationsPlugin.show(0, title, message, details); + } +} diff --git a/lib/controller/functions/gemeni.dart b/lib/controller/functions/gemeni.dart index 3c75d33..ae6abd2 100644 --- a/lib/controller/functions/gemeni.dart +++ b/lib/controller/functions/gemeni.dart @@ -355,12 +355,12 @@ class AI extends GetxController { if (status1['status'] == 'success') { isDriverSaved = true; - // CRUD().post( - // link: '${AppLink.seferGizaServer}/auth/captin/register.php', - // payload: payload); - // CRUD().post( - // link: '${AppLink.seferAlexandriaServer}/auth/captin/register.php', - // payload: payload); + CRUD().post( + link: '${AppLink.seferGizaServer}/auth/captin/register.php', + payload: payload); + CRUD().post( + link: '${AppLink.seferAlexandriaServer}/auth/captin/register.php', + payload: payload); Get.snackbar('Success', 'Driver data saved successfully', backgroundColor: AppColor.greenColor); } else { @@ -416,55 +416,55 @@ class AI extends GetxController { isCarSaved = true; Get.snackbar('Success', 'message', backgroundColor: AppColor.greenColor); - // CRUD().post( - // link: - // '${AppLink.seferAlexandriaServer}/ride/RegisrationCar/add.php', - // payload: { - // 'driverID': box.read(BoxName.driverID), - // 'vin': responseIdCardDriverEgyptBack['chassis'].toString(), - // 'car_plate': - // responseIdCardDriverEgyptFront['car_plate'].toString(), - // 'make': responseIdCardDriverEgyptBack['make'].toString(), - // 'model': responseIdCardDriverEgyptBack['model'], - // 'year': responseIdCardDriverEgyptBack['year'].toString(), - // 'expiration_date': - // responseIdCardDriverEgyptFront['LicenseExpirationDate'] - // .toString(), - // 'color': responseIdCardDriverEgyptBack['color'], - // 'owner': responseIdCardDriverEgyptFront['owner'], - // 'color_hex': - // responseIdCardDriverEgyptBack['color_hex'].toString(), - // 'address': responseIdCardDriverEgyptFront['address'].toString(), - // 'displacement': - // responseIdCardDriverEgyptBack['engine'].toString(), - // 'fuel': responseIdCardDriverEgyptBack['fuel'].toString(), - // 'registration_date': - // '${responseIdCardDriverEgyptBack['inspection_date']}', - // }); - // CRUD().post( - // link: '${AppLink.seferGizaServer}/ride/RegisrationCar/add.php', - // payload: { - // 'driverID': box.read(BoxName.driverID), - // 'vin': responseIdCardDriverEgyptBack['chassis'].toString(), - // 'car_plate': - // responseIdCardDriverEgyptFront['car_plate'].toString(), - // 'make': responseIdCardDriverEgyptBack['make'].toString(), - // 'model': responseIdCardDriverEgyptBack['model'], - // 'year': responseIdCardDriverEgyptBack['year'].toString(), - // 'expiration_date': - // responseIdCardDriverEgyptFront['LicenseExpirationDate'] - // .toString(), - // 'color': responseIdCardDriverEgyptBack['color'], - // 'owner': responseIdCardDriverEgyptFront['owner'], - // 'color_hex': - // responseIdCardDriverEgyptBack['color_hex'].toString(), - // 'address': responseIdCardDriverEgyptFront['address'].toString(), - // 'displacement': - // responseIdCardDriverEgyptBack['engine'].toString(), - // 'fuel': responseIdCardDriverEgyptBack['fuel'].toString(), - // 'registration_date': - // '${responseIdCardDriverEgyptBack['inspection_date']}', - // }); + CRUD().post( + link: + '${AppLink.seferAlexandriaServer}/ride/RegisrationCar/add.php', + payload: { + 'driverID': box.read(BoxName.driverID), + 'vin': responseIdCardDriverEgyptBack['chassis'].toString(), + 'car_plate': + responseIdCardDriverEgyptFront['car_plate'].toString(), + 'make': responseIdCardDriverEgyptBack['make'].toString(), + 'model': responseIdCardDriverEgyptBack['model'], + 'year': responseIdCardDriverEgyptBack['year'].toString(), + 'expiration_date': + responseIdCardDriverEgyptFront['LicenseExpirationDate'] + .toString(), + 'color': responseIdCardDriverEgyptBack['color'], + 'owner': responseIdCardDriverEgyptFront['owner'], + 'color_hex': + responseIdCardDriverEgyptBack['color_hex'].toString(), + 'address': responseIdCardDriverEgyptFront['address'].toString(), + 'displacement': + responseIdCardDriverEgyptBack['engine'].toString(), + 'fuel': responseIdCardDriverEgyptBack['fuel'].toString(), + 'registration_date': + '${responseIdCardDriverEgyptBack['inspection_date']}', + }); + CRUD().post( + link: '${AppLink.seferGizaServer}/ride/RegisrationCar/add.php', + payload: { + 'driverID': box.read(BoxName.driverID), + 'vin': responseIdCardDriverEgyptBack['chassis'].toString(), + 'car_plate': + responseIdCardDriverEgyptFront['car_plate'].toString(), + 'make': responseIdCardDriverEgyptBack['make'].toString(), + 'model': responseIdCardDriverEgyptBack['model'], + 'year': responseIdCardDriverEgyptBack['year'].toString(), + 'expiration_date': + responseIdCardDriverEgyptFront['LicenseExpirationDate'] + .toString(), + 'color': responseIdCardDriverEgyptBack['color'], + 'owner': responseIdCardDriverEgyptFront['owner'], + 'color_hex': + responseIdCardDriverEgyptBack['color_hex'].toString(), + 'address': responseIdCardDriverEgyptFront['address'].toString(), + 'displacement': + responseIdCardDriverEgyptBack['engine'].toString(), + 'fuel': responseIdCardDriverEgyptBack['fuel'].toString(), + 'registration_date': + '${responseIdCardDriverEgyptBack['inspection_date']}', + }); } } catch (e) {} } diff --git a/lib/controller/functions/location_background_controller.dart b/lib/controller/functions/location_background_controller.dart index c5456ea..e822d5f 100644 --- a/lib/controller/functions/location_background_controller.dart +++ b/lib/controller/functions/location_background_controller.dart @@ -8,19 +8,13 @@ class LocationBackgroundController extends GetxController { void onInit() { super.onInit(); requestLocationPermission(); + configureBackgroundLocation(); } Future requestLocationPermission() async { var status = await Permission.locationAlways.status; if (!status.isGranted) { - status = await Permission.locationAlways.request(); - } - - if (status.isGranted) { - configureBackgroundLocation(); - } else { - // Handle permission denial - print("Location permission denied"); + await Permission.locationAlways.request(); } } @@ -31,36 +25,29 @@ class LocationBackgroundController extends GetxController { icon: '@mipmap/launcher_icon', ); - // Set the location update interval to 5 seconds - BackgroundLocation.setAndroidConfiguration(5000); + BackgroundLocation.setAndroidConfiguration(3000); BackgroundLocation.startLocationService(); - BackgroundLocation.getLocationUpdates((location) { // Handle location updates here - print("Latitude: ${location.latitude}, Longitude: ${location.longitude}"); - }); - - startBackLocation(); - } - - void startBackLocation() async { - Timer.periodic(const Duration(seconds: 5), (timer) async { - await getBackgroundLocation(); }); } - Future getBackgroundLocation() async { + startBackLocation() async { + Timer.periodic(const Duration(seconds: 3), (timer) { + getBackgroundLocation(); + }); + } + + getBackgroundLocation() async { var status = await Permission.locationAlways.status; if (status.isGranted) { - // The location service is already started in configureBackgroundLocation - // No need to call startLocationService again - BackgroundLocation.getLocationUpdates((location) { - // Handle location updates here - print( - "Latitude: ${location.latitude}, Longitude: ${location.longitude}"); - }); + await BackgroundLocation.startLocationService( + distanceFilter: 20, forceAndroidLocationManager: true); + BackgroundLocation.setAndroidConfiguration( + Duration.microsecondsPerSecond); // Set interval to 5 seconds + + BackgroundLocation.getLocationUpdates((location1) {}); } else { - // Request permission if not granted await Permission.locationAlways.request(); } } diff --git a/lib/controller/functions/location_controller.dart b/lib/controller/functions/location_controller.dart index 00f8937..9131754 100644 --- a/lib/controller/functions/location_controller.dart +++ b/lib/controller/functions/location_controller.dart @@ -53,7 +53,7 @@ class LocationController extends GetxController { } else if (latitude >= 29.904975 && latitude <= 30.143372 && longitude >= 30.787030 && - longitude <= 31.238843) { + longitude <= 31.215009) { return 'Giza'; } else if (latitude >= 30.396286 && latitude <= 31.654458 && @@ -61,7 +61,7 @@ class LocationController extends GetxController { longitude <= 32.626259) { return 'Alexandria'; } else { - return 'Outside'; + return 'Cairo'; } } @@ -102,15 +102,7 @@ class LocationController extends GetxController { endpoint = AppLink.addCarsLocationAlexandriaEndpoint; Log.print('Endpoint: $endpoint'); break; - case 'Outside': - // Handle cases outside of Cairo, Giza, and Alexandria - print('Location outside Cairo, Giza, or Alexandria'); - box.write(BoxName.serverChosen, AppLink.seferCairoServer); - endpoint = AppLink - .addCarsLocationCairoEndpoint; // Fallback to Cairo endpoint - Log.print('Fallback Endpoint: $endpoint'); - break; default: // Handle any other unexpected cases print('Unknown location area'); diff --git a/lib/controller/functions/location_permission.dart b/lib/controller/functions/location_permission.dart index 9bbf33c..98436f8 100644 --- a/lib/controller/functions/location_permission.dart +++ b/lib/controller/functions/location_permission.dart @@ -1,16 +1,60 @@ -import 'package:location/location.dart'; import 'package:get/get.dart'; +import 'package:permission_handler/permission_handler.dart'; + +import '../../constant/box_name.dart'; +import '../../main.dart'; +import '../../print.dart'; +import '../../views/widgets/mydialoug.dart'; +import '../auth/captin/login_captin_controller.dart'; class LocationPermissions { - late Location location; + // late Location location; - Future locationPermissions() async { - location = Location(); - var permissionStatus = await location.requestPermission(); - if (permissionStatus == PermissionStatus.denied) { - // The user denied the location permission. - Get.defaultDialog(title: 'GPS Required Allow !.'.tr, middleText: ''); - return null; - } + // Future locationPermissions() async { + // location = Location(); + // var permissionStatus = await location.requestPermission(); + // if (permissionStatus == PermissionStatus.denied) { + // // The user denied the location permission. + // Get.defaultDialog(title: 'GPS Required Allow !.'.tr, middleText: ''); + // return null; + // } + // } +} + +Future getPermissionLocation() async { + final PermissionStatus status = await Permission.locationAlways.status; + if (!await Permission.locationAlways.serviceStatus.isEnabled) { + Log.print('status.isGranted: ${status.isGranted}'); + // box.write(BoxName.locationPermission, 'true'); + await Permission.locationAlways.request(); + Get.put(LoginDriverController()).update(); + MyDialog().getDialog( + 'Enable Location Permission'.tr, // {en:ar} + 'Allowing location access will help us display orders near you. Please enable it now.' + .tr, // {en:ar} + () async { + Get.back(); + box.write(BoxName.locationPermission, 'true'); + await Permission.locationAlways.request(); + }, + ); + } +} + +Future getPermissionLocation1() async { + PermissionStatus status = await Permission.locationWhenInUse.request(); + + if (status.isGranted) { + // After granting when in use, request "always" location permission + status = await Permission.locationAlways.request(); + + if (status.isGranted) { + print("Background location permission granted"); + } else { + print("Background location permission denied"); + } + } else { + print("Location permission denied"); + await openAppSettings(); } } diff --git a/lib/controller/functions/overlay_permisssion.dart b/lib/controller/functions/overlay_permisssion.dart index 032d89d..4088f93 100644 --- a/lib/controller/functions/overlay_permisssion.dart +++ b/lib/controller/functions/overlay_permisssion.dart @@ -3,10 +3,12 @@ import 'dart:io'; import 'package:SEFER/views/widgets/mydialoug.dart'; import 'package:flutter_overlay_window/flutter_overlay_window.dart'; import 'package:get/get.dart'; -import 'package:permission_handler/permission_handler.dart'; +import 'package:location/location.dart'; +// import 'package:permission_handler/permission_handler.dart'; import '../../constant/box_name.dart'; import '../../main.dart'; +import '../../print.dart'; import '../auth/captin/login_captin_controller.dart'; Future getPermissionOverlay() async { @@ -26,24 +28,55 @@ Future getPermissionOverlay() async { } } -Future getPermissionLocation() async { - final PermissionStatus status = await Permission.location.status; - if (!status.isGranted) { - // Log.print('status.isGranted: ${status.isGranted}'); - box.write(BoxName.locationPermission, 'true'); - await Permission.location.request(); - Get.find().update(); - // MyDialog().getDialog( - // 'Enable Location Permission'.tr, // {en:ar} - // 'Allowing location access will help us display orders near you. Please enable it now.' - // .tr, // {en:ar} - // () async { - // Get.back(); - // box.write(BoxName.locationPermission, 'true'); - // await Permission.location.request(); - // }, - // ); +// Future getPermissionLocation() async { +// // final PermissionStatus status = await Permission.location.status; +// // if (!status.isGranted) { +// // Log.print('status.isGranted: ${status.isGranted}'); +// // // box.write(BoxName.locationPermission, 'true'); +// // await Permission.location.request(); +// // Get.find().update(); +// // MyDialog().getDialog( +// // 'Enable Location Permission'.tr, // {en:ar} +// // 'Allowing location access will help us display orders near you. Please enable it now.' +// // .tr, // {en:ar} +// // () async { +// // Get.back(); +// // box.write(BoxName.locationPermission, 'true'); +// // await Permission.location.request(); +// // }, +// // ); +// // } +// } +final location = Location(); +Future getLocationPermission() async { + bool serviceEnabled; + PermissionStatus permissionGranted; + + // Check if location services are enabled + serviceEnabled = await location.serviceEnabled(); + if (!serviceEnabled) { + serviceEnabled = await location.requestService(); + if (!serviceEnabled) { + // Location services are still not enabled, handle the error + return; + } } + + // Check if the app has permission to access location + permissionGranted = await location.hasPermission(); + if (permissionGranted == PermissionStatus.denied) { + permissionGranted = await location.requestPermission(); + if (permissionGranted != PermissionStatus.granted) { + // Location permission is still not granted, handle the error + permissionGranted = await location.requestPermission(); + return; + } + } + if (permissionGranted.toString() == 'PermissionStatus.granted') { + box.write(BoxName.locationPermission, 'true'); + Get.find().update(); + } + // update(); } Future getOverLay(String myListString) async { diff --git a/lib/controller/home/captin/home_captain_controller.dart b/lib/controller/home/captin/home_captain_controller.dart index d7c5633..1f30941 100644 --- a/lib/controller/home/captin/home_captain_controller.dart +++ b/lib/controller/home/captin/home_captain_controller.dart @@ -240,6 +240,18 @@ class HomeCaptainController extends GetxController { 'token': box.read(BoxName.tokenDriver), 'captain_id': box.read(BoxName.driverID).toString() }); + CRUD().post( + link: "${AppLink.seferAlexandriaServer}/ride/firebase/addDriver.php", + payload: { + 'token': box.read(BoxName.tokenDriver), + 'captain_id': box.read(BoxName.driverID).toString() + }); + CRUD().post( + link: "${AppLink.seferGizaServer}/ride/firebase/addDriver.php", + payload: { + 'token': box.read(BoxName.tokenDriver), + 'captain_id': box.read(BoxName.driverID).toString() + }); MapDriverController().driverCallPassenger(); // box.write(BoxName.statusDriverLocation, 'off'); } diff --git a/lib/controller/home/captin/order_request_controller.dart b/lib/controller/home/captin/order_request_controller.dart index 25971af..76c9a9d 100644 --- a/lib/controller/home/captin/order_request_controller.dart +++ b/lib/controller/home/captin/order_request_controller.dart @@ -184,6 +184,20 @@ class OrderRequestController extends GetxController { 'status': 'Refused', 'driver_id': box.read(BoxName.driverID), }); + CRUD().post( + link: '${AppLink.seferAlexandriaServer}/rides/update.php', + payload: { + 'id': orderID, + // 'rideTimeStart': DateTime.now().toString(), + 'status': 'Refused', + 'driver_id': box.read(BoxName.driverID), + }); + CRUD().post(link: '${AppLink.seferGizaServer}/rides/update.php', payload: { + 'id': orderID, + // 'rideTimeStart': DateTime.now().toString(), + 'status': 'Refused', + 'driver_id': box.read(BoxName.driverID), + }); // applied = true; // if (box.read(BoxName.gender).toString() != 'Female') { @@ -229,5 +243,41 @@ class OrderRequestController extends GetxController { 'distance': distance, 'duration': duration, }); + CRUD().post( + link: + '${AppLink.seferAlexandriaServer}/notificationCaptain/addWaitingRide.php', + 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, + }); + CRUD().post( + link: + '${AppLink.seferGizaServer}/notificationCaptain/addWaitingRide.php', + 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, + }); } } diff --git a/lib/controller/local/translations.dart b/lib/controller/local/translations.dart index c562094..f3eeda5 100644 --- a/lib/controller/local/translations.dart +++ b/lib/controller/local/translations.dart @@ -154,6 +154,7 @@ class MyTranslation extends Translations { "لقد اخترت التأمين الصحي بنجاح.", "Please enter a health insurance status.": "يرجى إدخال حالة التأمين الصحي", + "Sefer Driver": "سفر السائق", "The 3000 points equal 3000 L.E for you \nSo go and gain your money": "3000 نقطة تساوي 3000 جنيه لك \nلذا اذهب واحصل على أموالك", "Info": "معلومات", diff --git a/lib/controller/rate/rate_conroller.dart b/lib/controller/rate/rate_conroller.dart index f73f1df..780dabe 100644 --- a/lib/controller/rate/rate_conroller.dart +++ b/lib/controller/rate/rate_conroller.dart @@ -127,7 +127,24 @@ class RateController extends GetxController { middleText: '', confirm: MyElevatedButton(title: 'Ok', onPressed: () => Get.back())); } else { - await CRUD().post(link: AppLink.addRateToPassenger, payload: { + await CRUD() + .post(link: "${AppLink.seferCairoServer}/rate/add.php", payload: { + 'passenger_id': passengerId, + 'driverID': box.read(BoxName.driverID).toString(), + 'rideId': rideId, + 'rating': selectedRateItemId.toString(), + 'comment': comment.text, + }); + CRUD().post( + link: "${AppLink.seferAlexandriaServer}/rate/add.php", + payload: { + 'passenger_id': passengerId, + 'driverID': box.read(BoxName.driverID).toString(), + 'rideId': rideId, + 'rating': selectedRateItemId.toString(), + 'comment': comment.text, + }); + CRUD().post(link: AppLink.seferGizaServer, payload: { 'passenger_id': passengerId, 'driverID': box.read(BoxName.driverID).toString(), 'rideId': rideId, diff --git a/lib/main.dart b/lib/main.dart index f1cc48a..86bcb69 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -130,6 +130,7 @@ void main() async { FirebaseMessaging.onBackgroundMessage(backgroundMessageHandler); NotificationController().initNotifications(); + NotificationController1().initNotifications(); await Future.wait([ FirebaseMessagesController().getNotificationSettings(), diff --git a/lib/views/auth/captin/login_captin.dart b/lib/views/auth/captin/login_captin.dart index d57fe1f..452d90d 100644 --- a/lib/views/auth/captin/login_captin.dart +++ b/lib/views/auth/captin/login_captin.dart @@ -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; } diff --git a/lib/views/home/Captin/home_captain/home_captin.dart b/lib/views/home/Captin/home_captain/home_captin.dart index 1b9cab8..fb92fc8 100644 --- a/lib/views/home/Captin/home_captain/home_captin.dart +++ b/lib/views/home/Captin/home_captain/home_captin.dart @@ -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( diff --git a/lib/views/home/Captin/home_captain/widget/left_menu_map_captain.dart b/lib/views/home/Captin/home_captain/widget/left_menu_map_captain.dart index 94c1764..f426df2 100644 --- a/lib/views/home/Captin/home_captain/widget/left_menu_map_captain.dart +++ b/lib/views/home/Captin/home_captain/widget/left_menu_map_captain.dart @@ -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 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 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 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, diff --git a/lib/views/home/Captin/orderCaptin/order_over_lay.dart b/lib/views/home/Captin/orderCaptin/order_over_lay.dart index 9436cc7..c58f67e 100644 --- a/lib/views/home/Captin/orderCaptin/order_over_lay.dart +++ b/lib/views/home/Captin/orderCaptin/order_over_lay.dart @@ -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 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 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(); diff --git a/lib/views/home/Captin/orderCaptin/order_request_page.dart b/lib/views/home/Captin/orderCaptin/order_request_page.dart index 34ffbb4..6913c83 100644 --- a/lib/views/home/Captin/orderCaptin/order_request_page.dart +++ b/lib/views/home/Captin/orderCaptin/order_request_page.dart @@ -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." diff --git a/lib/views/home/Captin/orderCaptin/order_speed_request.dart b/lib/views/home/Captin/orderCaptin/order_speed_request.dart index 5b4ec06..838b6bf 100644 --- a/lib/views/home/Captin/orderCaptin/order_speed_request.dart +++ b/lib/views/home/Captin/orderCaptin/order_speed_request.dart @@ -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', diff --git a/lib/views/notification/available_rides_page.dart b/lib/views/notification/available_rides_page.dart index 0bbae68..5a1c2cd 100644 --- a/lib/views/notification/available_rides_page.dart +++ b/lib/views/notification/available_rides_page.dart @@ -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 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: {