This commit is contained in:
Hamza-Ayed
2024-09-15 12:53:55 +03:00
parent 9752d61230
commit ad7083f93a
9 changed files with 491 additions and 429 deletions

View File

@@ -183,7 +183,8 @@ dependencies {
implementation "com.stripe:stripe-android:20.47.0" implementation "com.stripe:stripe-android:20.47.0"
implementation 'com.stripe:paymentsheet:20.47.0' implementation 'com.stripe:paymentsheet:20.47.0'
// If push provisioning is needed, make sure you have the correct version: // If push provisioning is needed, make sure you have the correct version:
implementation "com.stripe:stripe-android-pushprovisioning:VERSION" // Replace VERSION with the correct one. // implementation "com.stripe:stripe-android-pushprovisioning:VERSION" // Replace VERSION with the correct one.
} }

30
android/app/proguard-rules.pro vendored Normal file
View File

@@ -0,0 +1,30 @@
# Suppress warnings for specific Google ML Kit and Stripe classes
-dontwarn com.google.mlkit.vision.text.chinese.ChineseTextRecognizerOptions$Builder
-dontwarn com.google.mlkit.vision.text.chinese.ChineseTextRecognizerOptions
-dontwarn com.google.mlkit.vision.text.devanagari.DevanagariTextRecognizerOptions$Builder
-dontwarn com.google.mlkit.vision.text.devanagari.DevanagariTextRecognizerOptions
-dontwarn com.google.mlkit.vision.text.japanese.JapaneseTextRecognizerOptions$Builder
-dontwarn com.google.mlkit.vision.text.japanese.JapaneseTextRecognizerOptions
-dontwarn com.google.mlkit.vision.text.korean.KoreanTextRecognizerOptions$Builder
-dontwarn com.google.mlkit.vision.text.korean.KoreanTextRecognizerOptions
-dontwarn com.stripe.android.pushProvisioning.PushProvisioningActivity$g
-dontwarn com.stripe.android.pushProvisioning.PushProvisioningActivityStarter$Args
-dontwarn com.stripe.android.pushProvisioning.PushProvisioningActivityStarter$Error
-dontwarn com.stripe.android.pushProvisioning.PushProvisioningActivityStarter
-dontwarn com.stripe.android.pushProvisioning.PushProvisioningEphemeralKeyProvider
# Keep rules for Google ML Kit
-keep class com.google.mlkit.vision.** { *; }
-keep class com.google.mlkit.vision.text.** { *; }
-keep class com.google.mlkit.vision.text.chinese.ChineseTextRecognizerOptions { *; }
-keep class com.google.mlkit.vision.text.chinese.ChineseTextRecognizerOptions$Builder { *; }
-keep class com.google.mlkit.vision.text.devanagari.DevanagariTextRecognizerOptions { *; }
-keep class com.google.mlkit.vision.text.devanagari.DevanagariTextRecognizerOptions$Builder { *; }
-keep class com.google.mlkit.vision.text.japanese.JapaneseTextRecognizerOptions { *; }
-keep class com.google.mlkit.vision.text.japanese.JapaneseTextRecognizerOptions$Builder { *; }
-keep class com.google.mlkit.vision.text.korean.KoreanTextRecognizerOptions { *; }
-keep class com.google.mlkit.vision.text.korean.KoreanTextRecognizerOptions$Builder { *; }
# Keep rules for Stripe
-keep class com.stripe.android.** { *; }
-keep class com.stripe.android.pushProvisioning.** { *; }

View File

