diff --git a/android/app/build.gradle b/android/app/build.gradle
index 06655d8..5e03d06 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 = 124
- versionName = '1.5.24'
+ versionCode = 126
+ versionName = '1.5.26'
multiDexEnabled =true
}
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index fb7ca5d..ee54537 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -35,7 +35,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 81
+ 84
CFBundleSignature
????
CFBundleURLTypes
@@ -50,7 +50,7 @@
CFBundleVersion
- 4.0.81
+ 4.0.84
FirebaseAppDelegateProxyEnabled
NO
GMSApiKey
diff --git a/lib/constant/box_name.dart b/lib/constant/box_name.dart
index 527f404..e552c81 100644
--- a/lib/constant/box_name.dart
+++ b/lib/constant/box_name.dart
@@ -46,6 +46,8 @@ class BoxName {
static const String phone = "phone";
static const String phoneDriver = "phoneDriver";
static const String is_claimed = "is_claimed";
+ static const String isInstall = "isInstall";
+ static const String isGiftToken = "isGiftToken";
static const String lastOtpTime = "lastOtpTime";
static const String bankCodeDriver = "bankCodeDriver";
static const String accountBankNumberDriver = "accountBankNumberDriver";
diff --git a/lib/constant/links.dart b/lib/constant/links.dart
index 4c4a860..f3d81d6 100644
--- a/lib/constant/links.dart
+++ b/lib/constant/links.dart
@@ -1,4 +1,4 @@
-import 'package:SEFER/env/env.dart';
+import 'package:sefer_driver/env/env.dart';
import '../main.dart';
import 'box_name.dart';
@@ -183,8 +183,8 @@ class AppLink {
//-----------------RegisrationCar------------------
static String addRegisrationCar = "$ride/RegisrationCar/add.php";
static String getRegisrationCar = "$endPoint/ride/RegisrationCar/get.php";
- static String updateRegisrationCar =
- "$endPoint/ride/RegisrationCar/update.php";
+ static String updateRegisrationCar = "$ride/RegisrationCar/update.php";
+ static String makeDefaultCar = "$ride/RegisrationCar/makeDefaultCar.php";
//-----------------DriverOrder------------------
@@ -220,6 +220,7 @@ class AppLink {
static String uploadEgyptidFront =
"$server/EgyptDocuments/uploadEgyptidFront.php";
static String uploadEgypt = "$server/uploadEgypt.php";
+ static String uploadEgypt1 = "$server/uploadEgypt1.php";
//==================certifcate==========
static String location = '$endPoint/ride/location';
@@ -245,6 +246,7 @@ class AppLink {
//==================cars new drivers=============
static String addNewCarsDrivers = '$server/ride/carDrivers/add.php';
static String getNewCarsDrivers = '$server/ride/carDrivers/get.php';
+ static String deleteNewCarsDrivers = '$server/ride/carDrivers/delete.php';
//==================Blog=============
static String profile = '$server/ride/profile';
@@ -267,6 +269,8 @@ class AppLink {
"$server/ride/invitor/updatePassengerGift.php";
static String updateInvitationCodeFromRegister =
"$server/ride/invitor/updateInvitationCodeFromRegister.php";
+ static String updateDriverInvitationDirectly =
+ "$server/ride/invitor/updateDriverInvitationDirectly.php";
static String updatePassengersInvitation =
"$server/ride/invitor/updatePassengersInvitation.php";
diff --git a/lib/constant/style.dart b/lib/constant/style.dart
index b8a4951..4425b92 100644
--- a/lib/constant/style.dart
+++ b/lib/constant/style.dart
@@ -1,5 +1,5 @@
-import 'package:SEFER/constant/box_name.dart';
-import 'package:SEFER/main.dart';
+import 'package:sefer_driver/constant/box_name.dart';
+import 'package:sefer_driver/main.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'colors.dart';
diff --git a/lib/controller/auth/captin/history_captain.dart b/lib/controller/auth/captin/history_captain.dart
index 380f5f3..35b13f2 100644
--- a/lib/controller/auth/captin/history_captain.dart
+++ b/lib/controller/auth/captin/history_captain.dart
@@ -1,6 +1,6 @@
import 'dart:convert';
-import 'package:SEFER/views/widgets/elevated_btn.dart';
+import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:get/get.dart';
import '../../../constant/box_name.dart';
diff --git a/lib/controller/auth/captin/invit_controller.dart b/lib/controller/auth/captin/invit_controller.dart
index c4f36e0..e39a57f 100644
--- a/lib/controller/auth/captin/invit_controller.dart
+++ b/lib/controller/auth/captin/invit_controller.dart
@@ -1,12 +1,12 @@
import 'dart:convert';
-import 'package:SEFER/constant/box_name.dart';
-import 'package:SEFER/constant/colors.dart';
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/controller/firebase/local_notification.dart';
-import 'package:SEFER/controller/functions/crud.dart';
-import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart';
-import 'package:SEFER/views/widgets/mydialoug.dart';
+import 'package:sefer_driver/constant/box_name.dart';
+import 'package:sefer_driver/constant/colors.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/controller/firebase/local_notification.dart';
+import 'package:sefer_driver/controller/functions/crud.dart';
+import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
+import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart';
import 'package:flutter_contacts/contact.dart';
import 'package:flutter_contacts/flutter_contacts.dart';
diff --git a/lib/controller/auth/captin/login_captin_controller.dart b/lib/controller/auth/captin/login_captin_controller.dart
index 36b6f34..1b8b877 100644
--- a/lib/controller/auth/captin/login_captin_controller.dart
+++ b/lib/controller/auth/captin/login_captin_controller.dart
@@ -1,18 +1,18 @@
import 'dart:convert';
import 'dart:math';
-import 'package:SEFER/controller/functions/location_background_controller.dart';
-import 'package:SEFER/views/auth/captin/cards/sms_signup.dart';
-import 'package:SEFER/views/widgets/elevated_btn.dart';
-import 'package:SEFER/views/widgets/error_snakbar.dart';
+import 'package:sefer_driver/controller/functions/location_background_controller.dart';
+import 'package:sefer_driver/views/auth/captin/cards/sms_signup.dart';
+import 'package:sefer_driver/views/widgets/elevated_btn.dart';
+import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:get/get.dart';
-import 'package:SEFER/constant/box_name.dart';
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/controller/functions/crud.dart';
-import 'package:SEFER/main.dart';
-import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart';
+import 'package:sefer_driver/constant/box_name.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/controller/functions/crud.dart';
+import 'package:sefer_driver/main.dart';
+import 'package:sefer_driver/views/home/Captin/home_captain/home_captin.dart';
import 'package:location/location.dart';
import '../../../constant/info.dart';
@@ -113,7 +113,7 @@ class LoginDriverController extends GetxController {
.join('');
}
- loginUsingCredentials(String driverID, email) async {
+ loginWithGoogleCredential(String driverID, email) async {
isloading = true;
update();
var res = await CRUD().get(link: AppLink.loginFromGoogleCaptin, payload: {
@@ -146,6 +146,9 @@ class LoginDriverController extends GetxController {
jsonDecoeded['data'][0]['is_verified'].toString());
box.write(BoxName.phoneDriver, jsonDecoeded['data'][0]['phone']);
box.write(BoxName.is_claimed, jsonDecoeded['data'][0]['is_claimed']);
+ box.write(BoxName.isInstall, jsonDecoeded['data'][0]['isInstall']);
+ // box.write(
+ // BoxName.isGiftToken, jsonDecoeded['data'][0]['isGiftToken']);
box.write(BoxName.nameArabic, jsonDecoeded['data'][0]['name_arabic']);
box.write(BoxName.carYear, jsonDecoeded['data'][0]['year']);
box.write(
diff --git a/lib/controller/auth/captin/ml_google_doc.dart b/lib/controller/auth/captin/ml_google_doc.dart
index d611582..35976ab 100644
--- a/lib/controller/auth/captin/ml_google_doc.dart
+++ b/lib/controller/auth/captin/ml_google_doc.dart
@@ -4,8 +4,8 @@ import 'package:get/get.dart';
import 'package:google_mlkit_text_recognition/google_mlkit_text_recognition.dart';
import 'package:image_cropper/image_cropper.dart';
import 'package:image_picker/image_picker.dart';
-import 'package:SEFER/constant/colors.dart';
-import 'package:SEFER/controller/functions/llama_ai.dart';
+import 'package:sefer_driver/constant/colors.dart';
+import 'package:sefer_driver/controller/functions/llama_ai.dart';
class CarRegistrationRecognizerController extends GetxController {
@override
diff --git a/lib/controller/auth/captin/register_captin_controller.dart b/lib/controller/auth/captin/register_captin_controller.dart
index d6c1355..2a0ff38 100644
--- a/lib/controller/auth/captin/register_captin_controller.dart
+++ b/lib/controller/auth/captin/register_captin_controller.dart
@@ -1,19 +1,19 @@
import 'dart:convert';
import 'dart:math';
-import 'package:SEFER/controller/auth/captin/login_captin_controller.dart';
-import 'package:SEFER/views/auth/captin/cards/egypt_card_a_i.dart';
-import 'package:SEFER/views/auth/captin/register_captin.dart';
-import 'package:SEFER/views/widgets/error_snakbar.dart';
+import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart';
+import 'package:sefer_driver/views/auth/captin/cards/egypt_card_a_i.dart';
+import 'package:sefer_driver/views/auth/captin/register_captin.dart';
+import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
-import 'package:SEFER/constant/box_name.dart';
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/controller/functions/crud.dart';
-import 'package:SEFER/controller/functions/ocr_controller.dart';
-import 'package:SEFER/main.dart';
-import 'package:SEFER/views/auth/captin/login_captin.dart';
-import 'package:SEFER/views/auth/captin/verify_email_captain.dart';
+import 'package:sefer_driver/constant/box_name.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/controller/functions/crud.dart';
+import 'package:sefer_driver/controller/functions/ocr_controller.dart';
+import 'package:sefer_driver/main.dart';
+import 'package:sefer_driver/views/auth/captin/login_captin.dart';
+import 'package:sefer_driver/views/auth/captin/verify_email_captain.dart';
import '../../../constant/colors.dart';
import '../../../views/auth/captin/ai_page.dart';
@@ -116,7 +116,7 @@ class RegisterCaptainController extends GetxController {
backgroundColor: AppColor.greenColor);
box.write(BoxName.phoneVerified, '1');
box.write(BoxName.phone, '+2${phoneController.text}');
- await Get.put(LoginDriverController()).loginUsingCredentials(
+ await Get.put(LoginDriverController()).loginWithGoogleCredential(
box.read(BoxName.driverID).toString(),
box.read(BoxName.emailDriver).toString(),
);
@@ -240,7 +240,7 @@ class RegisterCaptainController extends GetxController {
mySnackbarSuccess('Phone number is already verified'.tr);
box.write(BoxName.phoneVerified, '1');
box.write(BoxName.phone, '+2${phoneController.text}');
- Get.put(LoginDriverController()).loginUsingCredentials(
+ Get.put(LoginDriverController()).loginWithGoogleCredential(
box.read(BoxName.driverID).toString(),
box.read(BoxName.emailDriver).toString(),
);
diff --git a/lib/controller/auth/google_sign.dart b/lib/controller/auth/google_sign.dart
index 360556b..0899569 100644
--- a/lib/controller/auth/google_sign.dart
+++ b/lib/controller/auth/google_sign.dart
@@ -1,12 +1,12 @@
-import 'package:SEFER/constant/box_name.dart';
-import 'package:SEFER/constant/colors.dart';
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/controller/auth/captin/login_captin_controller.dart';
-import 'package:SEFER/controller/functions/crud.dart';
-import 'package:SEFER/main.dart';
-import 'package:SEFER/views/auth/captin/cards/sms_signup.dart';
-import 'package:SEFER/views/home/on_boarding_page.dart';
-import 'package:SEFER/views/widgets/error_snakbar.dart';
+import 'package:sefer_driver/constant/box_name.dart';
+import 'package:sefer_driver/constant/colors.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart';
+import 'package:sefer_driver/controller/functions/crud.dart';
+import 'package:sefer_driver/main.dart';
+import 'package:sefer_driver/views/auth/captin/cards/sms_signup.dart';
+import 'package:sefer_driver/views/home/on_boarding_page.dart';
+import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:get/get.dart';
import 'package:google_sign_in/google_sign_in.dart';
@@ -106,7 +106,7 @@ class GoogleSignInHelper {
// Check if driverID is a valid numeric string
// if (driverID != 'Unknown ID' && int.tryParse(driverID) != null) {
await Get.find()
- .loginUsingCredentials(driverID, emailDriver);
+ .loginWithGoogleCredential(driverID, emailDriver);
// }
// else {
// print('Invalid driverID format: $driverID');
diff --git a/lib/controller/auth/login_controller.dart b/lib/controller/auth/login_controller.dart
index 91f7e26..ce29352 100644
--- a/lib/controller/auth/login_controller.dart
+++ b/lib/controller/auth/login_controller.dart
@@ -1,16 +1,16 @@
import 'dart:convert';
import 'dart:math';
-import 'package:SEFER/views/widgets/error_snakbar.dart';
+import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:get/get.dart';
-import 'package:SEFER/constant/box_name.dart';
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/controller/functions/crud.dart';
-import 'package:SEFER/controller/functions/secure_storage.dart';
-import 'package:SEFER/main.dart';
-import 'package:SEFER/views/auth/verify_email_page.dart';
+import 'package:sefer_driver/constant/box_name.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/controller/functions/crud.dart';
+import 'package:sefer_driver/controller/functions/secure_storage.dart';
+import 'package:sefer_driver/main.dart';
+import 'package:sefer_driver/views/auth/verify_email_page.dart';
class LoginController extends GetxController {
final formKey = GlobalKey();
diff --git a/lib/controller/auth/onboarding_controller.dart b/lib/controller/auth/onboarding_controller.dart
index 518f8e5..73c7bdf 100644
--- a/lib/controller/auth/onboarding_controller.dart
+++ b/lib/controller/auth/onboarding_controller.dart
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
-import 'package:SEFER/constant/box_name.dart';
-import 'package:SEFER/main.dart';
-import 'package:SEFER/views/auth/login_page.dart';
+import 'package:sefer_driver/constant/box_name.dart';
+import 'package:sefer_driver/main.dart';
+import 'package:sefer_driver/views/auth/login_page.dart';
import '../../models/model/onboarding_model.dart';
import '../../views/auth/captin/login_captin.dart';
diff --git a/lib/controller/auth/register_controller.dart b/lib/controller/auth/register_controller.dart
index 45297bd..74e02be 100644
--- a/lib/controller/auth/register_controller.dart
+++ b/lib/controller/auth/register_controller.dart
@@ -3,11 +3,11 @@ import 'dart:math';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/constant/style.dart';
-import 'package:SEFER/controller/functions/crud.dart';
-import 'package:SEFER/views/auth/login_page.dart';
-import 'package:SEFER/views/widgets/elevated_btn.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/constant/style.dart';
+import 'package:sefer_driver/controller/functions/crud.dart';
+import 'package:sefer_driver/views/auth/login_page.dart';
+import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import '../../views/auth/captin/login_captin.dart';
import '../../views/auth/verify_email_page.dart';
diff --git a/lib/controller/auth/tokens_controller.dart b/lib/controller/auth/tokens_controller.dart
index 73be75e..165e21c 100644
--- a/lib/controller/auth/tokens_controller.dart
+++ b/lib/controller/auth/tokens_controller.dart
@@ -1,6 +1,6 @@
import 'dart:convert';
-import 'package:SEFER/views/widgets/error_snakbar.dart';
+import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
diff --git a/lib/controller/auth/verify_email_controller.dart b/lib/controller/auth/verify_email_controller.dart
index 3ca4247..b3e934d 100644
--- a/lib/controller/auth/verify_email_controller.dart
+++ b/lib/controller/auth/verify_email_controller.dart
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/controller/functions/crud.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/controller/functions/crud.dart';
class VerifyEmailController extends GetxController {
TextEditingController verfyCode = TextEditingController();
diff --git a/lib/controller/firebase/firbase_messge.dart b/lib/controller/firebase/firbase_messge.dart
index 6c85c7a..c77cd83 100644
--- a/lib/controller/firebase/firbase_messge.dart
+++ b/lib/controller/firebase/firbase_messge.dart
@@ -1,13 +1,13 @@
import 'dart:convert';
import 'dart:io';
-import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
-import 'package:SEFER/views/widgets/error_snakbar.dart';
-import 'package:SEFER/views/widgets/mydialoug.dart';
+import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
+import 'package:sefer_driver/views/widgets/error_snakbar.dart';
+import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
-import 'package:SEFER/views/widgets/elevated_btn.dart';
+import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import '../../constant/box_name.dart';
import '../../constant/colors.dart';
@@ -100,7 +100,7 @@ class FirebaseMessagesController extends GetxController {
notificationController.showNotification(
message.notification!.title.toString(),
message.notification!.body.toString(),
- 'order',
+ 'tone1',
'');
}
// await FirebaseMessagesController().showOverlayNotification(message);
@@ -114,6 +114,7 @@ class FirebaseMessagesController extends GetxController {
Get.put(HomeCaptainController()).changeRideId();
update();
Get.to(() => OrderRequestPage(), arguments: {
+ // Get.to(() => OrderRequestPage(), arguments: {
'myListString': myListString,
'DriverList': myList,
// 'PolylineJson': myPoints,
diff --git a/lib/controller/firebase/local_notification.dart b/lib/controller/firebase/local_notification.dart
index cf47f89..b97c99e 100644
--- a/lib/controller/firebase/local_notification.dart
+++ b/lib/controller/firebase/local_notification.dart
@@ -3,9 +3,9 @@ import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
-import 'package:SEFER/constant/colors.dart';
-import 'package:SEFER/views/home/Captin/orderCaptin/order_request_page.dart';
-import 'package:SEFER/views/home/Captin/orderCaptin/order_speed_request.dart';
+import 'package:sefer_driver/constant/colors.dart';
+import 'package:sefer_driver/views/home/Captin/orderCaptin/order_request_page.dart';
+import 'package:sefer_driver/views/home/Captin/orderCaptin/order_speed_request.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:get/get.dart';
import 'package:permission_handler/permission_handler.dart';
@@ -66,38 +66,46 @@ class NotificationController extends GetxController {
htmlFormatContent: true,
htmlFormatContentTitle: true,
);
-
AndroidNotificationDetails android = AndroidNotificationDetails(
- 'high_importance_channel', // Use the same ID as before
+ 'high_importance_channel',
'High Importance Notifications',
- importance: Importance.high,
+ 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,
- 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,
);
+
+ // AndroidNotificationDetails android = AndroidNotificationDetails(
+ // 'high_importance_channel', // Use the same ID as before
+ // '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.blueColor,
+ // showsUserInterface: true,
+ // )
+ // ],
+ // category: AndroidNotificationCategory.message,
+ // );
+
DarwinNotificationDetails ios = const DarwinNotificationDetails(
sound: 'default',
presentAlert: true,
@@ -221,7 +229,6 @@ class NotificationController extends GetxController {
message,
scheduledTime,
details,
- androidAllowWhileIdle: true,
uiLocalNotificationDateInterpretation:
UILocalNotificationDateInterpretation.absoluteTime,
matchDateTimeComponents: DateTimeComponents.time,
@@ -264,20 +271,37 @@ class NotificationController extends GetxController {
// Schedule notifications for the next 7 days
for (int day = 0; day < 7; day++) {
- // Schedule for 8:00 AM
- await _scheduleNotificationForTime(
- day, 7, 0, title, message, details, day * 1000 + 1); // Unique ID
+ // List of notification times
+ final notificationTimes = [
+ {'hour': 8, 'minute': 0, 'id': day * 1000 + 1}, // 8:00 AM
+ {'hour': 15, 'minute': 0, 'id': day * 1000 + 2}, // 3:00 PM
+ {'hour': 20, 'minute': 0, 'id': day * 1000 + 3}, // 8:00 PM
+ ];
- await _scheduleNotificationForTime(
- day, 10, 14, title, message, details, day * 1000 + 2); // Unique ID
+ for (var time in notificationTimes) {
+ final notificationId = time['id'] as int;
- // Schedule for 3:00 PM
- await _scheduleNotificationForTime(
- day, 13, 0, title, message, details, day * 1000 + 3); // Unique ID
+ // Check if this notification ID is already stored
+ bool isScheduled = box.read('notification_$notificationId') ?? false;
- // Schedule for 8:00 PM
- await _scheduleNotificationForTime(
- day, 20, 0, title, message, details, day * 1000 + 4); // Unique ID
+ if (!isScheduled) {
+ // Schedule the notification if not already scheduled
+ await _scheduleNotificationForTime(
+ day,
+ time['hour'] as int,
+ time['minute'] as int,
+ title,
+ message,
+ details,
+ notificationId,
+ );
+
+ // Mark this notification ID as scheduled in GetStorage
+ box.write('notification_$notificationId', true);
+ } else {
+ print('Notification with ID $notificationId is already scheduled.');
+ }
+ }
}
print('Notifications scheduled successfully for the next 7 days');
diff --git a/lib/controller/firebase/order_lay.dart b/lib/controller/firebase/order_lay.dart
index 90e2938..b1afa02 100644
--- a/lib/controller/firebase/order_lay.dart
+++ b/lib/controller/firebase/order_lay.dart
@@ -1,7 +1,7 @@
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/controller/functions/crud.dart';
-import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart';
-import 'package:SEFER/views/widgets/elevated_btn.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/controller/functions/crud.dart';
+import 'package:sefer_driver/views/home/Captin/home_captain/home_captin.dart';
+import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:flutter/material.dart';
class OverlayContent1 extends StatelessWidget {
diff --git a/lib/controller/functions/camer_controller.dart b/lib/controller/functions/camer_controller.dart
index be92c13..67820d9 100644
--- a/lib/controller/functions/camer_controller.dart
+++ b/lib/controller/functions/camer_controller.dart
@@ -4,9 +4,9 @@ import 'dart:io';
import 'package:camera/camera.dart';
import 'package:get/get.dart';
import 'package:google_mlkit_text_recognition/google_mlkit_text_recognition.dart';
-import 'package:SEFER/constant/box_name.dart';
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/views/widgets/elevated_btn.dart';
+import 'package:sefer_driver/constant/box_name.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:path_provider/path_provider.dart' as path_provider;
import 'package:path/path.dart' as path;
import 'package:http/http.dart' as http;
diff --git a/lib/controller/functions/crud.dart b/lib/controller/functions/crud.dart
index bdee8b5..4014de1 100644
--- a/lib/controller/functions/crud.dart
+++ b/lib/controller/functions/crud.dart
@@ -1,10 +1,10 @@
import 'dart:convert';
-import 'package:SEFER/constant/box_name.dart';
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/main.dart';
+import 'package:sefer_driver/constant/box_name.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/main.dart';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
-import 'package:SEFER/env/env.dart';
+import 'package:sefer_driver/env/env.dart';
import '../../constant/api_key.dart';
import '../../print.dart';
@@ -28,10 +28,9 @@ class CRUD {
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials.toString()))}',
},
);
- // if (response.statusCode == 200) {
- Log.print('response: ${response.request}');
+ Log.print('request: ${response.request}');
Log.print('response: ${response.body}');
- Log.print('response: ${payload}');
+ // if (response.statusCode == 200) {
var jsonData = jsonDecode(response.body);
if (jsonData['status'] == 'success') {
return response.body;
@@ -103,7 +102,6 @@ class CRUD {
var json = jsonDecode(extractedString);
var textValues = extractTextFromLines(json);
- Log.print('textValues: ${textValues}');
// await Get.put(AI()).geminiAiExtraction(prompt, textValues);
await Get.put(AI()).anthropicAI(textValues, prompt, imagePath);
}
@@ -147,7 +145,6 @@ class CRUD {
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
- // Log.print(
// 'response.stream.bytesToString(): ${await response.stream.bytesToString()}');
return await response.stream.bytesToString();
} else {}
@@ -203,9 +200,6 @@ class CRUD {
'Authorization': 'Bearer ${AK.secretKeyStripe}',
},
);
- // Log.print('response: ${response.request}');
- // Log.print('response: ${response.body}');
- // Log.print('response: ${payload}');
if (response.statusCode == 200) {
return response.body;
} else {}
@@ -229,11 +223,6 @@ class CRUD {
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
},
);
- Log.print('response: ${response.request}');
- Log.print('response: ${response.body}');
- // Log.print('response: ${response.statusCode}');
- // Log.print('response: ${response.reasonPhrase}');
- Log.print('response: ${payload}');
var jsonData = jsonDecode(response.body);
if (response.statusCode == 200) {
if (jsonData['status'] == 'success') {
diff --git a/lib/controller/functions/face_detect.dart b/lib/controller/functions/face_detect.dart
index 7742b2b..798307b 100644
--- a/lib/controller/functions/face_detect.dart
+++ b/lib/controller/functions/face_detect.dart
@@ -1,7 +1,7 @@
import 'dart:convert';
-import 'package:SEFER/constant/api_key.dart';
-import 'package:SEFER/constant/box_name.dart';
-import 'package:SEFER/main.dart';
+import 'package:sefer_driver/constant/api_key.dart';
+import 'package:sefer_driver/constant/box_name.dart';
+import 'package:sefer_driver/main.dart';
import 'package:http/http.dart' as http;
import '../../constant/links.dart';
diff --git a/lib/controller/functions/gemeni.dart b/lib/controller/functions/gemeni.dart
index ea207eb..af27198 100644
--- a/lib/controller/functions/gemeni.dart
+++ b/lib/controller/functions/gemeni.dart
@@ -1,17 +1,21 @@
+import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'dart:math';
-import 'package:SEFER/constant/box_name.dart';
-import 'package:SEFER/constant/info.dart';
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/constant/style.dart';
-import 'package:SEFER/controller/auth/captin/login_captin_controller.dart';
-import 'package:SEFER/controller/functions/crud.dart';
-import 'package:SEFER/controller/functions/device_info.dart';
-import 'package:SEFER/main.dart';
-import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart';
-import 'package:SEFER/views/widgets/error_snakbar.dart';
-import 'package:SEFER/views/widgets/mydialoug.dart';
+import 'package:sefer_driver/constant/box_name.dart';
+import 'package:sefer_driver/constant/info.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/constant/style.dart';
+import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart';
+import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
+import 'package:sefer_driver/controller/firebase/local_notification.dart';
+import 'package:sefer_driver/controller/functions/crud.dart';
+import 'package:sefer_driver/controller/functions/device_info.dart';
+import 'package:sefer_driver/controller/notification/notification_captain_controller.dart';
+import 'package:sefer_driver/main.dart';
+import 'package:sefer_driver/views/home/Captin/home_captain/home_captin.dart';
+import 'package:sefer_driver/views/widgets/error_snakbar.dart';
+import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:image_cropper/image_cropper.dart';
@@ -50,6 +54,31 @@ class AI extends GetxController {
bool isInviteDriverFound = false;
final invitationCodeController = TextEditingController();
final formKey = GlobalKey();
+ bool isTimerComplete = false;
+ double progressValue = 1.0;
+ int remainingSeconds = 30;
+
+ void startTimer() {
+ Timer.periodic(const Duration(seconds: 1), (timer) {
+ if (remainingSeconds == 0) {
+ timer.cancel();
+ isTimerComplete = true;
+ update(); // Notify the UI
+ } else {
+ remainingSeconds--;
+ progressValue = remainingSeconds / 30.0; // Update progress
+ update(); // Notify the UI
+ }
+ });
+ }
+
+ void resetTimer() {
+ isTimerComplete = false;
+ progressValue = 1.0;
+ remainingSeconds = 40;
+ update(); // Notify the UI
+ startTimer(); // Restart the timer
+ }
void setApproved() {
approved = true;
@@ -57,17 +86,32 @@ class AI extends GetxController {
}
Future updateInvitationCodeFromRegister() async {
- if (formKey.currentState!.validate()) {
- var res = await CRUD().post(
- link: AppLink.updateInvitationCodeFromRegister,
- payload: {"inviteCode": invitationCodeController.text});
- if (res != 'failure') {
- isInviteDriverFound = true;
- update();
- mySnackbarSuccess("Code approved".tr);
- } else {
- mySnackeBarError("Code not approved".tr);
- }
+ var res = await CRUD().post(
+ link: AppLink.updateDriverInvitationDirectly,
+ payload: {
+ "inviterDriverPhone": '+2${box.read(BoxName.phoneDriver).toString()}',
+ "driverId": box.read(BoxName.driverID).toString(),
+ },
+ );
+
+ if (res != 'failure') {
+ isInviteDriverFound = true;
+ update();
+ // mySnackbarSuccess("Code approved".tr); // Localized success message
+ box.write(BoxName.isInstall, '1');
+ NotificationController().showNotification(
+ "Code approved".tr, "Code approved".tr, 'tone2', '');
+ // Notification text with dynamic token
+ FirebaseMessagesController().sendNotificationToDriverMAP(
+ 'You have received a gift token!'.tr,
+ 'for '.tr + box.read(BoxName.phoneDriver).toString(),
+ jsonDecode(res)['message'][0]['token'].toString(),
+ [],
+ 'tone2', // Type of notification
+ );
+ } else {
+ // mySnackeBarError(
+ // "You dont have invitation code".tr); // Localized error message
}
}
@@ -397,7 +441,7 @@ class AI extends GetxController {
}
}
- addCriminalDeocuments() async {
+ addCriminalDocuments() async {
var res = await CRUD().post(link: AppLink.addCriminalDocuments, payload: {
"driverId": box.read(BoxName.driverID),
"IssueDate": responseCriminalRecordEgypt['IssueDate'],
diff --git a/lib/controller/functions/llama_ai.dart b/lib/controller/functions/llama_ai.dart
index 6a66d73..972803b 100644
--- a/lib/controller/functions/llama_ai.dart
+++ b/lib/controller/functions/llama_ai.dart
@@ -1,8 +1,8 @@
import 'dart:convert';
-import 'package:SEFER/constant/links.dart';
-import 'package:SEFER/controller/functions/crud.dart';
-import 'package:SEFER/controller/functions/gemeni.dart';
+import 'package:sefer_driver/constant/links.dart';
+import 'package:sefer_driver/controller/functions/crud.dart';
+import 'package:sefer_driver/controller/functions/gemeni.dart';
class LlamaAi {
Future