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

View File

@@ -3,6 +3,7 @@ import 'dart:convert';
import 'dart:math';
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/widgets/my_dialog.dart';
import 'package:flutter/material.dart';
@@ -116,7 +117,8 @@ class RegisterController extends GetxController {
sendOtpMessage() async {
SmsEgyptController smsEgyptController;
isLoading = true;
update();
try {
// Initialize SmsEgyptController
smsEgyptController = Get.put(SmsEgyptController());
@@ -156,27 +158,27 @@ class RegisterController extends GetxController {
} else {
// If the phone number is not verified, send OTP
if (isEgyptianNumber) {
if (isValidEgyptianPhoneNumber(
phoneNumber.toString().split('+2')[1])) {
// if (isValidEgyptianPhoneNumber(
// phoneNumber.toString().split('+2')[1])) {
await sendOtp(phoneNumber, randomNumber, isEgyptianNumber,
smsEgyptController);
}
// }
}
}
} else {
// If verification check fails, still send OTP
if (isEgyptianNumber) {
if (isValidEgyptianPhoneNumber(
phoneNumber.toString().split('+2')[1])) {
// if (isValidEgyptianPhoneNumber(
// phoneNumber.toString().split('+2')[1])) {
await sendOtp(phoneNumber, randomNumber, isEgyptianNumber,
smsEgyptController);
} else {
MyDialog().getDialog(
'Error'.tr, "Phone number isn't an Egyptian phone number".tr,
() {
Get.back();
});
}
// } else {
// MyDialog().getDialog(
// 'Error'.tr, "Phone number isn't an Egyptian phone number".tr,
// () {
// Get.back();
// });
// }
}
}
} else {
@@ -205,9 +207,9 @@ class RegisterController extends GetxController {
Log.print('phoneNumber: ${phoneNumber}');
if (isEgyptian) {
// Check if the phone number has exactly 11 digits
if (phoneNumber.length == 11 &&
RegExp(r'^\d{11}$').hasMatch(phoneNumber)) {
// // Check if the phone number has exactly 11 digits
// if (phoneNumber.length == 11 &&
// RegExp(r'^\d{11}$').hasMatch(phoneNumber)) {
// Send SMS for Egyptian phone numbers
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
'phone_number': phoneNumber,
@@ -217,18 +219,20 @@ class RegisterController extends GetxController {
await controller.sendSmsEgypt(phoneNumber, otp.toString());
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 {
// // 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
await CRUD().sendWhatsAppAuth(phoneNumber, otp.toString());
print('WhatsApp message sent to non-Egyptian phone number: $phoneNumber');
}
isLoading = false;
update();
isSent = true;
remainingTime = 300; // Reset to 5 minutes
startTimer();
@@ -236,17 +240,18 @@ class RegisterController extends GetxController {
verifySMSCode() async {
// if (formKey3.currentState!.validate()) {
if (isValidEgyptianPhoneNumber(phoneController.text)) {
Log.print('phoneController.text: ${phoneController.text}');
// if (isValidEgyptianPhoneNumber(phoneController.text)) {
var res = await CRUD().post(link: AppLink.verifyOtpMessage, payload: {
'phone_number': '+2${phoneController.text}',
'phone_number': phoneController.text,
'token': verifyCode.text.toString(),
});
if (res != 'failure') {
// var dec = jsonDecode(res);
box.write(BoxName.phoneDriver, '+2${phoneController.text}');
box.write(BoxName.phoneDriver, phoneController.text);
var payload = {
'id': box.read(BoxName.passengerID),
'phone': '+2${phoneController.text}',
'phone': phoneController.text,
'email': box.read(BoxName.email),
'password': 'unknown',
'gender': 'unknown',
@@ -278,49 +283,49 @@ class RegisterController extends GetxController {
'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],
};
// } 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);
}
}
// 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 {

View File

@@ -34,7 +34,7 @@ class SmsEgyptController extends GetxController {
"message": "${AppInformation.appName} app code is $otp\ncopy it to app",
"language": box.read(BoxName.lang) == 'en' ? "e" : 'r',
"sender": sender, //"Sefer Egy",
"receiver": "2$phone"
"receiver": phone
});
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 '../../print.dart';
import '../widgets/mycircular.dart';
// import 'package:intl_phone_field/intl_phone_field.dart';
class SmsSignupEgypt extends StatelessWidget {
@@ -96,7 +97,9 @@ class SmsSignupEgypt extends StatelessWidget {
),
),
// Submit button
MyElevatedButton(
registerController.isLoading
? const MyCircularProgressIndicator()
: MyElevatedButton(
onPressed: () async {
!registerController.isSent
? await registerController.sendOtpMessage()

View File

@@ -17,6 +17,7 @@ import flutter_tts
import geolocator_apple
import google_sign_in_ios
import just_audio
import local_auth_darwin
import location
import package_info_plus
import path_provider_foundation
@@ -26,6 +27,7 @@ import sqflite
import url_launcher_macos
import video_player_avfoundation
import wakelock_plus
import webview_flutter_wkwebview
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin"))
@@ -40,6 +42,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin"))
FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin"))
JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin"))
FLALocalAuthPlugin.register(with: registry.registrar(forPlugin: "FLALocalAuthPlugin"))
LocationPlugin.register(with: registry.registrar(forPlugin: "LocationPlugin"))
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
@@ -49,4 +52,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin"))
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_font_icons: ^2.2.5
image_picker: ^1.0.4
flutter_stripe: ^10.2.0
flutter_stripe: ^11.0.0
# camera: ^0.10.5+5 #to be remove
flutter_widget_from_html: ^0.15.1
local_auth: ^2.1.7
# image: ^4.1.3 #to be remove
image_cropper: ^7.1.0
image_cropper: ^8.0.2
envied: ^0.5.2
# cached_network_image: ^3.3.0
calendar_builder: ^0.0.6
@@ -48,7 +48,7 @@ dependencies:
flutter_tts: ^4.0.2
permission_handler: ^11.3.0
# google_generative_ai: ^0.0.1-dev
vibration: ^1.8.4
vibration: ^2.0.0
wakelock_plus:
record: ^5.0.5
dio: ^5.4.3+1