@@ -9,53 +9,58 @@ PODS:
- Flutter - Flutter
- device_info_plus (0.0.1): - device_info_plus (0.0.1):
- Flutter - Flutter
- Firebase/Auth (10.28.0): - Firebase/Auth (11.0.0):
- Firebase/CoreOnly - Firebase/CoreOnly
- FirebaseAuth (~> 10.28.0) - FirebaseAuth (~> 11.0.0)
- Firebase/CoreOnly (10.28.0): - Firebase/CoreOnly (11.0.0):
- FirebaseCore (= 10.28.0) - FirebaseCore (= 11.0.0)
- Firebase/Messaging (10.28.0): - Firebase/Messaging (11.0.0):
- Firebase/CoreOnly - Firebase/CoreOnly
- FirebaseMessaging (~> 10.28.0) - FirebaseMessaging (~> 11.0.0)
- firebase_auth (5.1.2): - firebase_auth (5.2.0):
- Firebase/Auth (= 10.28.0) - Firebase/Auth (= 11.0.0)
- firebase_core - firebase_core
- Flutter - Flutter
- firebase_core (3.2.0): - firebase_core (3.4.0):
- Firebase/CoreOnly (= 10.28.0) - Firebase/CoreOnly (= 11.0.0)
- Flutter - Flutter
- firebase_messaging (15.0.3): - firebase_messaging (15.1.0):
- Firebase/Messaging (= 10.28.0) - Firebase/Messaging (= 11.0.0)
- firebase_core - firebase_core
- Flutter - Flutter
- FirebaseAppCheckInterop (10.29.0) - FirebaseAppCheckInterop (11.2.0)
- FirebaseAuth (10.28.0): - FirebaseAuth (11.0.0):
- FirebaseAppCheckInterop (~> 10.17) - FirebaseAppCheckInterop (~> 11.0)
- FirebaseCore (~> 10.0) - FirebaseAuthInterop (~> 11.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.8) - FirebaseCore (~> 11.0)
- GoogleUtilities/Environment (~> 7.8) - FirebaseCoreExtension (~> 11.0)
- GTMSessionFetcher/Core (< 4.0, >= 2.1) - GoogleUtilities/AppDelegateSwizzler (~> 8.0)
- GoogleUtilities/Environment (~> 8.0)
- GTMSessionFetcher/Core (~> 3.4)
- RecaptchaInterop (~> 100.0) - RecaptchaInterop (~> 100.0)
- FirebaseCore (10.28.0): - FirebaseAuthInterop (11.2.0)
- FirebaseCoreInternal (~> 10.0) - FirebaseCore (11.0.0):
- GoogleUtilities/Environment (~> 7.12) - FirebaseCoreInternal (~> 11.0)
- GoogleUtilities/Logger (~> 7.12) - GoogleUtilities/Environment (~> 8.0)
- FirebaseCoreInternal (10.29.0): - GoogleUtilities/Logger (~> 8.0)
- "GoogleUtilities/NSData+zlib (~> 7.8)" - FirebaseCoreExtension (11.2.0):
- FirebaseInstallations (10.29.0): - FirebaseCore (~> 11.0)
- FirebaseCore (~> 10.0) - FirebaseCoreInternal (11.2.0):
- GoogleUtilities/Environment (~> 7.8) - "GoogleUtilities/NSData+zlib (~> 8.0)"
- GoogleUtilities/UserDefaults (~> 7.8) - FirebaseInstallations (11.2.0):
- PromisesObjC (~> 2.1) - FirebaseCore (~> 11.0)
- FirebaseMessaging (10.28.0): - GoogleUtilities/Environment (~> 8.0)
- FirebaseCore (~> 10.0) - GoogleUtilities/UserDefaults (~> 8.0)
- FirebaseInstallations (~> 10.0) - PromisesObjC (~> 2.4)
- GoogleDataTransport (~> 9.3) - FirebaseMessaging (11.0.0):
- GoogleUtilities/AppDelegateSwizzler (~> 7.8) - FirebaseCore (~> 11.0)
- GoogleUtilities/Environment (~> 7.8) - FirebaseInstallations (~> 11.0)
- GoogleUtilities/Reachability (~> 7.8) - GoogleDataTransport (~> 10.0)
- GoogleUtilities/UserDefaults (~> 7.8) - GoogleUtilities/AppDelegateSwizzler (~> 8.0)
- nanopb (< 2.30911.0, >= 2.30908.0) - GoogleUtilities/Environment (~> 8.0)
- GoogleUtilities/Reachability (~> 8.0)
- GoogleUtilities/UserDefaults (~> 8.0)
- nanopb (~> 3.30910.0)
- Flutter (1.0.0) - Flutter (1.0.0)
- flutter_local_notifications (0.0.1): - flutter_local_notifications (0.0.1):
- Flutter - Flutter
@@ -65,8 +70,11 @@ PODS:
- Flutter - Flutter
- geolocator_apple (1.2.0): - geolocator_apple (1.2.0):
- Flutter - Flutter
- Google-Maps-iOS-Utils (5.0.0):
- GoogleMaps (~> 8.0)
- google_maps_flutter_ios (0.0.1): - google_maps_flutter_ios (0.0.1):
- Flutter - Flutter
- Google-Maps-iOS-Utils (< 7.0, >= 5.0)
- GoogleMaps (< 10.0, >= 8.4) - GoogleMaps (< 10.0, >= 8.4)
- google_sign_in_ios (0.0.1): - google_sign_in_ios (0.0.1):
- AppAuth (>= 1.7.4) - AppAuth (>= 1.7.4)
@@ -74,10 +82,9 @@ PODS:
- FlutterMacOS - FlutterMacOS
- GoogleSignIn (~> 7.1) - GoogleSignIn (~> 7.1)
- GTMSessionFetcher (>= 3.4.0) - GTMSessionFetcher (>= 3.4.0)
- GoogleDataTransport (9.4.1): - GoogleDataTransport (10.1.0):
- GoogleUtilities/Environment (~> 7.7) - nanopb (~> 3.30910.0)
- nanopb (< 2.30911.0, >= 2.30908.0) - PromisesObjC (~> 2.4)
- PromisesObjC (< 3.0, >= 1.2)
- GoogleMaps (8.4.0): - GoogleMaps (8.4.0):
- GoogleMaps/Maps (= 8.4.0) - GoogleMaps/Maps (= 8.4.0)
- GoogleMaps/Base (8.4.0) - GoogleMaps/Base (8.4.0)
@@ -87,29 +94,28 @@ PODS:
- AppAuth (< 2.0, >= 1.7.3) - AppAuth (< 2.0, >= 1.7.3)
- GTMAppAuth (< 5.0, >= 4.1.1) - GTMAppAuth (< 5.0, >= 4.1.1)
- GTMSessionFetcher/Core (~> 3.3) - GTMSessionFetcher/Core (~> 3.3)
- GoogleUtilities/AppDelegateSwizzler (7.13.3): - GoogleUtilities/AppDelegateSwizzler (8.0.2):
- GoogleUtilities/Environment - GoogleUtilities/Environment
- GoogleUtilities/Logger - GoogleUtilities/Logger
- GoogleUtilities/Network - GoogleUtilities/Network
- GoogleUtilities/Privacy - GoogleUtilities/Privacy
- GoogleUtilities/Environment (7.13.3): - GoogleUtilities/Environment (8.0.2):
- GoogleUtilities/Privacy - GoogleUtilities/Privacy
- PromisesObjC (< 3.0, >= 1.2) - GoogleUtilities/Logger (8.0.2):
- GoogleUtilities/Logger (7.13.3):
- GoogleUtilities/Environment - GoogleUtilities/Environment
- GoogleUtilities/Privacy - GoogleUtilities/Privacy
- GoogleUtilities/Network (7.13.3): - GoogleUtilities/Network (8.0.2):
- GoogleUtilities/Logger - GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib" - "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Privacy - GoogleUtilities/Privacy
- GoogleUtilities/Reachability - GoogleUtilities/Reachability
- "GoogleUtilities/NSData+zlib (7.13.3)": - "GoogleUtilities/NSData+zlib (8.0.2)":
- GoogleUtilities/Privacy - GoogleUtilities/Privacy
- GoogleUtilities/Privacy (7.13.3) - GoogleUtilities/Privacy (8.0.2)
- GoogleUtilities/Reachability (7.13.3): - GoogleUtilities/Reachability (8.0.2):
- GoogleUtilities/Logger - GoogleUtilities/Logger
- GoogleUtilities/Privacy - GoogleUtilities/Privacy
- GoogleUtilities/UserDefaults (7.13.3): - GoogleUtilities/UserDefaults (8.0.2):
- GoogleUtilities/Logger - GoogleUtilities/Logger
- GoogleUtilities/Privacy - GoogleUtilities/Privacy
- GTMAppAuth (4.1.1): - GTMAppAuth (4.1.1):
@@ -129,13 +135,14 @@ PODS:
- Flutter - Flutter
- local_auth_darwin (0.0.1): - local_auth_darwin (0.0.1):
- Flutter - Flutter
- FlutterMacOS
- location (0.0.1): - location (0.0.1):
- Flutter - Flutter
- nanopb (2.30910.0): - nanopb (3.30910.0):
- nanopb/decode (= 2.30910.0) - nanopb/decode (= 3.30910.0)
- nanopb/encode (= 2.30910.0) - nanopb/encode (= 3.30910.0)
- nanopb/decode (2.30910.0) - nanopb/decode (3.30910.0)
- nanopb/encode (2.30910.0) - nanopb/encode (3.30910.0)
- package_info_plus (0.4.5): - package_info_plus (0.4.5):
- Flutter - Flutter
- path_provider_foundation (0.0.1): - path_provider_foundation (0.0.1):
@@ -155,42 +162,42 @@ PODS:
- sqflite (0.0.3): - sqflite (0.0.3):
- Flutter - Flutter
- FlutterMacOS - FlutterMacOS
- Stripe (23.27.6): - Stripe (23.28.3):
- StripeApplePay (= 23.27.6) - StripeApplePay (= 23.28.3)
- StripeCore (= 23.27.6) - StripeCore (= 23.28.3)
- StripePayments (= 23.27.6) - StripePayments (= 23.28.3)
- StripePaymentsUI (= 23.27.6) - StripePaymentsUI (= 23.28.3)
- StripeUICore (= 23.27.6) - StripeUICore (= 23.28.3)
- stripe_ios (0.0.1): - stripe_ios (0.0.1):
- Flutter - Flutter
- Stripe (~> 23.27.0) - Stripe (~> 23.28.0)
- StripeApplePay (~> 23.27.0) - StripeApplePay (~> 23.28.0)
- StripeFinancialConnections (~> 23.27.0) - StripeFinancialConnections (~> 23.28.0)
- StripePayments (~> 23.27.0) - StripePayments (~> 23.28.0)
- StripePaymentSheet (~> 23.27.0) - StripePaymentSheet (~> 23.28.0)
- StripePaymentsUI (~> 23.27.0) - StripePaymentsUI (~> 23.28.0)
- StripeApplePay (23.27.6): - StripeApplePay (23.28.3):
- StripeCore (= 23.27.6) - StripeCore (= 23.28.3)
- StripeCore (23.27.6) - StripeCore (23.28.3)
- StripeFinancialConnections (23.27.6): - StripeFinancialConnections (23.28.3):
- StripeCore (= 23.27.6) - StripeCore (= 23.28.3)
- StripeUICore (= 23.27.6) - StripeUICore (= 23.28.3)
- StripePayments (23.27.6): - StripePayments (23.28.3):
- StripeCore (= 23.27.6) - StripeCore (= 23.28.3)
- StripePayments/Stripe3DS2 (= 23.27.6) - StripePayments/Stripe3DS2 (= 23.28.3)
- StripePayments/Stripe3DS2 (23.27.6): - StripePayments/Stripe3DS2 (23.28.3):
- StripeCore (= 23.27.6) - StripeCore (= 23.28.3)
- StripePaymentSheet (23.27.6): - StripePaymentSheet (23.28.3):
- StripeApplePay (= 23.27.6) - StripeApplePay (= 23.28.3)
- StripeCore (= 23.27.6) - StripeCore (= 23.28.3)
- StripePayments (= 23.27.6) - StripePayments (= 23.28.3)
- StripePaymentsUI (= 23.27.6) - StripePaymentsUI (= 23.28.3)
- StripePaymentsUI (23.27.6): - StripePaymentsUI (23.28.3):
- StripeCore (= 23.27.6) - StripeCore (= 23.28.3)
- StripePayments (= 23.27.6) - StripePayments (= 23.28.3)
- StripeUICore (= 23.27.6) - StripeUICore (= 23.28.3)
- StripeUICore (23.27.6): - StripeUICore (23.28.3):
- StripeCore (= 23.27.6) - StripeCore (= 23.28.3)
- TOCropViewController (2.7.4) - TOCropViewController (2.7.4)
- uni_links (0.0.1): - uni_links (0.0.1):
- Flutter - Flutter
@@ -205,6 +212,7 @@ PODS:
- Flutter - Flutter
- webview_flutter_wkwebview (0.0.1): - webview_flutter_wkwebview (0.0.1):
- Flutter - Flutter
- FlutterMacOS
DEPENDENCIES: DEPENDENCIES:
- audio_session (from `.symlinks/plugins/audio_session/ios`) - audio_session (from `.symlinks/plugins/audio_session/ios`)
@@ -237,7 +245,7 @@ DEPENDENCIES:
- vibration (from `.symlinks/plugins/vibration/ios`) - vibration (from `.symlinks/plugins/vibration/ios`)
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`)
- wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`) - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`)
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`) - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/darwin`)
SPEC REPOS: SPEC REPOS:
trunk: trunk:
@@ -245,10 +253,13 @@ SPEC REPOS:
- Firebase - Firebase
- FirebaseAppCheckInterop - FirebaseAppCheckInterop
- FirebaseAuth - FirebaseAuth
- FirebaseAuthInterop
- FirebaseCore - FirebaseCore
- FirebaseCoreExtension
- FirebaseCoreInternal - FirebaseCoreInternal
- FirebaseInstallations - FirebaseInstallations
- FirebaseMessaging - FirebaseMessaging
- Google-Maps-iOS-Utils
- GoogleDataTransport - GoogleDataTransport
- GoogleMaps - GoogleMaps
- GoogleSignIn - GoogleSignIn
@@ -330,41 +341,44 @@ EXTERNAL SOURCES:
wakelock_plus: wakelock_plus:
:path: ".symlinks/plugins/wakelock_plus/ios" :path: ".symlinks/plugins/wakelock_plus/ios"
webview_flutter_wkwebview: webview_flutter_wkwebview:
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios" :path: ".symlinks/plugins/webview_flutter_wkwebview/darwin"
SPEC CHECKSUMS: SPEC CHECKSUMS:
AppAuth: 501c04eda8a8d11f179dbe8637b7a91bb7e5d2fa AppAuth: 501c04eda8a8d11f179dbe8637b7a91bb7e5d2fa
audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207 audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207
device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d
Firebase: 5121c624121af81cbc81df3bda414b3c28c4f3c3 Firebase: 9f574c08c2396885b5e7e100ed4293d956218af9
firebase_auth: e778ee89483b86fe4200d1f8e9a1c52aa5fb64a8 firebase_auth: 16ac5db3d064db837ecd845080d7e18e4be7c66d
firebase_core: a9d0180d5285527884d07a41eb4a9ec9ed12cdb6 firebase_core: ceec591a66629daaee82d3321551692c4a871493
firebase_messaging: ccc82a143a74de75f440a4e413dbbb37ec3fddbc firebase_messaging: 15d8b557010f3bb7b98d0302e1c7c8fbcd244425
FirebaseAppCheckInterop: 6a1757cfd4067d8e00fccd14fcc1b8fd78cfac07 FirebaseAppCheckInterop: ea21450529cf0ebd132788dd8916a0269abc684f
FirebaseAuth: 3d872fbbfc4223edeb72769e488f325fa8b0a4a9 FirebaseAuth: d5cf28be74d7e82257f6a3f717509eff70d3cf4a
FirebaseCore: 857dc1c6dd1255675047404d8466f7dfaac5d779 FirebaseAuthInterop: 47c09558af5d1b31f16fb352387c72d4804f4a24
FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934 FirebaseCore: 3cf438f431f18c12cdf2aaf64434648b63f7e383
FirebaseInstallations: 913cf60d0400ebd5d6b63a28b290372ab44590dd FirebaseCoreExtension: cda74ddfb001224bd8fd1d6e74698b4ed07803de
FirebaseMessaging: 087a7c7cadef7b9239f005bc4db823894844f323 FirebaseCoreInternal: 0c569513412da9f3b31bd0b340013bbee8f295c5
FirebaseInstallations: 771177d89d6c451dc6e50085ec82e2fc77ed0a4a
FirebaseMessaging: d2d1d9c62c46dd2db49a952f7deb5b16ad2c9742
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086 flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
flutter_tts: 0f492aab6accf87059b72354fcb4ba934304771d flutter_tts: 0f492aab6accf87059b72354fcb4ba934304771d
geolocator_apple: 6cbaf322953988e009e5ecb481f07efece75c450 geolocator_apple: 6cbaf322953988e009e5ecb481f07efece75c450
google_maps_flutter_ios: 5bc2be60ad012e79b182ce0fb0ef5030a50fb03e Google-Maps-iOS-Utils: 66d6de12be1ce6d3742a54661e7a79cb317a9321
google_maps_flutter_ios: e31555a04d1986ab130f2b9f24b6cdc861acc6d3
google_sign_in_ios: 07375bfbf2620bc93a602c0e27160d6afc6ead38 google_sign_in_ios: 07375bfbf2620bc93a602c0e27160d6afc6ead38
GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleMaps: 8939898920281c649150e0af74aa291c60f2e77d GoogleMaps: 8939898920281c649150e0af74aa291c60f2e77d
GoogleSignIn: d4281ab6cf21542b1cfaff85c191f230b399d2db GoogleSignIn: d4281ab6cf21542b1cfaff85c191f230b399d2db
GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6 GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
image_cropper: 37d40f62177c101ff4c164906d259ea2c3aa70cf image_cropper: 37d40f62177c101ff4c164906d259ea2c3aa70cf
image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
local_auth_darwin: 4d56c90c2683319835a61274b57620df9c4520ab local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3
location: d5cf8598915965547c3f36761ae9cc4f4e87d22e location: d5cf8598915965547c3f36761ae9cc4f4e87d22e
nanopb: 438bc412db1928dac798aa6fd75726007be04262 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
@@ -374,22 +388,22 @@ SPEC CHECKSUMS:
share: 0b2c3e82132f5888bccca3351c504d0003b3b410 share: 0b2c3e82132f5888bccca3351c504d0003b3b410
sign_in_with_apple: f3bf75217ea4c2c8b91823f225d70230119b8440 sign_in_with_apple: f3bf75217ea4c2c8b91823f225d70230119b8440
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
Stripe: 9fec845645e39f371e6898926d096fd9c2feb5a5 Stripe: cdf416cf2efe286f532a6306de0fcaa0ecc8c71a
stripe_ios: 03c617acee72e48a2d055d096a4b0ed2afebb256 stripe_ios: 91946e5c07e0a0dc0e1484ee6659e1f90a302cf3
StripeApplePay: 5f017e8dfe259fafbab70137776189deef754bb2 StripeApplePay: efb62ffc08e6cd4f161d77ddb45de2451075c54e
StripeCore: 01ec57f0dddfe742054dc6a322f811426c25313d StripeCore: 9731f05e327c3dcaf7d7abd116840ceaa9482bbe
StripeFinancialConnections: 56698cb6274bf89fb8c76b934f6156f368e97765 StripeFinancialConnections: 46c0049aaab3a179193502bce4a8096eb7b73f55
StripePayments: 6adf11faf1b7038e77aa97019410305c6adca79d StripePayments: dd1867a620b0b8b5e294e9ff2f1f7b7770765f47
StripePaymentSheet: 3eaf870c4388e44b0cc37e4c69d00b6957fd8bd7 StripePaymentSheet: d155dfde74e90784d054deffb4f561a1f6dd638f
StripePaymentsUI: 59ccddeacad592b09fa67e8d641340820ddb4751 StripePaymentsUI: c24f990b03a68a7f6fe704b15dd487e7bb6b603e
StripeUICore: 879bbf5889265db13f52fac8aad7a176ba62481f StripeUICore: f2d514e900c37436dc5427fdf2c29d68ab1c2935
TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654 TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654
uni_links: d97da20c7701486ba192624d99bffaaffcfc298a uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
vibration: 7d883d141656a1c1a6d8d238616b2042a51a1241 vibration: 7d883d141656a1c1a6d8d238616b2042a51a1241
video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3
wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1 wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1
webview_flutter_wkwebview: 2a23822e9039b7b1bc52e5add778e5d89ad488d1 webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4
PODFILE CHECKSUM: d9271c147dd54ffd9ca5d77bf00ca21a1c9a5961 PODFILE CHECKSUM: d9271c147dd54ffd9ca5d77bf00ca21a1c9a5961

View File

@@ -3,6 +3,7 @@ import 'dart:convert';
import 'dart:math'; import 'dart:math';
import 'package:SEFER/constant/colors.dart'; import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/controller/local/phone_intel/phone_number.dart';
import 'package:SEFER/views/home/map_page_passenger.dart'; import 'package:SEFER/views/home/map_page_passenger.dart';
import 'package:SEFER/views/widgets/my_dialog.dart'; import 'package:SEFER/views/widgets/my_dialog.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -116,7 +117,8 @@ class RegisterController extends GetxController {
sendOtpMessage() async { sendOtpMessage() async {
SmsEgyptController smsEgyptController; SmsEgyptController smsEgyptController;
isLoading = true;
update();
try { try {
// Initialize SmsEgyptController // Initialize SmsEgyptController
smsEgyptController = Get.put(SmsEgyptController()); smsEgyptController = Get.put(SmsEgyptController());
@@ -156,27 +158,27 @@ class RegisterController extends GetxController {
} else { } else {
// If the phone number is not verified, send OTP // If the phone number is not verified, send OTP
if (isEgyptianNumber) { if (isEgyptianNumber) {
if (isValidEgyptianPhoneNumber( // if (isValidEgyptianPhoneNumber(
phoneNumber.toString().split('+2')[1])) { // phoneNumber.toString().split('+2')[1])) {
await sendOtp(phoneNumber, randomNumber, isEgyptianNumber, await sendOtp(phoneNumber, randomNumber, isEgyptianNumber,
smsEgyptController); smsEgyptController);
} // }
} }
} }
} else { } else {
// If verification check fails, still send OTP // If verification check fails, still send OTP
if (isEgyptianNumber) { if (isEgyptianNumber) {
if (isValidEgyptianPhoneNumber( // if (isValidEgyptianPhoneNumber(
phoneNumber.toString().split('+2')[1])) { // phoneNumber.toString().split('+2')[1])) {
await sendOtp(phoneNumber, randomNumber, isEgyptianNumber, await sendOtp(phoneNumber, randomNumber, isEgyptianNumber,
smsEgyptController); smsEgyptController);
} else { // } else {
MyDialog().getDialog( // MyDialog().getDialog(
'Error'.tr, "Phone number isn't an Egyptian phone number".tr, // 'Error'.tr, "Phone number isn't an Egyptian phone number".tr,
() { // () {
Get.back(); // Get.back();
}); // });
} // }
} }
} }
} else { } else {
@@ -205,30 +207,32 @@ class RegisterController extends GetxController {
Log.print('phoneNumber: ${phoneNumber}'); Log.print('phoneNumber: ${phoneNumber}');
if (isEgyptian) { if (isEgyptian) {
// Check if the phone number has exactly 11 digits // // Check if the phone number has exactly 11 digits
if (phoneNumber.length == 11 && // if (phoneNumber.length == 11 &&
RegExp(r'^\d{11}$').hasMatch(phoneNumber)) { // RegExp(r'^\d{11}$').hasMatch(phoneNumber)) {
// Send SMS for Egyptian phone numbers // Send SMS for Egyptian phone numbers
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: { await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
'phone_number': phoneNumber, 'phone_number': phoneNumber,
'token': otp.toString(), 'token': otp.toString(),
}); });
await controller.sendSmsEgypt(phoneNumber, otp.toString()); await controller.sendSmsEgypt(phoneNumber, otp.toString());
print('SMS sent to Egyptian phone number: $phoneNumber'); print('SMS sent to Egyptian phone number: $phoneNumber');
} else {
// Show error dialog if phone number is invalid
MyDialog().getDialog('Invalid Phone Number',
'The phone number must be exactly 11 digits long.', () {
Get.back();
});
}
} else { } else {
// // Show error dialog if phone number is invalid
// MyDialog().getDialog('Invalid Phone Number',
// 'The phone number must be exactly 11 digits long.', () {
// Get.back();
// });
// }
// else {
// Send WhatsApp message for non-Egyptian phone numbers // Send WhatsApp message for non-Egyptian phone numbers
await CRUD().sendWhatsAppAuth(phoneNumber, otp.toString()); await CRUD().sendWhatsAppAuth(phoneNumber, otp.toString());
print('WhatsApp message sent to non-Egyptian phone number: $phoneNumber'); print('WhatsApp message sent to non-Egyptian phone number: $phoneNumber');
} }
isLoading = false;
update();
isSent = true; isSent = true;
remainingTime = 300; // Reset to 5 minutes remainingTime = 300; // Reset to 5 minutes
startTimer(); startTimer();
@@ -236,91 +240,92 @@ class RegisterController extends GetxController {
verifySMSCode() async { verifySMSCode() async {
// if (formKey3.currentState!.validate()) { // if (formKey3.currentState!.validate()) {
if (isValidEgyptianPhoneNumber(phoneController.text)) { Log.print('phoneController.text: ${phoneController.text}');
var res = await CRUD().post(link: AppLink.verifyOtpMessage, payload: { // if (isValidEgyptianPhoneNumber(phoneController.text)) {
'phone_number': '+2${phoneController.text}', var res = await CRUD().post(link: AppLink.verifyOtpMessage, payload: {
'token': verifyCode.text.toString(), 'phone_number': phoneController.text,
}); 'token': verifyCode.text.toString(),
if (res != 'failure') { });
// var dec = jsonDecode(res); if (res != 'failure') {
box.write(BoxName.phoneDriver, '+2${phoneController.text}'); // var dec = jsonDecode(res);
var payload = { box.write(BoxName.phoneDriver, phoneController.text);
'id': box.read(BoxName.passengerID), var payload = {
'phone': '+2${phoneController.text}', 'id': box.read(BoxName.passengerID),
'email': box.read(BoxName.email), 'phone': phoneController.text,
'password': 'unknown', 'email': box.read(BoxName.email),
'gender': 'unknown', 'password': 'unknown',
'birthdate': '2002-01-01', 'gender': 'unknown',
'site': 'unknown', 'birthdate': '2002-01-01',
'first_name': box.read(BoxName.name).toString().split(' ')[0], 'site': 'unknown',
'last_name': box.read(BoxName.name).toString().split(' ')[1], 'first_name': box.read(BoxName.name).toString().split(' ')[0],
}; 'last_name': box.read(BoxName.name).toString().split(' ')[1],
};
var res1 = await CRUD().post( var res1 = await CRUD().post(
link: AppLink.signUp, link: AppLink.signUp,
payload: payload,
);
if (res1 != 'failure') {
CRUD().post(
link: '${AppLink.seferAlexandriaServer}/auth/signup.php',
payload: payload, payload: payload,
); );
if (res1 != 'failure') { CRUD().post(
CRUD().post( link: '${AppLink.seferGizaServer}/auth/signup.php',
link: '${AppLink.seferAlexandriaServer}/auth/signup.php', payload: payload,
payload: payload, );
); box.write(BoxName.isVerified, '1');
CRUD().post( box.write(BoxName.phone, '+2${phoneController.text}');
link: '${AppLink.seferGizaServer}/auth/signup.php', Get.offAll(const MapPagePassenger());
payload: payload,
);
box.write(BoxName.isVerified, '1');
box.write(BoxName.phone, '+2${phoneController.text}');
Get.offAll(const MapPagePassenger());
}
} else {
Get.snackbar(
'Error'.tr, "The email or phone number is already registered.".tr,
backgroundColor: Colors.redAccent);
} }
} else { } else {
var res = await CRUD().post(link: AppLink.verifyOtpMessage, payload: { Get.snackbar(
'phone_number': '+${phoneController.text}', 'Error'.tr, "The email or phone number is already registered.".tr,
'token': verifyCode.text.toString(), backgroundColor: Colors.redAccent);
});
if (res != 'failure') {
// var dec = jsonDecode(res);
box.write(BoxName.phoneDriver, '+${phoneController.text}');
var payload = {
'id': box.read(BoxName.passengerID),
'phone': '+${phoneController.text}',
'email': box.read(BoxName.email),
'password': 'unknown',
'gender': 'unknown',
'birthdate': '2002-01-01',
'site': 'unknown',
'first_name': box.read(BoxName.name).toString().split(' ')[0],
'last_name': box.read(BoxName.name).toString().split(' ')[1],
};
var res1 = await CRUD().post(
link: AppLink.signUp,
payload: payload,
);
if (res1 != 'failure') {
CRUD().post(
link: '${AppLink.seferAlexandriaServer}/auth/signup.php',
payload: payload,
);
CRUD().post(
link: '${AppLink.seferGizaServer}/auth/signup.php',
payload: payload,
);
box.write(BoxName.isVerified, '1');
box.write(BoxName.phone, '+${phoneController.text}');
Get.offAll(const MapPagePassenger());
}
} else {
Get.snackbar(
'Error'.tr, "The email or phone number is already registered.".tr,
backgroundColor: Colors.redAccent);
}
} }
// } else {
// var res = await CRUD().post(link: AppLink.verifyOtpMessage, payload: {
// 'phone_number': phoneController.text,
// 'token': verifyCode.text.toString(),
// });
// if (res != 'failure') {
// // var dec = jsonDecode(res);
// box.write(BoxName.phoneDriver, '+${phoneController.text}');
// var payload = {
// 'id': box.read(BoxName.passengerID),
// 'phone': phoneController.text,
// 'email': box.read(BoxName.email),
// 'password': 'unknown',
// 'gender': 'unknown',
// 'birthdate': '2002-01-01',
// 'site': 'unknown',
// 'first_name': box.read(BoxName.name).toString().split(' ')[0],
// 'last_name': box.read(BoxName.name).toString().split(' ')[1],
// };
// var res1 = await CRUD().post(
// link: AppLink.signUp,
// payload: payload,
// );
// if (res1 != 'failure') {
// CRUD().post(
// link: '${AppLink.seferAlexandriaServer}/auth/signup.php',
// payload: payload,
// );
// CRUD().post(
// link: '${AppLink.seferGizaServer}/auth/signup.php',
// payload: payload,
// );
// box.write(BoxName.isVerified, '1');
// box.write(BoxName.phone, '+${phoneController.text}');
// Get.offAll(const MapPagePassenger());
// }
// } else {
// Get.snackbar(
// 'Error'.tr, "The email or phone number is already registered.".tr,
// backgroundColor: Colors.redAccent);
// }
// }
} }
sendVerifications() async { sendVerifications() async {

View File

@@ -34,7 +34,7 @@ class SmsEgyptController extends GetxController {
"message": "${AppInformation.appName} app code is $otp\ncopy it to app", "message": "${AppInformation.appName} app code is $otp\ncopy it to app",
"language": box.read(BoxName.lang) == 'en' ? "e" : 'r', "language": box.read(BoxName.lang) == 'en' ? "e" : 'r',
"sender": sender, //"Sefer Egy", "sender": sender, //"Sefer Egy",
"receiver": "2$phone" "receiver": phone
}); });
var res = await http.post( var res = await http.post(

View File

@@ -9,6 +9,7 @@ import 'package:get/get.dart';
import '../../controller/local/phone_intel/intl_phone_field.dart'; import '../../controller/local/phone_intel/intl_phone_field.dart';
import '../../print.dart'; import '../../print.dart';
import '../widgets/mycircular.dart';
// import 'package:intl_phone_field/intl_phone_field.dart'; // import 'package:intl_phone_field/intl_phone_field.dart';
class SmsSignupEgypt extends StatelessWidget { class SmsSignupEgypt extends StatelessWidget {
@@ -96,14 +97,16 @@ class SmsSignupEgypt extends StatelessWidget {
), ),
), ),
// Submit button // Submit button
MyElevatedButton( registerController.isLoading
onPressed: () async { ? const MyCircularProgressIndicator()
!registerController.isSent : MyElevatedButton(
? await registerController.sendOtpMessage() onPressed: () async {
: await registerController.verifySMSCode(); !registerController.isSent
}, ? await registerController.sendOtpMessage()
title: 'Submit'.tr, : await registerController.verifySMSCode();
), },
title: 'Submit'.tr,
),
], ],
); );
}), }),

View File

@@ -17,6 +17,7 @@ import flutter_tts
import geolocator_apple import geolocator_apple
import google_sign_in_ios import google_sign_in_ios
import just_audio import just_audio
import local_auth_darwin
import location import location
import package_info_plus import package_info_plus
import path_provider_foundation import path_provider_foundation
@@ -26,6 +27,7 @@ import sqflite
import url_launcher_macos import url_launcher_macos
import video_player_avfoundation import video_player_avfoundation
import wakelock_plus import wakelock_plus
import webview_flutter_wkwebview
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin")) AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin"))
@@ -40,6 +42,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin")) GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin"))
FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin")) FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin"))
JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin")) JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin"))
FLALocalAuthPlugin.register(with: registry.registrar(forPlugin: "FLALocalAuthPlugin"))
LocationPlugin.register(with: registry.registrar(forPlugin: "LocationPlugin")) LocationPlugin.register(with: registry.registrar(forPlugin: "LocationPlugin"))
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
@@ -49,4 +52,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin")) FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin"))
WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin")) WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin"))
FLTWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "FLTWebViewFlutterPlugin"))
} }

File diff suppressed because it is too large Load Diff

View File

@@ -35,12 +35,12 @@ dependencies:
flutter_rating_bar: ^4.0.1 flutter_rating_bar: ^4.0.1
flutter_font_icons: ^2.2.5 flutter_font_icons: ^2.2.5
image_picker: ^1.0.4 image_picker: ^1.0.4
flutter_stripe: ^10.2.0 flutter_stripe: ^11.0.0
# camera: ^0.10.5+5 #to be remove # camera: ^0.10.5+5 #to be remove
flutter_widget_from_html: ^0.15.1 flutter_widget_from_html: ^0.15.1
local_auth: ^2.1.7 local_auth: ^2.1.7
# image: ^4.1.3 #to be remove # image: ^4.1.3 #to be remove
image_cropper: ^7.1.0 image_cropper: ^8.0.2
envied: ^0.5.2 envied: ^0.5.2
# cached_network_image: ^3.3.0 # cached_network_image: ^3.3.0
calendar_builder: ^0.0.6 calendar_builder: ^0.0.6
@@ -48,7 +48,7 @@ dependencies:
flutter_tts: ^4.0.2 flutter_tts: ^4.0.2
permission_handler: ^11.3.0 permission_handler: ^11.3.0
# google_generative_ai: ^0.0.1-dev # google_generative_ai: ^0.0.1-dev
vibration: ^1.8.4 vibration: ^2.0.0
wakelock_plus: wakelock_plus:
record: ^5.0.5 record: ^5.0.5
dio: ^5.4.3+1 dio: ^5.4.3+1