diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
index 4c04ec4..3d6d637 100644
--- a/android/app/build.gradle.kts
+++ b/android/app/build.gradle.kts
@@ -28,7 +28,7 @@ if (keystorePropertiesFile.exists()) {
android {
namespace = "com.service_intaleq"
compileSdk = 36
- ndkVersion = "27.0.12077973"
+ // ndkVersion = "27.0.12077973"
defaultConfig {
applicationId = "com.service_intaleq"
@@ -39,7 +39,7 @@ android {
multiDexEnabled = true
ndk {
- abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
+ abiFilters += listOf("armeabi-v7a", "arm64-v8a")
}
}
@@ -67,6 +67,7 @@ android {
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
+ isCoreLibraryDesugaringEnabled = true
}
kotlinOptions {
@@ -76,7 +77,7 @@ android {
externalNativeBuild {
cmake {
path = file("src/main/cpp/CMakeLists.txt")
- version = "3.31.5"
+ version = "3.22.1"
}
}
}
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index a7f3359..848f5bc 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -1,54 +1,97 @@
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ android:windowSoftInputMode="adjustResize"
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode">
+
+
+ android:resource="@style/NormalTheme" />
+
+
-
+
+
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ios/Podfile b/ios/Podfile
index e549ee2..6649374 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
-# platform :ios, '12.0'
+platform :ios, '15.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
new file mode 100644
index 0000000..d080027
--- /dev/null
+++ b/ios/Podfile.lock
@@ -0,0 +1,297 @@
+PODS:
+ - AppAuth (2.0.0):
+ - AppAuth/Core (= 2.0.0)
+ - AppAuth/ExternalUserAgent (= 2.0.0)
+ - AppAuth/Core (2.0.0)
+ - AppAuth/ExternalUserAgent (2.0.0):
+ - AppAuth/Core
+ - AppCheckCore (11.2.0):
+ - GoogleUtilities/Environment (~> 8.0)
+ - GoogleUtilities/UserDefaults (~> 8.0)
+ - PromisesObjC (~> 2.4)
+ - device_info_plus (0.0.1):
+ - Flutter
+ - Firebase/Auth (12.0.0):
+ - Firebase/CoreOnly
+ - FirebaseAuth (~> 12.0.0)
+ - Firebase/CoreOnly (12.0.0):
+ - FirebaseCore (~> 12.0.0)
+ - Firebase/Messaging (12.0.0):
+ - Firebase/CoreOnly
+ - FirebaseMessaging (~> 12.0.0)
+ - firebase_auth (6.0.0):
+ - Firebase/Auth (= 12.0.0)
+ - firebase_core
+ - Flutter
+ - firebase_core (4.0.0):
+ - Firebase/CoreOnly (= 12.0.0)
+ - Flutter
+ - firebase_messaging (16.0.0):
+ - Firebase/Messaging (= 12.0.0)
+ - firebase_core
+ - Flutter
+ - FirebaseAppCheckInterop (12.0.0)
+ - FirebaseAuth (12.0.0):
+ - FirebaseAppCheckInterop (~> 12.0.0)
+ - FirebaseAuthInterop (~> 12.0.0)
+ - FirebaseCore (~> 12.0.0)
+ - FirebaseCoreExtension (~> 12.0.0)
+ - GoogleUtilities/AppDelegateSwizzler (~> 8.1)
+ - GoogleUtilities/Environment (~> 8.1)
+ - GTMSessionFetcher/Core (< 6.0, >= 3.4)
+ - RecaptchaInterop (~> 101.0)
+ - FirebaseAuthInterop (12.0.0)
+ - FirebaseCore (12.0.0):
+ - FirebaseCoreInternal (~> 12.0.0)
+ - GoogleUtilities/Environment (~> 8.1)
+ - GoogleUtilities/Logger (~> 8.1)
+ - FirebaseCoreExtension (12.0.0):
+ - FirebaseCore (~> 12.0.0)
+ - FirebaseCoreInternal (12.0.0):
+ - "GoogleUtilities/NSData+zlib (~> 8.1)"
+ - FirebaseInstallations (12.0.0):
+ - FirebaseCore (~> 12.0.0)
+ - GoogleUtilities/Environment (~> 8.1)
+ - GoogleUtilities/UserDefaults (~> 8.1)
+ - PromisesObjC (~> 2.4)
+ - FirebaseMessaging (12.0.0):
+ - FirebaseCore (~> 12.0.0)
+ - FirebaseInstallations (~> 12.0.0)
+ - GoogleDataTransport (~> 10.1)
+ - GoogleUtilities/AppDelegateSwizzler (~> 8.1)
+ - GoogleUtilities/Environment (~> 8.1)
+ - GoogleUtilities/Reachability (~> 8.1)
+ - GoogleUtilities/UserDefaults (~> 8.1)
+ - nanopb (~> 3.30910.0)
+ - Flutter (1.0.0)
+ - flutter_image_compress_common (1.0.0):
+ - Flutter
+ - Mantle
+ - SDWebImage
+ - SDWebImageWebPCoder
+ - flutter_local_notifications (0.0.1):
+ - Flutter
+ - flutter_secure_storage (6.0.0):
+ - Flutter
+ - google_sign_in_ios (0.0.1):
+ - Flutter
+ - FlutterMacOS
+ - GoogleSignIn (~> 9.0)
+ - GTMSessionFetcher (>= 3.4.0)
+ - GoogleDataTransport (10.1.0):
+ - nanopb (~> 3.30910.0)
+ - PromisesObjC (~> 2.4)
+ - GoogleSignIn (9.0.0):
+ - AppAuth (~> 2.0)
+ - AppCheckCore (~> 11.0)
+ - GTMAppAuth (~> 5.0)
+ - GTMSessionFetcher/Core (~> 3.3)
+ - GoogleUtilities/AppDelegateSwizzler (8.1.0):
+ - GoogleUtilities/Environment
+ - GoogleUtilities/Logger
+ - GoogleUtilities/Network
+ - GoogleUtilities/Privacy
+ - GoogleUtilities/Environment (8.1.0):
+ - GoogleUtilities/Privacy
+ - GoogleUtilities/Logger (8.1.0):
+ - GoogleUtilities/Environment
+ - GoogleUtilities/Privacy
+ - GoogleUtilities/Network (8.1.0):
+ - GoogleUtilities/Logger
+ - "GoogleUtilities/NSData+zlib"
+ - GoogleUtilities/Privacy
+ - GoogleUtilities/Reachability
+ - "GoogleUtilities/NSData+zlib (8.1.0)":
+ - GoogleUtilities/Privacy
+ - GoogleUtilities/Privacy (8.1.0)
+ - GoogleUtilities/Reachability (8.1.0):
+ - GoogleUtilities/Logger
+ - GoogleUtilities/Privacy
+ - GoogleUtilities/UserDefaults (8.1.0):
+ - GoogleUtilities/Logger
+ - GoogleUtilities/Privacy
+ - GTMAppAuth (5.0.0):
+ - AppAuth/Core (~> 2.0)
+ - GTMSessionFetcher/Core (< 4.0, >= 3.3)
+ - GTMSessionFetcher (3.5.0):
+ - GTMSessionFetcher/Full (= 3.5.0)
+ - GTMSessionFetcher/Core (3.5.0)
+ - GTMSessionFetcher/Full (3.5.0):
+ - GTMSessionFetcher/Core
+ - image_cropper (0.0.4):
+ - Flutter
+ - TOCropViewController (~> 2.7.4)
+ - image_picker_ios (0.0.1):
+ - Flutter
+ - libwebp (1.5.0):
+ - libwebp/demux (= 1.5.0)
+ - libwebp/mux (= 1.5.0)
+ - libwebp/sharpyuv (= 1.5.0)
+ - libwebp/webp (= 1.5.0)
+ - libwebp/demux (1.5.0):
+ - libwebp/webp
+ - libwebp/mux (1.5.0):
+ - libwebp/demux
+ - libwebp/sharpyuv (1.5.0)
+ - libwebp/webp (1.5.0):
+ - libwebp/sharpyuv
+ - Mantle (2.2.0):
+ - Mantle/extobjc (= 2.2.0)
+ - Mantle/extobjc (2.2.0)
+ - nanopb (3.30910.0):
+ - nanopb/decode (= 3.30910.0)
+ - nanopb/encode (= 3.30910.0)
+ - nanopb/decode (3.30910.0)
+ - nanopb/encode (3.30910.0)
+ - path_provider_foundation (0.0.1):
+ - Flutter
+ - FlutterMacOS
+ - permission_handler_apple (9.3.0):
+ - Flutter
+ - PromisesObjC (2.4.0)
+ - RecaptchaInterop (101.0.0)
+ - SDWebImage (5.21.2):
+ - SDWebImage/Core (= 5.21.2)
+ - SDWebImage/Core (5.21.2)
+ - SDWebImageWebPCoder (0.14.6):
+ - libwebp (~> 1.0)
+ - SDWebImage/Core (~> 5.17)
+ - share_plus (0.0.1):
+ - Flutter
+ - sqflite_darwin (0.0.4):
+ - Flutter
+ - FlutterMacOS
+ - TOCropViewController (2.7.4)
+ - url_launcher_ios (0.0.1):
+ - Flutter
+ - vibration (3.0.0):
+ - Flutter
+
+DEPENDENCIES:
+ - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
+ - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`)
+ - firebase_core (from `.symlinks/plugins/firebase_core/ios`)
+ - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
+ - Flutter (from `Flutter`)
+ - flutter_image_compress_common (from `.symlinks/plugins/flutter_image_compress_common/ios`)
+ - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
+ - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
+ - google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/darwin`)
+ - image_cropper (from `.symlinks/plugins/image_cropper/ios`)
+ - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
+ - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
+ - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
+ - share_plus (from `.symlinks/plugins/share_plus/ios`)
+ - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`)
+ - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
+ - vibration (from `.symlinks/plugins/vibration/ios`)
+
+SPEC REPOS:
+ trunk:
+ - AppAuth
+ - AppCheckCore
+ - Firebase
+ - FirebaseAppCheckInterop
+ - FirebaseAuth
+ - FirebaseAuthInterop
+ - FirebaseCore
+ - FirebaseCoreExtension
+ - FirebaseCoreInternal
+ - FirebaseInstallations
+ - FirebaseMessaging
+ - GoogleDataTransport
+ - GoogleSignIn
+ - GoogleUtilities
+ - GTMAppAuth
+ - GTMSessionFetcher
+ - libwebp
+ - Mantle
+ - nanopb
+ - PromisesObjC
+ - RecaptchaInterop
+ - SDWebImage
+ - SDWebImageWebPCoder
+ - TOCropViewController
+
+EXTERNAL SOURCES:
+ device_info_plus:
+ :path: ".symlinks/plugins/device_info_plus/ios"
+ firebase_auth:
+ :path: ".symlinks/plugins/firebase_auth/ios"
+ firebase_core:
+ :path: ".symlinks/plugins/firebase_core/ios"
+ firebase_messaging:
+ :path: ".symlinks/plugins/firebase_messaging/ios"
+ Flutter:
+ :path: Flutter
+ flutter_image_compress_common:
+ :path: ".symlinks/plugins/flutter_image_compress_common/ios"
+ flutter_local_notifications:
+ :path: ".symlinks/plugins/flutter_local_notifications/ios"
+ flutter_secure_storage:
+ :path: ".symlinks/plugins/flutter_secure_storage/ios"
+ google_sign_in_ios:
+ :path: ".symlinks/plugins/google_sign_in_ios/darwin"
+ image_cropper:
+ :path: ".symlinks/plugins/image_cropper/ios"
+ image_picker_ios:
+ :path: ".symlinks/plugins/image_picker_ios/ios"
+ path_provider_foundation:
+ :path: ".symlinks/plugins/path_provider_foundation/darwin"
+ permission_handler_apple:
+ :path: ".symlinks/plugins/permission_handler_apple/ios"
+ share_plus:
+ :path: ".symlinks/plugins/share_plus/ios"
+ sqflite_darwin:
+ :path: ".symlinks/plugins/sqflite_darwin/darwin"
+ url_launcher_ios:
+ :path: ".symlinks/plugins/url_launcher_ios/ios"
+ vibration:
+ :path: ".symlinks/plugins/vibration/ios"
+
+SPEC CHECKSUMS:
+ AppAuth: 1c1a8afa7e12f2ec3a294d9882dfa5ab7d3cb063
+ AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f
+ device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe
+ Firebase: 800d487043c0557d9faed71477a38d9aafb08a41
+ firebase_auth: 5a5603bbe7fc673f88b7c652bf9c41d6c742b545
+ firebase_core: 633e1851ffe1b9ab875f6467a4f574c79cef02e4
+ firebase_messaging: d17feef781edc84ebefe62624fb384358ad96361
+ FirebaseAppCheckInterop: c848d06a04030c9858ef0ae555b82035dbe470d0
+ FirebaseAuth: 654e4de84787c45d7265599a651038e854ccb439
+ FirebaseAuthInterop: 002da671896af5e8879ae117dc604ed240b86e80
+ FirebaseCore: 055f4ab117d5964158c833f3d5e7ec6d91648d4a
+ FirebaseCoreExtension: 639afb3de6abd611952be78a794c54a47fa0f361
+ FirebaseCoreInternal: dedc28e569a4be85f38f3d6af1070a2e12018d55
+ FirebaseInstallations: d4c7c958f99c8860d7fcece786314ae790e2f988
+ FirebaseMessaging: af49f8d7c0a3d2a017d9302c80946f45a7777dde
+ Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
+ flutter_image_compress_common: 1697a328fd72bfb335507c6bca1a65fa5ad87df1
+ flutter_local_notifications: a5a732f069baa862e728d839dd2ebb904737effb
+ flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13
+ google_sign_in_ios: 205742c688aea0e64db9da03c33121694a365109
+ GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
+ GoogleSignIn: c7f09cfbc85a1abf69187be091997c317cc33b77
+ GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
+ GTMAppAuth: 217a876b249c3c585a54fd6f73e6b58c4f5c4238
+ GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
+ image_cropper: c4326ea50132b1e1564499e5d32a84f01fb03537
+ image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
+ libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
+ Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d
+ nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
+ path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
+ permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
+ PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
+ RecaptchaInterop: 11e0b637842dfb48308d242afc3f448062325aba
+ SDWebImage: 9f177d83116802728e122410fb25ad88f5c7608a
+ SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380
+ share_plus: de6030e33b4e106470e09322d87cf2a4258d2d1d
+ sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
+ TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654
+ url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
+ vibration: 69774ad57825b11c951ee4c46155f455d7a592ce
+
+PODFILE CHECKSUM: 53a6aebc29ccee84c41f92f409fc20cd4ca011f1
+
+COCOAPODS: 1.16.2
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 9529e80..f57f20b 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -14,7 +14,9 @@
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
+ AF0AF264D72AAB5C072EBF63 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D353C14D406BEA76DDC4CEDD /* Pods_Runner.framework */; };
ED1F6F4084CE38C57593745C /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = F533C517F5928BDCFDC9295F /* GoogleService-Info.plist */; };
+ F6E92F32EE05FDB601BF08FD /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A63E609133A89EEF042220B /* Pods_RunnerTests.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -43,6 +45,8 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
+ 1A63E609133A89EEF042220B /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 28D4768B792FCD16018172CA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; };
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
@@ -56,6 +60,12 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ A16DB7C708FA3D7E4D68FD93 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; };
+ B8A00C457D5850C21DE865E2 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
+ BF0866B0BBB709298D77AE01 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; };
+ D34871C8E2C1B2113E855908 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
+ D353C14D406BEA76DDC4CEDD /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ EEAEE25FE2EFA1AE050FF002 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; };
F533C517F5928BDCFDC9295F /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; };
/* End PBXFileReference section */
@@ -64,6 +74,15 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ AF0AF264D72AAB5C072EBF63 /* Pods_Runner.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ DF4E3F6FDE887838D39DB349 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ F6E92F32EE05FDB601BF08FD /* Pods_RunnerTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -78,6 +97,29 @@
path = RunnerTests;
sourceTree = "";
};
+ 3AF11E78240F2F4936A829ED /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D353C14D406BEA76DDC4CEDD /* Pods_Runner.framework */,
+ 1A63E609133A89EEF042220B /* Pods_RunnerTests.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 92F26F512BB0C437BB6F8B84 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ 28D4768B792FCD16018172CA /* Pods-Runner.debug.xcconfig */,
+ D34871C8E2C1B2113E855908 /* Pods-Runner.release.xcconfig */,
+ B8A00C457D5850C21DE865E2 /* Pods-Runner.profile.xcconfig */,
+ A16DB7C708FA3D7E4D68FD93 /* Pods-RunnerTests.debug.xcconfig */,
+ BF0866B0BBB709298D77AE01 /* Pods-RunnerTests.release.xcconfig */,
+ EEAEE25FE2EFA1AE050FF002 /* Pods-RunnerTests.profile.xcconfig */,
+ );
+ name = Pods;
+ path = Pods;
+ sourceTree = "";
+ };
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
@@ -97,6 +139,8 @@
97C146EF1CF9000F007C117D /* Products */,
331C8082294A63A400263BE5 /* RunnerTests */,
F533C517F5928BDCFDC9295F /* GoogleService-Info.plist */,
+ 92F26F512BB0C437BB6F8B84 /* Pods */,
+ 3AF11E78240F2F4936A829ED /* Frameworks */,
);
sourceTree = "";
};
@@ -131,8 +175,10 @@
isa = PBXNativeTarget;
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = (
+ 84654B32CEBA94A3AB98B1F1 /* [CP] Check Pods Manifest.lock */,
331C807D294A63A400263BE5 /* Sources */,
331C807F294A63A400263BE5 /* Resources */,
+ DF4E3F6FDE887838D39DB349 /* Frameworks */,
);
buildRules = (
);
@@ -148,12 +194,15 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
+ A2F48F17CEBC9FC6CBB4FD8B /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
+ 5D3AD08720B484D33EA3F7F2 /* [CP] Embed Pods Frameworks */,
+ 639726CC45A829220CA89AB2 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -242,6 +291,62 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
+ 5D3AD08720B484D33EA3F7F2 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 639726CC45A829220CA89AB2 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 84654B32CEBA94A3AB98B1F1 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@@ -257,6 +362,28 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
+ A2F48F17CEBC9FC6CBB4FD8B /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -383,6 +510,7 @@
};
331C8088294A63A400263BE5 /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = A16DB7C708FA3D7E4D68FD93 /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
@@ -400,6 +528,7 @@
};
331C8089294A63A400263BE5 /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = BF0866B0BBB709298D77AE01 /* Pods-RunnerTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
@@ -415,6 +544,7 @@
};
331C808A294A63A400263BE5 /* Profile */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = EEAEE25FE2EFA1AE050FF002 /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata
index 1d526a1..21a3cc1 100644
--- a/ios/Runner.xcworkspace/contents.xcworkspacedata
+++ b/ios/Runner.xcworkspace/contents.xcworkspacedata
@@ -4,4 +4,7 @@
+
+
diff --git a/lib/constant/box_name.dart b/lib/constant/box_name.dart
index a37d864..e88a7c3 100644
--- a/lib/constant/box_name.dart
+++ b/lib/constant/box_name.dart
@@ -8,6 +8,7 @@ class BoxName {
static const String jwt = "jwt";
static const String fingerPrint = "fingerPrint";
static const String payMobApikey = "payMobApikey";
+ static const String employeename = "employeename";
static const String refreshToken = "refreshToken";
static const String tokenParent = "tokenParent";
static const String lang = "lang";
diff --git a/lib/constant/links.dart b/lib/constant/links.dart
index 8842af6..af56266 100644
--- a/lib/constant/links.dart
+++ b/lib/constant/links.dart
@@ -9,12 +9,20 @@ class AppLink {
static final String seferAlexandriaServer = Env.seferAlexandriaServer;
static final String seferCairoServer = Env.seferCairoServer;
static final String seferGizaServer = Env.seferGizaServer;
+ static String paymentServer = 'https://walletintaleq.intaleq.xyz/v1/main';
+ static String location = 'https://api.intaleq.xyz/intaleq/ride/location';
+ static String locationServer =
+ 'https://location.intaleq.xyz/intaleq/ride/location';
+ static String seferPaymentServer0 = box.read('seferPaymentServer');
+
+ static final String endPoint = 'https://api.intaleq.xyz/intaleq';
+ static final String rideServer = 'https://rides.intaleq.xyz/intaleq';
// static final String server = Env.serverPHP;
static String getBestDriver = "$server/Admin/driver/getBestDriver.php";
- static final String server = 'https://intaleq.xyz/intaleq';
+ static final String server = 'https://api.intaleq.xyz/intaleq';
static final String jwtService = '$server/jwtService.php';
- static final String endPoint = box.read(BoxName.serverChosen);
+ // static final String endPoint = box.read(BoxName.serverChosen);
// static final String server = Env.seferCairoServer;
// static const String server = "https://sefer.click/sefer/sefer";
static String googleMapsLink = 'https://maps.googleapis.com/maps/api/';
@@ -46,16 +54,26 @@ class AppLink {
static String getAccount = "$authCaptin/getAccount.php";
static String test = "$server/test.php";
static String serviceApp = "$server/serviceapp";
- static String getPassengersByPhone =
- "$server/serviceApp/getPassengersByPhone.php";
+ static String getPassengersByPhone = "$serviceApp/getPassengersByPhone.php";
static String getDriverByPhone = "$serviceApp/getDriverByPhone.php";
+ static String getDriverByNational = "$serviceApp/getDriverByNational.php";
+ static String updateDriver = "$serviceApp/updateDriver.php";
+ static String updateDriverToActive = "$serviceApp/updateDriverToActive.php";
static String getNewDriverRegister = "$serviceApp/getNewDriverRegister.php";
+ static String getDriversPhoneNotComplete =
+ "$serviceApp/getDriversPhoneNotComplete.php";
static String addWelcomeDriverNote = "$serviceApp/addWelcomeDriverNote.php";
static String getDriverNotCompleteRegistration =
"$serviceApp/getDriverNotCompleteRegistration.php";
+ static String deleteDriverNotCompleteRegistration =
+ "$serviceApp/deleteDriverNotCompleteRegistration.php";
+ static String getDriversWaitingActive =
+ "$serviceApp/getDriversWaitingActive.php";
static String getPassengersNotCompleteRegistration =
"$serviceApp/getPassengersNotCompleteRegistration.php";
static String addNotesDriver = "$serviceApp/addNotesDriver.php";
+ static String getDriverDetailsForActivate =
+ "$serviceApp/getDriverDetailsForActivate.php";
static String getCarPlateNotEdit = "$serviceApp/getCarPlateNotEdit.php";
static String getdriverWithoutCar = "$serviceApp/getdriverWithoutCar.php";
static String getBestDriverGiza =
diff --git a/lib/controller/firbase_messge.dart b/lib/controller/firbase_messge.dart
new file mode 100644
index 0000000..bccff4d
--- /dev/null
+++ b/lib/controller/firbase_messge.dart
@@ -0,0 +1,105 @@
+import 'dart:io';
+import 'package:firebase_messaging/firebase_messaging.dart';
+import 'package:get/get.dart';
+import 'package:service/controller/local_notification.dart';
+import '../../constant/box_name.dart';
+import '../../main.dart';
+import '../../print.dart';
+
+class FirebaseMessagesController extends GetxController {
+ final fcmToken = FirebaseMessaging.instance;
+
+ List tokens = [];
+ List dataTokens = [];
+ late String driverID;
+ late String driverToken;
+ NotificationSettings? notificationSettings;
+
+ Future getNotificationSettings() async {
+ // Get the current notification settings
+ NotificationSettings? notificationSettings =
+ await FirebaseMessaging.instance.getNotificationSettings();
+ 'Notification authorization status: ${notificationSettings.authorizationStatus}';
+
+ // Call the update function if needed
+ update();
+ }
+
+ Future requestFirebaseMessagingPermission() async {
+ FirebaseMessaging messaging = FirebaseMessaging.instance;
+
+ // Check if the platform is Android
+ if (Platform.isAndroid) {
+ // Request permission for Android
+ await messaging.requestPermission();
+ } else if (Platform.isIOS) {
+ // Request permission for iOS
+ NotificationSettings settings = await messaging.requestPermission(
+ alert: true,
+ announcement: true,
+ badge: true,
+ carPlay: true,
+ criticalAlert: true,
+ provisional: false,
+ sound: true,
+ );
+ messaging.setForegroundNotificationPresentationOptions(
+ alert: true, badge: true, sound: true);
+ }
+ }
+
+ // NotificationController notificationController =
+ // Get.isRegistered()
+ // ? Get.find()
+ // : Get.put(NotificationController());
+
+ Future getToken() async {
+ fcmToken.getToken().then((token) {
+ // Log.print('fcmToken: ${token}');
+ box.write(BoxName.tokenFCM, (token.toString()));
+ });
+ // 🔹 الاشتراك في topic
+ await fcmToken.subscribeToTopic("service"); // أو "users" حسب نوع المستخدم
+ print("Subscribed to 'service' topic ✅");
+
+ FirebaseMessaging.onMessage.listen((RemoteMessage message) {
+ // If the app is in the background or terminated, show a system tray message
+ RemoteNotification? notification = message.notification;
+ AndroidNotification? android = notification?.android;
+ // if (notification != null && android != null) {
+ if (message.data.isNotEmpty && message.notification != null) {
+ fireBaseTitles(message);
+ }
+ });
+ FirebaseMessaging.onBackgroundMessage((RemoteMessage message) async {
+ // Handle background message
+ if (message.data.isNotEmpty && message.notification != null) {
+ fireBaseTitles(message);
+ }
+ });
+
+ FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
+ if (message.data.isNotEmpty && message.notification != null) {
+ fireBaseTitles(message);
+ }
+ });
+ }
+
+ Future fireBaseTitles(RemoteMessage message) async {
+ // [!! تعديل !!]
+ // اقرأ "النوع" من حمولة البيانات، وليس من العنوان
+ String category = message.data['category'] ?? '';
+
+ // اقرأ العنوان (للعرض)
+ String title = message.notification?.title ?? '';
+ String body = message.notification?.body ?? '';
+
+ if (category == 'new_service_request') {
+ // <-- مثال: كان 'Order'.tr
+ Log.print('message: ${message}');
+ if (Platform.isAndroid) {
+ NotificationController().showNotification(title, body, 'Order');
+ }
+ }
+ }
+}
diff --git a/lib/controller/functions/crud.dart b/lib/controller/functions/crud.dart
index d7e1c3c..66e74c2 100644
--- a/lib/controller/functions/crud.dart
+++ b/lib/controller/functions/crud.dart
@@ -17,35 +17,25 @@ import 'initilize.dart';
class CRUD {
var dev;
- getJWT() async {
+ getJWT(String pass, email) async {
var dev = Platform.isAndroid ? 'android' : 'ios';
var payload = {
- 'password': AK.passnpassenger,
- // 'email': box.read(BoxName.email),
+ 'password': box.read(BoxName.password) ?? pass,
+ 'email': box.read(BoxName.email) ?? email,
'aud': '${AK.allowed}$dev',
};
- // if (box.read(BoxName.firstTimeLoadKey).toString() != 'false') {
var response0 = await http.post(
Uri.parse(AppLink.jwtService),
body: payload,
);
- print(response0.body);
- print(response0.request);
+
if (response0.statusCode == 200) {
final decodedResponse1 = jsonDecode(response0.body);
final jwt = decodedResponse1['jwt'];
+ Log.print('jwt: ${jwt}');
box.write(BoxName.jwt, X.c(X.c(X.c(jwt, cn), cC), cs));
-
- // await AppInitializer().getAIKey(Service.keyOfApp);
- // await AppInitializer().getAIKey(Service.initializationVector);
- // await Future.delayed(Duration.zero);
- await EncryptionHelper.initialize();
-
- // await AppInitializer().getAIKey(Service.FCM_PRIVATE_KEY);
- box.write(BoxName.firstTimeLoadKey, 'false');
- // await AppInitializer().getKey();
- } else {}
+ }
}
Future get({
@@ -61,7 +51,7 @@ class CRUD {
.split(AppInformation.addd)[0]);
if (isTokenExpired) {
- await getJWT();
+ await getJWT(box.read(BoxName.password), box.read(BoxName.email));
}
var response = await http.post(
url,
@@ -72,10 +62,13 @@ class CRUD {
'Bearer ${X.r(X.r(X.r(box.read(BoxName.jwt), cn), cC), cs).toString().split(AppInformation.addd)[0]}'
},
);
- print(response.request);
- Log.print('response.body: ${response.body}');
- print(payload); // if (response.statusCode == 200) {
+ Log.print('esponse.body: ${response.body}');
+ Log.print('esponse.req: ${response.request}');
+ Log.print('payload: ${payload}');
+
var jsonData = jsonDecode(response.body);
+
+ Log.print('jsonData: ${jsonData}');
if (jsonData['status'] == 'success') {
return response.body;
}
@@ -179,7 +172,7 @@ class CRUD {
.split(AppInformation.addd)[0]);
if (isTokenExpired) {
- await getJWT();
+ await getJWT(box.read(BoxName.password), box.read(BoxName.email));
}
var response = await http.post(
url,
@@ -190,10 +183,10 @@ class CRUD {
'Bearer ${X.r(X.r(X.r(box.read(BoxName.jwt), cn), cC), cs).toString().split(AppInformation.addd)[0]}'
},
);
- print(response.request);
- Log.print('response.body: ${response.body}');
- print(payload);
+ Log.print('req: ${response.request}');
+ Log.print('res: ${response.body}');
var jsonData = jsonDecode(response.body);
+
if (response.statusCode == 200) {
if (jsonData['status'] == 'success') {
return response.body;
diff --git a/lib/controller/functions/initilize.dart b/lib/controller/functions/initilize.dart
index 26b1f25..7432739 100644
--- a/lib/controller/functions/initilize.dart
+++ b/lib/controller/functions/initilize.dart
@@ -15,19 +15,19 @@ import '../../print.dart';
class AppInitializer {
List