25-5-30/1
This commit is contained in:
13
.env
13
.env
@@ -14,14 +14,14 @@ chatGPTkeySeferNew=zg-Z4AJcAROgNXjgrEIU8fKC9XrxgUE4Qtrrlq1yiux0jL3dITSXrXlBl
|
|||||||
secretKey=zg_ropj_57Iiv6MFCBFq3C2n6IXlmjykpxDmW93SW3vvXh68UA9T5FORTWgWsT37StKsOPdwDdsy8qR9srMUluahs3nPHvgBa33tGk90vV5XrXlBl
|
secretKey=zg_ropj_57Iiv6MFCBFq3C2n6IXlmjykpxDmW93SW3vvXh68UA9T5FORTWgWsT37StKsOPdwDdsy8qR9srMUluahs3nPHvgBa33tGk90vV5XrXlBl
|
||||||
stripe_publishableKe=vg_ropj_57Iiv6MFCBFq3C2n6kNJnZByV6nuDtXe9IjEPOfhmpDtWmt3MLR0gQpiHcQmAFMUPrZc3QiCDjxBZLbxDC3efxWxz33bWH1ZgrsXrXlBl
|
stripe_publishableKe=vg_ropj_57Iiv6MFCBFq3C2n6kNJnZByV6nuDtXe9IjEPOfhmpDtWmt3MLR0gQpiHcQmAFMUPrZc3QiCDjxBZLbxDC3efxWxz33bWH1ZgrsXrXlBl
|
||||||
llamaKey=RR-EuyoFDUvfRDBj46fZKAtKJ3voM8Mt768cPeJV7GNdAkPTKdY8Odm9n4ggGqI5GyoXrXlBl
|
llamaKey=RR-EuyoFDUvfRDBj46fZKAtKJ3voM8Mt768cPeJV7GNdAkPTKdY8Odm9n4ggGqI5GyoXrXlBl
|
||||||
serverPHP=https://api.sefer.live/sefer
|
serverPHP=https://api.tripz-egypt.com/tripz
|
||||||
seferAlexandriaServer=https://seferalexandria.site/sefer
|
seferAlexandriaServer=https://api.tripz-egypt.com/tripz
|
||||||
seferPaymentServer=https://seferpw.shop/sefer
|
seferPaymentServer=https://wl.tripz-egypt.com/tripz
|
||||||
# seferCairoServer=https://sefer.click/sefer
|
# seferCairoServer=https://sefer.click/sefer
|
||||||
seferCairoServer=https://server.sefer.click/sefer.click/sefer
|
seferCairoServer=https://api.tripz-egypt.com/tripz
|
||||||
seferGizaServer=https://gizasefer.online/sefer
|
seferGizaServer=https://api.tripz-egypt.com/tripz
|
||||||
anthropicAIkeySeferNewHamzaayedpython=zg-qbc-qvo39-vCB-WnzEwFNArO0YlTapvfhtmguKWsXJSKqg_NZSjHBYVXMZK1yUK88SobdckV0KuPaBh0c_WHtGsRO_439PBk-e2QqgkQQXrXlBl
|
anthropicAIkeySeferNewHamzaayedpython=zg-qbc-qvo39-vCB-WnzEwFNArO0YlTapvfhtmguKWsXJSKqg_NZSjHBYVXMZK1yUK88SobdckV0KuPaBh0c_WHtGsRO_439PBk-e2QqgkQQXrXlBl
|
||||||
getapiKey=https://server.sefer.click/sefer.click/sefer/ride/apiKey/get.php
|
getapiKey=https://api.tripz-egypt.com/tripz/ride/apiKey/get.php
|
||||||
cohere=Aulwd8y5SPWos0hJhG0toUf8gOhUUrpf5Q2TPmVGXrXlBl
|
cohere=Aulwd8y5SPWos0hJhG0toUf8gOhUUrpf5Q2TPmVGXrXlBl
|
||||||
claudeAiAPI=zg-qbc-qvo39-xWOxIGwWTOzCFBnIYSKKhfyz_KVAvrH-6_4ZEJL68G_QBH26oeTOMMoQug9KuOjjKSP_A4S3SUDlbxR9duVzoQ-MkX_UQQQXrXlBl
|
claudeAiAPI=zg-qbc-qvo39-xWOxIGwWTOzCFBnIYSKKhfyz_KVAvrH-6_4ZEJL68G_QBH26oeTOMMoQug9KuOjjKSP_A4S3SUDlbxR9duVzoQ-MkX_UQQQXrXlBl
|
||||||
payPalClientId=QALymfNI5Tzt4s-ysoz6vD4_nqX0SUtkC_qYV-Ugk5gaM_8Z-kg4L53k8Uux_4jEWXDkNpXGSWPpIzDFXrXlBl
|
payPalClientId=QALymfNI5Tzt4s-ysoz6vD4_nqX0SUtkC_qYV-Ugk5gaM_8Z-kg4L53k8Uux_4jEWXDkNpXGSWPpIzDFXrXlBl
|
||||||
@@ -53,6 +53,7 @@ allowed=TripzDriver:
|
|||||||
allowedWallet=TripzWallet:
|
allowedWallet=TripzWallet:
|
||||||
passnpassenger=hbgbitbXrXrBr
|
passnpassenger=hbgbitbXrXrBr
|
||||||
newId=new
|
newId=new
|
||||||
|
newcontabo = Xr9j74uRrr?Gzcvm
|
||||||
a=q
|
a=q
|
||||||
b=x
|
b=x
|
||||||
c=f
|
c=f
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -33,6 +33,7 @@ migrate_working_dir/
|
|||||||
.pub-cache/
|
.pub-cache/
|
||||||
.pub/
|
.pub/
|
||||||
.env
|
.env
|
||||||
|
tripz_server.yaml
|
||||||
/build/
|
/build/
|
||||||
|
|
||||||
# Symbolication related
|
# Symbolication related
|
||||||
|
|||||||
@@ -2,28 +2,28 @@ C/C++ Structured Log
|
|||||||
|
|
||||||
}/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/additional_project_files.txtC
|
}/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint þµŒ°ß2 ÿÊü××2~
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ë²ç¨ë2 ÿÊü××2~
|
||||||
|
|
|
|
||||||
z/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/android_gradle_build.json ÿµŒ°ß2ù
|
z/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/android_gradle_build.json ë²ç¨ë2ù
|
||||||
˜Ëü××2„
|
˜Ëü××2„
|
||||||
<EFBFBD>
|
<EFBFBD>
|
||||||
/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/android_gradle_build_mini.json ÿµŒ°ß2» êÐü××2p
|
/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/android_gradle_build_mini.json ë²ç¨ë2» êÐü××2p
|
||||||
n
|
n
|
||||||
l/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/build.ninja ÿµŒ°ß2⃠†Åü××2t
|
l/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/build.ninja ì²ç¨ë2⃠†Åü××2t
|
||||||
r
|
r
|
||||||
p/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/build.ninja.txt ÿµŒ°ß2y
|
p/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/build.ninja.txt ì²ç¨ë2y
|
||||||
w
|
w
|
||||||
u/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/build_file_index.txt ÿµŒ°ß2
|
u/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/build_file_index.txt ì²ç¨ë2
|
||||||
^ €<>àÕ×2z
|
^ €<>àÕ×2z
|
||||||
x
|
x
|
||||||
v/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/compile_commands.json ì²ç¨ë2« „Åü××2~
|
v/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/compile_commands.json ì²ç¨ë2« „Åü××2~
|
||||||
|
|
|
|
||||||
z/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/compile_commands.json.bin ì²ç¨ë2 Æ „Åü××2†
|
z/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/compile_commands.json.bin ì²ç¨ë2 Æ „Åü××2†
|
||||||
ƒ
|
ƒ
|
||||||
€/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/metadata_generation_command.txt ì²ç¨ë2
|
€/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/metadata_generation_command.txt ì²ç¨ë2
|
||||||
Š €<>àÕ×2w
|
Š €<>àÕ×2w
|
||||||
u
|
u
|
||||||
s/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/prefab_config.json ì²ç¨ë2
|
s/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/prefab_config.json ì²ç¨ë2
|
||||||
( €<>àÕ×2|
|
( €<>àÕ×2|
|
||||||
z
|
z
|
||||||
x/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/symbol_folder_index.txt ÿµŒ°ß2
|
x/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/arm64-v8a/symbol_folder_index.txt ì²ç¨ë2
|
||||||
@@ -2,27 +2,27 @@ C/C++ Structured Log
|
|||||||
<EFBFBD>
|
<EFBFBD>
|
||||||
/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/additional_project_files.txtC
|
/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint —¶Œ°ß2 éòü××2€
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ‹´ç¨ë2 éòü××2€
|
||||||
~
|
~
|
||||||
|/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/android_gradle_build.json —¶Œ°ß2<18> ïòü××2‡
|
|/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/android_gradle_build.json ‹´ç¨ë2<18> ïòü××2‡
|
||||||
„
|
„
|
||||||
<EFBFBD>/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/android_gradle_build_mini.json —¶Œ°ß2à ùòü××2r
|
<EFBFBD>/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/android_gradle_build_mini.json ‹´ç¨ë2à ùòü××2r
|
||||||
p
|
p
|
||||||
n/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/build.ninja —¶Œ°ß2¨„ ¯òü××2v
|
n/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/build.ninja ‹´ç¨ë2¨„ ¯òü××2v
|
||||||
t
|
t
|
||||||
r/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/build.ninja.txt —¶Œ°ß2{
|
r/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/build.ninja.txt ‹´ç¨ë2{
|
||||||
y
|
y
|
||||||
w/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/build_file_index.txt —¶Œ°ß2
|
w/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/build_file_index.txt ‹´ç¨ë2
|
||||||
^ “¤àÕ×2|
|
^ “¤àÕ×2|
|
||||||
z
|
z
|
||||||
x/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/compile_commands.json ‹´ç¨ë2Æ ®òü××2€
|
x/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/compile_commands.json ‹´ç¨ë2Æ ®òü××2€
|
||||||
~
|
~
|
||||||
|/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/compile_commands.json.bin ‹´ç¨ë2 ï ®òü××2ˆ
|
|/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/compile_commands.json.bin ‹´ç¨ë2 ï ®òü××2ˆ
|
||||||
…
|
…
|
||||||
‚/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/metadata_generation_command.txt ‹´ç¨ë2
|
‚/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/metadata_generation_command.txt ‹´ç¨ë2
|
||||||
” “¤àÕ×2y
|
” “¤àÕ×2y
|
||||||
w
|
w
|
||||||
u/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/prefab_config.json ‹´ç¨ë2
|
u/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/prefab_config.json ‹´ç¨ë2
|
||||||
( “¤àÕ×2~
|
( “¤àÕ×2~
|
||||||
|
|
|
|
||||||
z/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/symbol_folder_index.txt —¶Œ°ß2
|
z/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/armeabi-v7a/symbol_folder_index.txt ‹´ç¨ë2
|
||||||
@@ -2,28 +2,28 @@ C/C++ Structured Log{
|
|||||||
y
|
y
|
||||||
w/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/additional_project_files.txtC
|
w/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ”å<EFBFBD>°ß2 þÿü××2x
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint Ó<EFBFBD>Õìñ2 þÿü××2x
|
||||||
v
|
v
|
||||||
t/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/android_gradle_build.json —å<EFBFBD>°ß2á
|
t/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/android_gradle_build.json Ó<EFBFBD>Õìñ2á
|
||||||
‚€ý××2}
|
‚€ý××2}
|
||||||
{
|
{
|
||||||
y/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/android_gradle_build_mini.json —å<EFBFBD>°ß2£ †€ý××2j
|
y/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/android_gradle_build_mini.json Ó<EFBFBD>Õìñ2£ †€ý××2j
|
||||||
h
|
h
|
||||||
f/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/build.ninja —å<EFBFBD>°ß2²ƒ Üÿü××2n
|
f/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/build.ninja Ó<EFBFBD>Õìñ2²ƒ Üÿü××2n
|
||||||
l
|
l
|
||||||
j/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/build.ninja.txt —å<EFBFBD>°ß2s
|
j/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/build.ninja.txt Ó<EFBFBD>Õìñ2s
|
||||||
q
|
q
|
||||||
o/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/build_file_index.txt —å<EFBFBD>°ß2
|
o/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/build_file_index.txt Ó<EFBFBD>Õìñ2
|
||||||
^ ªÕàÕ×2t
|
^ ªÕàÕ×2t
|
||||||
r
|
r
|
||||||
p/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/compile_commands.json Ó<>Õìñ2± Ûÿü××2x
|
p/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/compile_commands.json Ó<>Õìñ2± Ûÿü××2x
|
||||||
v
|
v
|
||||||
t/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/compile_commands.json.bin Ó<>Õìñ2 Ó Ûÿü××2~
|
t/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/compile_commands.json.bin Ó<>Õìñ2 Ó Ûÿü××2~
|
||||||
|
|
|
|
||||||
z/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/metadata_generation_command.txt Ô<>Õìñ2
|
z/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/metadata_generation_command.txt Ô<>Õìñ2
|
||||||
ì ©ÕàÕ×2q
|
ì ©ÕàÕ×2q
|
||||||
o
|
o
|
||||||
m/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/prefab_config.json Ô<>Õìñ2
|
m/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/prefab_config.json Ô<>Õìñ2
|
||||||
( ©ÕàÕ×2v
|
( ©ÕàÕ×2v
|
||||||
t
|
t
|
||||||
r/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/symbol_folder_index.txt —å<EFBFBD>°ß2
|
r/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86/symbol_folder_index.txt Ô<EFBFBD>Õìñ2
|
||||||
@@ -2,28 +2,28 @@ C/C++ Structured Log~
|
|||||||
|
|
|
|
||||||
z/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/additional_project_files.txtC
|
z/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ¶¶Œ°ß2 ûŠý××2{
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint Ì´ç¨ë2 ûŠý××2{
|
||||||
y
|
y
|
||||||
w/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/android_gradle_build.json ¶¶Œ°ß2í
|
w/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/android_gradle_build.json Ì´ç¨ë2í
|
||||||
ýŠý××2€
|
ýŠý××2€
|
||||||
~
|
~
|
||||||
|/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/android_gradle_build_mini.json ¶¶Œ°ß2¯ €‹ý××2m
|
|/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/android_gradle_build_mini.json Ì´ç¨ë2¯ €‹ý××2m
|
||||||
k
|
k
|
||||||
i/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/build.ninja ¶¶Œ°ß2¼ƒ çŠý××2q
|
i/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/build.ninja Ì´ç¨ë2¼ƒ çŠý××2q
|
||||||
o
|
o
|
||||||
m/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/build.ninja.txt ¶¶Œ°ß2v
|
m/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/build.ninja.txt Ì´ç¨ë2v
|
||||||
t
|
t
|
||||||
r/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/build_file_index.txt ¶¶Œ°ß2
|
r/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/build_file_index.txt Í´ç¨ë2
|
||||||
^ ŒààÕ×2w
|
^ ŒààÕ×2w
|
||||||
u
|
u
|
||||||
s/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/compile_commands.json Í´ç¨ë2§ çŠý××2{
|
s/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/compile_commands.json Í´ç¨ë2§ çŠý××2{
|
||||||
y
|
y
|
||||||
w/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/compile_commands.json.bin Í´ç¨ë2  çŠý××2<C397>
|
w/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/compile_commands.json.bin Í´ç¨ë2  çŠý××2<C397>
|
||||||
|
|
||||||
}/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/metadata_generation_command.txt Í´ç¨ë2
|
}/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/metadata_generation_command.txt Í´ç¨ë2
|
||||||
û ŒààÕ×2t
|
û ŒààÕ×2t
|
||||||
r
|
r
|
||||||
p/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/prefab_config.json Í´ç¨ë2
|
p/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/prefab_config.json Í´ç¨ë2
|
||||||
( ŒààÕ×2y
|
( ŒààÕ×2y
|
||||||
w
|
w
|
||||||
u/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/symbol_folder_index.txt ¶¶Œ°ß2
|
u/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/Debug/6a58wo5c/x86_64/symbol_folder_index.txt Í´ç¨ë2
|
||||||
Binary file not shown.
@@ -4,3 +4,4 @@
|
|||||||
6 2198 1741521280756215895 CMakeFiles/native-lib.dir/native-lib.cpp.o 282a5c17fd8e3306
|
6 2198 1741521280756215895 CMakeFiles/native-lib.dir/native-lib.cpp.o 282a5c17fd8e3306
|
||||||
10 7926 1742820916832262742 CMakeFiles/native-lib.dir/native-lib.cpp.o 282a5c17fd8e3306
|
10 7926 1742820916832262742 CMakeFiles/native-lib.dir/native-lib.cpp.o 282a5c17fd8e3306
|
||||||
7956 9937 1742820919083327611 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/arm64-v8a/libnative-lib.so f365eec12321e91
|
7956 9937 1742820919083327611 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/arm64-v8a/libnative-lib.so f365eec12321e91
|
||||||
|
111 1471 1748548355165344476 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/arm64-v8a/libnative-lib.so f365eec12321e91
|
||||||
|
|||||||
@@ -2,27 +2,27 @@ C/C++ Structured Log
|
|||||||
‰
|
‰
|
||||||
†/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/additional_project_files.txtC
|
†/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint <EFBFBD>£Á°ß2 Œ¥âÁÜ2‰
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ‘ôÊðñ2 Œ¥âÁÜ2‰
|
||||||
†
|
†
|
||||||
ƒ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/android_gradle_build.json <EFBFBD>£Á°ß2” ¶¥âÁÜ2Ž
|
ƒ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/android_gradle_build.json ’ôÊðñ2” ¶¥âÁÜ2Ž
|
||||||
‹
|
‹
|
||||||
ˆ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/android_gradle_build_mini.json <EFBFBD>£Á°ß2Ö ’¨âÁÜ2y
|
ˆ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/android_gradle_build_mini.json ’ôÊðñ2Ö ’¨âÁÜ2y
|
||||||
w
|
w
|
||||||
u/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/build.ninja <EFBFBD>£Á°ß2÷„ ü¢âÁÜ2}
|
u/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/build.ninja ’ôÊðñ2÷„ ü¢âÁÜ2}
|
||||||
{
|
{
|
||||||
y/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/build.ninja.txt <EFBFBD>£Á°ß2ƒ
|
y/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/build.ninja.txt ’ôÊðñ2ƒ
|
||||||
€
|
€
|
||||||
~/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/build_file_index.txt ‚£Á°ß2
|
~/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/build_file_index.txt ’ôÊðñ2
|
||||||
^ àòíÕ×2„
|
^ àòíÕ×2„
|
||||||
<EFBFBD>
|
<EFBFBD>
|
||||||
/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/compile_commands.json ’ôÊðñ2 ü¢âÁÜ2‰
|
/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/compile_commands.json ’ôÊðñ2 ü¢âÁÜ2‰
|
||||||
†
|
†
|
||||||
ƒ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/compile_commands.json.bin ’ôÊðñ2 Ñ ü¢âÁÜ2<C39C>
|
ƒ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/compile_commands.json.bin ’ôÊðñ2 Ñ ü¢âÁÜ2<C39C>
|
||||||
Œ
|
Œ
|
||||||
‰/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/metadata_generation_command.txt ’ôÊðñ2
|
‰/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/metadata_generation_command.txt ’ôÊðñ2
|
||||||
® ßòíÕ×2€
|
® ßòíÕ×2€
|
||||||
~
|
~
|
||||||
|/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/prefab_config.json ’ôÊðñ2
|
|/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/prefab_config.json ’ôÊðñ2
|
||||||
( ßòíÕ×2‡
|
( ßòíÕ×2‡
|
||||||
„
|
„
|
||||||
<EFBFBD>/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/symbol_folder_index.txt ‚£Á°ß2
|
<EFBFBD>/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/arm64-v8a/symbol_folder_index.txt ’ôÊðñ2
|
||||||
Binary file not shown.
@@ -4,3 +4,4 @@
|
|||||||
5 1608 1741521283027110183 CMakeFiles/native-lib.dir/native-lib.cpp.o b87079b1ccb85962
|
5 1608 1741521283027110183 CMakeFiles/native-lib.dir/native-lib.cpp.o b87079b1ccb85962
|
||||||
1 3076 1742820925175269992 CMakeFiles/native-lib.dir/native-lib.cpp.o b87079b1ccb85962
|
1 3076 1742820925175269992 CMakeFiles/native-lib.dir/native-lib.cpp.o b87079b1ccb85962
|
||||||
3076 4061 1742820926159885896 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/armeabi-v7a/libnative-lib.so 4af411d9d89f3387
|
3076 4061 1742820926159885896 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/armeabi-v7a/libnative-lib.so 4af411d9d89f3387
|
||||||
|
13 224 1748548355627771556 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/armeabi-v7a/libnative-lib.so 4af411d9d89f3387
|
||||||
|
|||||||
@@ -2,27 +2,27 @@ C/C++ Structured Log
|
|||||||
‹
|
‹
|
||||||
ˆ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/additional_project_files.txtC
|
ˆ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint …¥Á°ß2 ¶£ãÁÜ2‹
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint íúÊðñ2 ¶£ãÁÜ2‹
|
||||||
ˆ
|
ˆ
|
||||||
…/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/android_gradle_build.json …¥Á°ß2œ ߣãÁÜ2<C39C>
|
…/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/android_gradle_build.json ïúÊðñ2œ ߣãÁÜ2<C39C>
|
||||||
<EFBFBD>
|
<EFBFBD>
|
||||||
Š/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/android_gradle_build_mini.json …¥Á°ß2Þ Š¤ãÁÜ2{
|
Š/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/android_gradle_build_mini.json ïúÊðñ2Þ Š¤ãÁÜ2{
|
||||||
y
|
y
|
||||||
w/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/build.ninja …¥Á°ß2½… Ò¢ãÁÜ2
|
w/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/build.ninja ïúÊðñ2½… Ò¢ãÁÜ2
|
||||||
}
|
}
|
||||||
{/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/build.ninja.txt …¥Á°ß2†
|
{/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/build.ninja.txt ïúÊðñ2†
|
||||||
ƒ
|
ƒ
|
||||||
€/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/build_file_index.txt …¥Á°ß2
|
€/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/build_file_index.txt ïúÊðñ2
|
||||||
^ ãŽîÕ×2‡
|
^ ãŽîÕ×2‡
|
||||||
„
|
„
|
||||||
<EFBFBD>/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/compile_commands.json ïúÊðñ2È Å¢ãÁÜ2‹
|
<EFBFBD>/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/compile_commands.json ïúÊðñ2È Å¢ãÁÜ2‹
|
||||||
ˆ
|
ˆ
|
||||||
…/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/compile_commands.json.bin ïúÊðñ2 ú Å¢ãÁÜ2‘
|
…/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/compile_commands.json.bin ïúÊðñ2 ú Å¢ãÁÜ2‘
|
||||||
Ž
|
Ž
|
||||||
‹/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/metadata_generation_command.txt ïúÊðñ2
|
‹/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/metadata_generation_command.txt ïúÊðñ2
|
||||||
¸ âŽîÕ×2ƒ
|
¸ âŽîÕ×2ƒ
|
||||||
€
|
€
|
||||||
~/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/prefab_config.json ïúÊðñ2
|
~/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/prefab_config.json ïúÊðñ2
|
||||||
( âŽîÕ×2‰
|
( âŽîÕ×2‰
|
||||||
†
|
†
|
||||||
ƒ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/symbol_folder_index.txt †¥Á°ß2
|
ƒ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/armeabi-v7a/symbol_folder_index.txt ïúÊðñ2
|
||||||
Binary file not shown.
@@ -4,3 +4,4 @@
|
|||||||
5 1048 1741521284413359950 CMakeFiles/native-lib.dir/native-lib.cpp.o 5a89557cc882a993
|
5 1048 1741521284413359950 CMakeFiles/native-lib.dir/native-lib.cpp.o 5a89557cc882a993
|
||||||
4 1966 1742820930154400498 CMakeFiles/native-lib.dir/native-lib.cpp.o 5a89557cc882a993
|
4 1966 1742820930154400498 CMakeFiles/native-lib.dir/native-lib.cpp.o 5a89557cc882a993
|
||||||
1966 3757 1742820931941401305 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/x86/libnative-lib.so f7a6fa481738ebd7
|
1966 3757 1742820931941401305 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/x86/libnative-lib.so f7a6fa481738ebd7
|
||||||
|
16 147 1748548355859895987 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/x86/libnative-lib.so f7a6fa481738ebd7
|
||||||
|
|||||||
@@ -2,28 +2,28 @@ C/C++ Structured Log
|
|||||||
ƒ
|
ƒ
|
||||||
€/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/additional_project_files.txtC
|
€/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint Ã¥Á°ß2 ÒÒãÁÜ2<C39C>
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint üÊðñ2 ÒÒãÁÜ2<C39C>
|
||||||
|
|
||||||
}/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/android_gradle_build.json Ä¥Á°ß2ü
|
}/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/android_gradle_build.json üÊðñ2ü
|
||||||
‚ÓãÁÜ2ˆ
|
‚ÓãÁÜ2ˆ
|
||||||
…
|
…
|
||||||
‚/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/android_gradle_build_mini.json Ä¥Á°ß2¾ °ÓãÁÜ2s
|
‚/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/android_gradle_build_mini.json üÊðñ2¾ °ÓãÁÜ2s
|
||||||
q
|
q
|
||||||
o/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/build.ninja Ä¥Á°ß2Ç„ ¦ËãÁÜ2w
|
o/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/build.ninja üÊðñ2Ç„ ¦ËãÁÜ2w
|
||||||
u
|
u
|
||||||
s/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/build.ninja.txt Ä¥Á°ß2|
|
s/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/build.ninja.txt üÊðñ2|
|
||||||
z
|
z
|
||||||
x/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/build_file_index.txt Ä¥Á°ß2
|
x/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/build_file_index.txt üÊðñ2
|
||||||
^ ¥«îÕ×2}
|
^ ¥«îÕ×2}
|
||||||
{
|
{
|
||||||
y/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/compile_commands.json üÊðñ2³ ¢ËãÁÜ2<C39C>
|
y/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/compile_commands.json üÊðñ2³ ¢ËãÁÜ2<C39C>
|
||||||
|
|
||||||
}/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/compile_commands.json.bin üÊðñ2 Þ ¢ËãÁÜ2‰
|
}/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/compile_commands.json.bin üÊðñ2 Þ ¢ËãÁÜ2‰
|
||||||
†
|
†
|
||||||
ƒ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/metadata_generation_command.txt üÊðñ2
|
ƒ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/metadata_generation_command.txt üÊðñ2
|
||||||
<18> ¤«îÕ×2z
|
<18> ¤«îÕ×2z
|
||||||
x
|
x
|
||||||
v/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/prefab_config.json üÊðñ2
|
v/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/prefab_config.json üÊðñ2
|
||||||
( ¥«îÕ×2
|
( ¥«îÕ×2
|
||||||
}
|
}
|
||||||
{/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/symbol_folder_index.txt Ä¥Á°ß2
|
{/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86/symbol_folder_index.txt üÊðñ2
|
||||||
Binary file not shown.
@@ -4,3 +4,4 @@
|
|||||||
8 833 1741521285451563038 CMakeFiles/native-lib.dir/native-lib.cpp.o 64e19b6e8058a204
|
8 833 1741521285451563038 CMakeFiles/native-lib.dir/native-lib.cpp.o 64e19b6e8058a204
|
||||||
29 2917 1742820937015736165 CMakeFiles/native-lib.dir/native-lib.cpp.o 64e19b6e8058a204
|
29 2917 1742820937015736165 CMakeFiles/native-lib.dir/native-lib.cpp.o 64e19b6e8058a204
|
||||||
2917 3381 1742820937487104560 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/x86_64/libnative-lib.so 6091450195559ce1
|
2917 3381 1742820937487104560 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/x86_64/libnative-lib.so 6091450195559ce1
|
||||||
|
14 186 1748548356158199323 /Users/hamzaaleghwairyeen/development/App/driver_sefer/build/app/intermediates/cxx/RelWithDebInfo/4y6h5l4y/obj/x86_64/libnative-lib.so 6091450195559ce1
|
||||||
|
|||||||
@@ -2,27 +2,27 @@ C/C++ Structured Log
|
|||||||
†
|
†
|
||||||
ƒ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/additional_project_files.txtC
|
ƒ/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint „¦Á°ß2 ýþãÁÜ2†
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ÓýÊðñ2 ýþãÁÜ2†
|
||||||
ƒ
|
ƒ
|
||||||
€/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/android_gradle_build.json „¦Á°ß2ˆ ÀÿãÁÜ2‹
|
€/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/android_gradle_build.json ÓýÊðñ2ˆ ÀÿãÁÜ2‹
|
||||||
ˆ
|
ˆ
|
||||||
…/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/android_gradle_build_mini.json „¦Á°ß2Ê ¤€äÁÜ2v
|
…/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/android_gradle_build_mini.json ÓýÊðñ2Ê ¤€äÁÜ2v
|
||||||
t
|
t
|
||||||
r/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/build.ninja „¦Á°ß2Ñ„ éüãÁÜ2z
|
r/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/build.ninja ÓýÊðñ2Ñ„ éüãÁÜ2z
|
||||||
x
|
x
|
||||||
v/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/build.ninja.txt „¦Á°ß2
|
v/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/build.ninja.txt ÓýÊðñ2
|
||||||
}
|
}
|
||||||
{/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/build_file_index.txt „¦Á°ß2
|
{/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/build_file_index.txt ÓýÊðñ2
|
||||||
^ ÕÕîÕ×2€
|
^ ÕÕîÕ×2€
|
||||||
~
|
~
|
||||||
|/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/compile_commands.json ÓýÊðñ2© éüãÁÜ2†
|
|/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/compile_commands.json ÓýÊðñ2© éüãÁÜ2†
|
||||||
ƒ
|
ƒ
|
||||||
€/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/compile_commands.json.bin ÓýÊðñ2 Í éüãÁÜ2Œ
|
€/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/compile_commands.json.bin ÓýÊðñ2 Í éüãÁÜ2Œ
|
||||||
‰
|
‰
|
||||||
†/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/metadata_generation_command.txt ÓýÊðñ2
|
†/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/metadata_generation_command.txt ÓýÊðñ2
|
||||||
Ÿ ÓÕîÕ×2}
|
Ÿ ÓÕîÕ×2}
|
||||||
{
|
{
|
||||||
y/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/prefab_config.json ÓýÊðñ2
|
y/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/prefab_config.json ÓýÊðñ2
|
||||||
( ÔÕîÕ×2ƒ
|
( ÔÕîÕ×2ƒ
|
||||||
€
|
€
|
||||||
~/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/symbol_folder_index.txt „¦Á°ß2
|
~/Users/hamzaaleghwairyeen/development/App/driver_sefer/android/app/.cxx/RelWithDebInfo/4y6h5l4y/x86_64/symbol_folder_index.txt ÓýÊðñ2
|
||||||
@@ -66,8 +66,8 @@ android {
|
|||||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||||
minSdk = 23
|
minSdk = 23
|
||||||
targetSdk = flutter.targetSdkVersion
|
targetSdk = flutter.targetSdkVersion
|
||||||
versionCode = 139
|
versionCode = 142
|
||||||
versionName = '2.0.139'
|
versionName = '2.0.142'
|
||||||
multiDexEnabled =true
|
multiDexEnabled =true
|
||||||
}
|
}
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
|||||||
@@ -474,14 +474,14 @@ EXTERNAL SOURCES:
|
|||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73
|
AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73
|
||||||
audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207
|
audio_session: f08db0697111ac84ba46191b55488c0563bb29c6
|
||||||
background_location: 1b80c1fe3abd9912bca298618f6e365abf6f588f
|
background_location: d888b93eca7cff45c2c084b7ecea2eec70b6e490
|
||||||
camera_avfoundation: dd002b0330f4981e1bbcb46ae9b62829237459a4
|
camera_avfoundation: 04b44aeb14070126c6529e5ab82cc7c9fca107cf
|
||||||
device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342
|
device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe
|
||||||
Firebase: cf1b19f21410b029b6786a54e9764a0cacad3c99
|
Firebase: cf1b19f21410b029b6786a54e9764a0cacad3c99
|
||||||
firebase_auth: c4bdd9d7b338ac004008cb5024a643584e0ec03f
|
firebase_auth: dee97e7428ef7c304083839d4e3bc4313c03afd5
|
||||||
firebase_core: b62a5080210edad3f2934314a8b2c6f5124e8e10
|
firebase_core: 726c34112998e66d1ddaf4b1bef78ed2dd4b9804
|
||||||
firebase_messaging: 98619a0572d82cfb3668e78859ba9f1110e268c9
|
firebase_messaging: a538130cb2bca3ea0ff0892b8c948bd7d20ecaed
|
||||||
FirebaseAnalytics: 3feef9ae8733c567866342a1000691baaa7cad49
|
FirebaseAnalytics: 3feef9ae8733c567866342a1000691baaa7cad49
|
||||||
FirebaseAppCheckInterop: 347aa09a805219a31249b58fc956888e9fcb314b
|
FirebaseAppCheckInterop: 347aa09a805219a31249b58fc956888e9fcb314b
|
||||||
FirebaseAuth: c359af98bd703cbf4293eec107a40de08ede6ce6
|
FirebaseAuth: c359af98bd703cbf4293eec107a40de08ede6ce6
|
||||||
@@ -492,17 +492,17 @@ SPEC CHECKSUMS:
|
|||||||
FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414
|
FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414
|
||||||
FirebaseMessaging: f8a160d99c2c2e5babbbcc90c4a3e15db036aee2
|
FirebaseMessaging: f8a160d99c2c2e5babbbcc90c4a3e15db036aee2
|
||||||
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
||||||
flutter_app_group_directory: d2c3337f424828558953172f9378d00df9b7756d
|
flutter_app_group_directory: 55b5362007d1c0cb45dc1dd1e94f67d615f45a6b
|
||||||
flutter_contacts: edb1c5ce76aa433e20e6cb14c615f4c0b66e0983
|
flutter_contacts: 5383945387e7ca37cf963d4be57c21f2fc15ca9f
|
||||||
flutter_image_compress_common: ec1d45c362c9d30a3f6a0426c297f47c52007e3e
|
flutter_image_compress_common: 1697a328fd72bfb335507c6bca1a65fa5ad87df1
|
||||||
flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4
|
flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99
|
||||||
flutter_local_notifications: df98d66e515e1ca797af436137b4459b160ad8c9
|
flutter_local_notifications: 395056b3175ba4f08480a7c5de30cd36d69827e4
|
||||||
flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
|
flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13
|
||||||
flutter_tts: 0f492aab6accf87059b72354fcb4ba934304771d
|
flutter_tts: b88dbc8655d3dc961bc4a796e4e16a4cc1795833
|
||||||
geolocator_apple: 9bcea1918ff7f0062d98345d238ae12718acfbc1
|
geolocator_apple: 1560c3c875af2a412242c7a923e15d0d401966ff
|
||||||
Google-Maps-iOS-Utils: 66d6de12be1ce6d3742a54661e7a79cb317a9321
|
Google-Maps-iOS-Utils: 66d6de12be1ce6d3742a54661e7a79cb317a9321
|
||||||
google_maps_flutter_ios: e31555a04d1986ab130f2b9f24b6cdc861acc6d3
|
google_maps_flutter_ios: 0291eb2aa252298a769b04d075e4a9d747ff7264
|
||||||
google_sign_in_ios: 07375bfbf2620bc93a602c0e27160d6afc6ead38
|
google_sign_in_ios: 0ab078e60da6dfe23cbc55c83502b52bba1aad63
|
||||||
GoogleAppMeasurement: 987769c4ca6b968f2479fbcc9fe3ce34af454b8e
|
GoogleAppMeasurement: 987769c4ca6b968f2479fbcc9fe3ce34af454b8e
|
||||||
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
|
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
|
||||||
GoogleMaps: 8939898920281c649150e0af74aa291c60f2e77d
|
GoogleMaps: 8939898920281c649150e0af74aa291c60f2e77d
|
||||||
@@ -510,32 +510,32 @@ SPEC CHECKSUMS:
|
|||||||
GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
|
GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
|
||||||
GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de
|
GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de
|
||||||
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
|
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
|
||||||
image_cropper: 37d40f62177c101ff4c164906d259ea2c3aa70cf
|
image_cropper: 5f162dcf988100dc1513f9c6b7eb42cd6fbf9156
|
||||||
image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1
|
image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
|
||||||
IOSSecuritySuite: b51056d5411aee567153ca86ce7f6edfdc5d2654
|
IOSSecuritySuite: b51056d5411aee567153ca86ce7f6edfdc5d2654
|
||||||
jailbreak_root_detection: b95de80c3e51eec1fc7d0225784d2fc038fa95ed
|
jailbreak_root_detection: 9201e1dfd51dc23069cbfb8d4f4a2d18305170bf
|
||||||
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
|
just_audio: 6c031bb61297cf218b4462be616638e81c058e97
|
||||||
libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009
|
libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009
|
||||||
live_activities: 5a5ddcfe2bd2cbbe7555a5da9c35b07d1a4ff2e8
|
live_activities: f2e133059358f99655c8d181d65ff54f024a6e93
|
||||||
local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3
|
local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391
|
||||||
location: d5cf8598915965547c3f36761ae9cc4f4e87d22e
|
location: 155caecf9da4f280ab5fe4a55f94ceccfab838f8
|
||||||
Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d
|
Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d
|
||||||
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
|
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
|
||||||
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
|
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
|
||||||
package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4
|
package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
|
||||||
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
|
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
||||||
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
|
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
|
||||||
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
||||||
quick_actions_ios: 56f3cbaa71e94f212838d1f9fe354bd0734779bf
|
quick_actions_ios: 4b07fb49d8d8f3518d7565fbb7a91014067a7d82
|
||||||
RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21
|
RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21
|
||||||
record_darwin: 3b1a8e7d5c0cbf45ad6165b4d83a6ca643d929c3
|
record_darwin: fb1f375f1d9603714f55b8708a903bbb91ffdb0a
|
||||||
SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8
|
SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8
|
||||||
SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380
|
SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380
|
||||||
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
|
share: a34936589f3090d59481bcdc5c30cc9dd47c75f6
|
||||||
sign_in_with_apple: f3bf75217ea4c2c8b91823f225d70230119b8440
|
sign_in_with_apple: c5dcc141574c8c54d5ac99dd2163c0c72ad22418
|
||||||
sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d
|
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
|
||||||
Stripe: 9757efc154de1d9615cbea4836d590bc4034d3a4
|
Stripe: 9757efc154de1d9615cbea4836d590bc4034d3a4
|
||||||
stripe_ios: 4463f81157e91cbbf441e1b3fdf5edce90787491
|
stripe_ios: ac48e0488f95ac7ddea9475fd30f3d739e0bae52
|
||||||
StripeApplePay: ca33933601302742623762157d587b79b942d073
|
StripeApplePay: ca33933601302742623762157d587b79b942d073
|
||||||
StripeCore: 2af250a2366ff2bbf64d4243c5f9bbf2a98b2aaf
|
StripeCore: 2af250a2366ff2bbf64d4243c5f9bbf2a98b2aaf
|
||||||
StripeFinancialConnections: 3ab1ef6182ec44e71c29e9a2100b663f9713ac20
|
StripeFinancialConnections: 3ab1ef6182ec44e71c29e9a2100b663f9713ac20
|
||||||
@@ -544,11 +544,11 @@ SPEC CHECKSUMS:
|
|||||||
StripePaymentsUI: 7d7cffb2ecfc0d6b5ac3a4488c02893a5ff6cc77
|
StripePaymentsUI: 7d7cffb2ecfc0d6b5ac3a4488c02893a5ff6cc77
|
||||||
StripeUICore: bb102d453b1e1a10a37f810bc0a9aa0675fb17fd
|
StripeUICore: bb102d453b1e1a10a37f810bc0a9aa0675fb17fd
|
||||||
TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654
|
TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654
|
||||||
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
|
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
|
||||||
vibration: 7d883d141656a1c1a6d8d238616b2042a51a1241
|
vibration: 8e2f50fc35bb736f9eecb7dd9f7047fbb6a6e888
|
||||||
video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3
|
video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b
|
||||||
wakelock_plus: 373cfe59b235a6dd5837d0fb88791d2f13a90d56
|
wakelock_plus: 04623e3f525556020ebd4034310f20fe7fda8b49
|
||||||
webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4
|
webview_flutter_wkwebview: 44d4dee7d7056d5ad185d25b38404436d56c547c
|
||||||
|
|
||||||
PODFILE CHECKSUM: 07f180bff2523e15e01e42c30418373e5627c8fd
|
PODFILE CHECKSUM: 07f180bff2523e15e01e42c30418373e5627c8fd
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>102</string>
|
<string>105</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>5.0.102</string>
|
<string>5.0.105</string>
|
||||||
<key>FirebaseAppDelegateProxyEnabled</key>
|
<key>FirebaseAppDelegateProxyEnabled</key>
|
||||||
<string>NO</string>
|
<string>NO</string>
|
||||||
<key>GMSApiKey</key>
|
<key>GMSApiKey</key>
|
||||||
|
|||||||
@@ -15,28 +15,27 @@ class AppLink {
|
|||||||
// static final String seferAlexandriaServer = Env.seferAlexandriaServer;
|
// static final String seferAlexandriaServer = Env.seferAlexandriaServer;
|
||||||
// static final String seferCairoServer = Env.seferCairoServer;
|
// static final String seferCairoServer = Env.seferCairoServer;
|
||||||
// static final String seferCairoServer =
|
// static final String seferCairoServer =
|
||||||
// 'https://server.sefer.click/sefer.click/sefer';
|
// 'https://api.tripz-egypt.com/tripz';
|
||||||
// static final String seferGizaServer = Env.seferCairoServer;
|
// static final String seferGizaServer = Env.seferCairoServer;
|
||||||
// static final String seferAlexandriaServer = Env.seferCairoServer;
|
// static final String seferAlexandriaServer = Env.seferCairoServer;
|
||||||
// static final String seferPaymentServer = '${Env.seferCairoServer}/ride';
|
// static final String seferPaymentServer = '${Env.seferCairoServer}/ride';
|
||||||
// static final String seferPaymentServer0 = Env.seferCairoServer;
|
// static final String seferPaymentServer0 = Env.seferCairoServer;
|
||||||
// static const String seferGizaServer = 'https://gizasefer.online/sefer';
|
// static const String seferGizaServer = 'https://gizasefer.online/sefer';
|
||||||
// static final String seferGizaServer = Env.seferGizaServer;
|
// static final String seferGizaServer = Env.seferGizaServer;
|
||||||
static final String endPoint =
|
static final String endPoint = 'https://api.tripz-egypt.com/tripz';
|
||||||
box.read(BoxName.serverChosen) ?? box.read(BoxName.basicLink);
|
// 'https://api.tripz-egypt.com/tripz';
|
||||||
// 'https://server.sefer.click/sefer.click/sefer';
|
|
||||||
static final String server = endPoint;
|
static final String server = endPoint;
|
||||||
static String seferCairoServer = endPoint;
|
static String seferCairoServer = endPoint;
|
||||||
static String seferGizaServer = box.read('Giza');
|
static String seferGizaServer =
|
||||||
static String seferAlexandriaServer = box.read('Alexandria');
|
box.read('Giza') ?? box.read(BoxName.serverChosen);
|
||||||
|
static String seferAlexandriaServer =
|
||||||
|
box.read('Alexandria') ?? box.read(BoxName.serverChosen);
|
||||||
// static final String server = Env.serverPHP;
|
// static final String server = Env.serverPHP;
|
||||||
|
|
||||||
static String loginJwtDriver =
|
static String loginJwtDriver = "$server/loginJwtDriver.php";
|
||||||
"https://server.sefer.click/sefer.click/sefer/loginJwtDriver.php";
|
|
||||||
static String loginJwtWalletDriver =
|
static String loginJwtWalletDriver =
|
||||||
"$seferPaymentServer/loginJwtWalletDriver.php";
|
"$seferPaymentServer/loginJwtWalletDriver.php";
|
||||||
static String loginFirstTimeDriver =
|
static String loginFirstTimeDriver = "$server/loginFirstTimeDriver.php";
|
||||||
"https://server.sefer.click/sefer.click/sefer/loginFirstTimeDriver.php";
|
|
||||||
|
|
||||||
static String googleMapsLink = 'https://maps.googleapis.com/maps/api/';
|
static String googleMapsLink = 'https://maps.googleapis.com/maps/api/';
|
||||||
static String llama = 'https://api.llama-api.com/chat/completions';
|
static String llama = 'https://api.llama-api.com/chat/completions';
|
||||||
@@ -92,7 +91,7 @@ class AppLink {
|
|||||||
static String ride = '$server/ride';
|
static String ride = '$server/ride';
|
||||||
static String addCancelRideFromPassenger = "$server/ride/cancelRide/add.php";
|
static String addCancelRideFromPassenger = "$server/ride/cancelRide/add.php";
|
||||||
static String addCancelTripFromDriverAfterApplied =
|
static String addCancelTripFromDriverAfterApplied =
|
||||||
"$server/ride/cancelRide/addCancelTripFromDriverAfterApplied.php";
|
"$ride/cancelRide/addCancelTripFromDriverAfterApplied.php";
|
||||||
static String cancelRide = "$server/ride/cancelRide/get.php";
|
static String cancelRide = "$server/ride/cancelRide/get.php";
|
||||||
//-----------------ridessss------------------
|
//-----------------ridessss------------------
|
||||||
static String addRides = "$ride/rides/add.php";
|
static String addRides = "$ride/rides/add.php";
|
||||||
@@ -102,10 +101,9 @@ class AppLink {
|
|||||||
static String getTripCountByCaptain = "$ride/rides/getTripCountByCaptain.php";
|
static String getTripCountByCaptain = "$ride/rides/getTripCountByCaptain.php";
|
||||||
static String getRideOrderID = "$ride/rides/getRideOrderID.php";
|
static String getRideOrderID = "$ride/rides/getRideOrderID.php";
|
||||||
static String getRideStatus = "$ride/rides/getRideStatus.php";
|
static String getRideStatus = "$ride/rides/getRideStatus.php";
|
||||||
static String getapiKey = Env.getapiKey;
|
static String getapiKey = "$ride/apiKey/get.php";
|
||||||
|
|
||||||
static String getapiKeySefer =
|
static String getapiKeySefer = "$ride/apiKey/get.php";
|
||||||
"https://api.sefer.click/sefer/ride/apiKey/get.php";
|
|
||||||
static String getRideStatusBegin = "$ride/rides/getRideStatusBegin.php";
|
static String getRideStatusBegin = "$ride/rides/getRideStatusBegin.php";
|
||||||
static String getRideStatusFromStartApp =
|
static String getRideStatusFromStartApp =
|
||||||
"$ride/rides/getRideStatusFromStartApp.php";
|
"$ride/rides/getRideStatusFromStartApp.php";
|
||||||
@@ -226,16 +224,16 @@ class AppLink {
|
|||||||
static String addRateToDriver = "$ride/rate/addRateToDriver.php";
|
static String addRateToDriver = "$ride/rate/addRateToDriver.php";
|
||||||
static String addRateApp = "$ride/rate/add_rate_app.php";
|
static String addRateApp = "$ride/rate/add_rate_app.php";
|
||||||
static String sendEmailRateingApp =
|
static String sendEmailRateingApp =
|
||||||
"https://api.sefer.click/sefer/ride/rate/sendEmailRateingApp.php";
|
"https://api.tripz-egypt.com/tripz/ride/rate/sendEmailRateingApp.php";
|
||||||
static String getDriverRate = "$ride/rate/getDriverRate.php";
|
static String getDriverRate = "$ride/rate/getDriverRate.php";
|
||||||
static String getPassengerRate = "$ride/rate/getPassengerRate.php";
|
static String getPassengerRate = "$ride/rate/getPassengerRate.php";
|
||||||
|
|
||||||
////////////////emails ============//
|
////////////////emails ============//
|
||||||
static String sendEmailToPassengerForTripDetails =
|
static String sendEmailToPassengerForTripDetails =
|
||||||
"https://api.sefer.click/sefer/ride/rides/emailToPassengerTripDetail.php";
|
"https://api.tripz-egypt.com/tripz/ride/rides/emailToPassengerTripDetail.php";
|
||||||
static String sendEmailToDrivertransaction =
|
static String sendEmailToDrivertransaction =
|
||||||
"https://api.sefer.click/sefer/Admin/sendEmailToDrivertransaction.php";
|
"https://api.tripz-egypt.com/tripz/Admin/sendEmailToDrivertransaction.php";
|
||||||
// "https://api.sefer.click/sefer/Admin/sendEmailToDrivertransaction.php";
|
// "https://api.tripz-egypt.com/tripz/Admin/sendEmailToDrivertransaction.php";
|
||||||
// ===========================================
|
// ===========================================
|
||||||
static String pathImage = "$server/upload/types/";
|
static String pathImage = "$server/upload/types/";
|
||||||
static String uploadImage = "$server/uploadImage.php";
|
static String uploadImage = "$server/uploadImage.php";
|
||||||
@@ -253,7 +251,7 @@ class AppLink {
|
|||||||
static String getCarsLocationByPassenger = "$location/get.php";
|
static String getCarsLocationByPassenger = "$location/get.php";
|
||||||
static String addpassengerLocation = "$location/addpassengerLocation.php";
|
static String addpassengerLocation = "$location/addpassengerLocation.php";
|
||||||
static String getLocationAreaLinks =
|
static String getLocationAreaLinks =
|
||||||
"https://server.sefer.click/sefer.click/sefer/ride/location/get_location_area_links.php";
|
"https://api.tripz-egypt.com/tripz/ride/location/get_location_area_links.php";
|
||||||
static String getLatestLocationPassenger =
|
static String getLatestLocationPassenger =
|
||||||
"$location/getLatestLocationPassenger.php";
|
"$location/getLatestLocationPassenger.php";
|
||||||
static String getFemalDriverLocationByPassenger =
|
static String getFemalDriverLocationByPassenger =
|
||||||
@@ -261,6 +259,7 @@ class AppLink {
|
|||||||
static String getDriverCarsLocationToPassengerAfterApplied =
|
static String getDriverCarsLocationToPassengerAfterApplied =
|
||||||
"$location/getDriverCarsLocationToPassengerAfterApplied.php";
|
"$location/getDriverCarsLocationToPassengerAfterApplied.php";
|
||||||
static String addCarsLocationByPassenger = "$location/add.php";
|
static String addCarsLocationByPassenger = "$location/add.php";
|
||||||
|
static String saveBehavior = "$location/save_behavior.php";
|
||||||
static String addCarsLocationGizaEndpoint = "$location/add.php";
|
static String addCarsLocationGizaEndpoint = "$location/add.php";
|
||||||
static String addCarsLocationAlexandriaEndpoint = "$location/add.php";
|
static String addCarsLocationAlexandriaEndpoint = "$location/add.php";
|
||||||
static String addCarsLocationCairoEndpoint = "$location/add.php";
|
static String addCarsLocationCairoEndpoint = "$location/add.php";
|
||||||
@@ -271,6 +270,10 @@ class AppLink {
|
|||||||
static String getTotalDriverDurationToday =
|
static String getTotalDriverDurationToday =
|
||||||
"$location/getTotalDriverDurationToday.php";
|
"$location/getTotalDriverDurationToday.php";
|
||||||
|
|
||||||
|
//==================get_driver_behavior.php=============
|
||||||
|
static String get_driver_behavior =
|
||||||
|
'$server/ride/driver_behavior/get_driver_behavior.php';
|
||||||
|
|
||||||
//==================cars new drivers=============
|
//==================cars new drivers=============
|
||||||
static String addNewCarsDrivers = '$server/ride/carDrivers/add.php';
|
static String addNewCarsDrivers = '$server/ride/carDrivers/add.php';
|
||||||
static String getNewCarsDrivers = '$server/ride/carDrivers/get.php';
|
static String getNewCarsDrivers = '$server/ride/carDrivers/get.php';
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ class TableName {
|
|||||||
static const String driverOrdersRefuse = "driverOrdersRefuse";
|
static const String driverOrdersRefuse = "driverOrdersRefuse";
|
||||||
static const String rideLocation = "rideLocation";
|
static const String rideLocation = "rideLocation";
|
||||||
static const String faceDetectTimes = "faceDetectTimes";
|
static const String faceDetectTimes = "faceDetectTimes";
|
||||||
|
static const String behavior = "behavior";
|
||||||
static const String captainNotification = "captainNotification";
|
static const String captainNotification = "captainNotification";
|
||||||
static const String applyRideFromOverLay = "applyRideFromOverLay";
|
static const String applyRideFromOverLay = "applyRideFromOverLay";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,9 +45,8 @@ class HistoryCaptainController extends GetxController {
|
|||||||
|
|
||||||
getHistoryDetails(String orderId) async {
|
getHistoryDetails(String orderId) async {
|
||||||
isloading = true;
|
isloading = true;
|
||||||
var res = await CRUD().get(
|
var res = await CRUD()
|
||||||
link: AppLink.getRideOrderID,
|
.get(link: AppLink.getRideOrderID, payload: {'id': (orderId)});
|
||||||
payload: {'id': EncryptionHelper.instance.encryptData(orderId)});
|
|
||||||
historyDetailsData = jsonDecode(res);
|
historyDetailsData = jsonDecode(res);
|
||||||
isloading = false;
|
isloading = false;
|
||||||
update();
|
update();
|
||||||
|
|||||||
@@ -150,9 +150,9 @@ Download the Tripz app now and enjoy your ride!
|
|||||||
void onSelectDriverInvitation(int index) async {
|
void onSelectDriverInvitation(int index) async {
|
||||||
MyDialog().getDialog(
|
MyDialog().getDialog(
|
||||||
int.parse((driverInvitationData[index]['countOfInvitDriver'])) < 100
|
int.parse((driverInvitationData[index]['countOfInvitDriver'])) < 100
|
||||||
? '${'When'.tr} ${EncryptionHelper.instance.decryptData(driverInvitationData[index]['invitorName'])} ${"complete, you can claim your gift".tr} '
|
? '${'When'.tr} ${(driverInvitationData[index]['invitorName'])} ${"complete, you can claim your gift".tr} '
|
||||||
: 'You deserve the gift'.tr,
|
: 'You deserve the gift'.tr,
|
||||||
'${EncryptionHelper.instance.decryptData(driverInvitationData[index]['invitorName'])} ${(driverInvitationData[index]['countOfInvitDriver'])} / 100 ${'Trip'.tr}',
|
'${(driverInvitationData[index]['invitorName'])} ${(driverInvitationData[index]['countOfInvitDriver'])} / 100 ${'Trip'.tr}',
|
||||||
() async {
|
() async {
|
||||||
bool isAvailable = await LocalAuthentication().isDeviceSupported();
|
bool isAvailable = await LocalAuthentication().isDeviceSupported();
|
||||||
if (int.parse((driverInvitationData[index]['countOfInvitDriver'])) <
|
if (int.parse((driverInvitationData[index]['countOfInvitDriver'])) <
|
||||||
@@ -173,10 +173,9 @@ Download the Tripz app now and enjoy your ride!
|
|||||||
if ((driverInvitationData[index]['isGiftToken']).toString() ==
|
if ((driverInvitationData[index]['isGiftToken']).toString() ==
|
||||||
'0') {
|
'0') {
|
||||||
Get.back();
|
Get.back();
|
||||||
await CRUD().post(link: AppLink.updateInviteDriver, payload: {
|
await CRUD().post(
|
||||||
'id': EncryptionHelper.instance
|
link: AppLink.updateInviteDriver,
|
||||||
.encryptData(driverInvitationData[index]['id'])
|
payload: {'id': (driverInvitationData[index]['id'])});
|
||||||
});
|
|
||||||
await Get.find<CaptainWalletController>().addDriverPayment(
|
await Get.find<CaptainWalletController>().addDriverPayment(
|
||||||
'paymentMethod',
|
'paymentMethod',
|
||||||
('500'),
|
('500'),
|
||||||
@@ -186,8 +185,7 @@ Download the Tripz app now and enjoy your ride!
|
|||||||
await Get.find<CaptainWalletController>()
|
await Get.find<CaptainWalletController>()
|
||||||
.addDriverWalletToInvitor(
|
.addDriverWalletToInvitor(
|
||||||
'paymentMethod',
|
'paymentMethod',
|
||||||
EncryptionHelper.instance.encryptData(
|
(driverInvitationData[index]['driverInviterId']),
|
||||||
driverInvitationData[index]['driverInviterId']),
|
|
||||||
('500'),
|
('500'),
|
||||||
);
|
);
|
||||||
await Get.find<CaptainWalletController>()
|
await Get.find<CaptainWalletController>()
|
||||||
@@ -231,9 +229,9 @@ Download the Tripz app now and enjoy your ride!
|
|||||||
int.parse(driverInvitationDataToPassengers[index]['countOfInvitDriver']
|
int.parse(driverInvitationDataToPassengers[index]['countOfInvitDriver']
|
||||||
.toString()) <
|
.toString()) <
|
||||||
3
|
3
|
||||||
? '${'When'.tr} ${EncryptionHelper.instance.decryptData(driverInvitationDataToPassengers[index]['passengerName'].toString())} ${"complete, you can claim your gift".tr} '
|
? '${'When'.tr} ${(driverInvitationDataToPassengers[index]['passengerName'].toString())} ${"complete, you can claim your gift".tr} '
|
||||||
: 'You deserve the gift'.tr,
|
: 'You deserve the gift'.tr,
|
||||||
'${EncryptionHelper.instance.decryptData(driverInvitationDataToPassengers[index]['passengerName'].toString())} ${driverInvitationDataToPassengers[index]['countOfInvitDriver']} / 3 ${'Trip'.tr}',
|
'${(driverInvitationDataToPassengers[index]['passengerName'].toString())} ${driverInvitationDataToPassengers[index]['countOfInvitDriver']} / 3 ${'Trip'.tr}',
|
||||||
() async {
|
() async {
|
||||||
if (int.parse(driverInvitationDataToPassengers[index]
|
if (int.parse(driverInvitationDataToPassengers[index]
|
||||||
['countOfInvitDriver']
|
['countOfInvitDriver']
|
||||||
@@ -342,7 +340,7 @@ Download the Tripz app now and enjoy your ride!
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (response != 'failure') {
|
if (response != 'failure') {
|
||||||
var d = jsonDecode(response);
|
var d = (response);
|
||||||
mySnackbarSuccess('Invite sent successfully'.tr);
|
mySnackbarSuccess('Invite sent successfully'.tr);
|
||||||
String message = '${'*Tripz DRIVER CODE*'.tr}\n\n'
|
String message = '${'*Tripz DRIVER CODE*'.tr}\n\n'
|
||||||
'${"Use this code in registration".tr}\n'
|
'${"Use this code in registration".tr}\n'
|
||||||
|
|||||||
@@ -98,11 +98,12 @@ class LoginDriverController extends GetxController {
|
|||||||
final random = Random();
|
final random = Random();
|
||||||
|
|
||||||
if (random.nextBool()) {
|
if (random.nextBool()) {
|
||||||
await SecurityHelper.performSecurityChecks();
|
// await SecurityHelper.performSecurityChecks();
|
||||||
} else {
|
} else {
|
||||||
await SecurityChecks.isDeviceRootedFromNative(Get.context!);
|
await SecurityChecks.isDeviceRootedFromNative(Get.context!);
|
||||||
}
|
}
|
||||||
String fingerPrint = await DeviceHelper.getDeviceFingerprint();
|
String fingerPrint = await DeviceHelper.getDeviceFingerprint();
|
||||||
|
// print('fingerPrint: ${fingerPrint}');
|
||||||
dev = Platform.isAndroid ? 'android' : 'ios';
|
dev = Platform.isAndroid ? 'android' : 'ios';
|
||||||
var payload = {
|
var payload = {
|
||||||
'id': box.read(BoxName.driverID),
|
'id': box.read(BoxName.driverID),
|
||||||
@@ -118,7 +119,7 @@ class LoginDriverController extends GetxController {
|
|||||||
// Log.print('response.body: ${response1.body}');
|
// Log.print('response.body: ${response1.body}');
|
||||||
// print(payload);
|
// print(payload);
|
||||||
// Log.print(
|
// Log.print(
|
||||||
// 'jsonDecode(response1.body)["jwt"]: ${jsonDecode(response1.body)['jwt']}');
|
// 'jsonDecode(response1.body)["jwt"]: ${jsonDecode(response1.body)['jwt']}');
|
||||||
await box.write(BoxName.hmac, jsonDecode(response1.body)['hmac']);
|
await box.write(BoxName.hmac, jsonDecode(response1.body)['hmac']);
|
||||||
return jsonDecode(response1.body)['jwt'].toString();
|
return jsonDecode(response1.body)['jwt'].toString();
|
||||||
}
|
}
|
||||||
@@ -144,9 +145,11 @@ class LoginDriverController extends GetxController {
|
|||||||
);
|
);
|
||||||
if (response0.statusCode == 200) {
|
if (response0.statusCode == 200) {
|
||||||
final decodedResponse1 = jsonDecode(response0.body);
|
final decodedResponse1 = jsonDecode(response0.body);
|
||||||
|
// Log.print('decodedResponse1: ${decodedResponse1}');
|
||||||
|
|
||||||
final jwt = decodedResponse1['jwt'];
|
final jwt = decodedResponse1['jwt'];
|
||||||
box.write(BoxName.jwt, X.c(X.c(X.c(jwt, cn), cC), cs));
|
box.write(BoxName.jwt, X.c(X.c(X.c(jwt, cn), cC), cs));
|
||||||
|
// await box.write(BoxName.hmac, decodedResponse1['hmac']);
|
||||||
|
|
||||||
await AppInitializer().getAIKey(Driver.keyOfApp);
|
await AppInitializer().getAIKey(Driver.keyOfApp);
|
||||||
await AppInitializer().getAIKey(Driver.initializationVector);
|
await AppInitializer().getAIKey(Driver.initializationVector);
|
||||||
@@ -183,6 +186,7 @@ class LoginDriverController extends GetxController {
|
|||||||
// Log.print('decodedResponse1: ${decodedResponse1}');
|
// Log.print('decodedResponse1: ${decodedResponse1}');
|
||||||
|
|
||||||
final jwt = decodedResponse1['jwt'];
|
final jwt = decodedResponse1['jwt'];
|
||||||
|
// await box.write(BoxName.hmac, decodedResponse1['hmac']);
|
||||||
await box.write(BoxName.jwt, X.c(X.c(X.c(jwt, cn), cC), cs));
|
await box.write(BoxName.jwt, X.c(X.c(X.c(jwt, cn), cC), cs));
|
||||||
await AppInitializer().getKey();
|
await AppInitializer().getKey();
|
||||||
}
|
}
|
||||||
@@ -230,7 +234,7 @@ class LoginDriverController extends GetxController {
|
|||||||
var res = await CRUD().get(link: AppLink.loginFromGoogleCaptin, payload: {
|
var res = await CRUD().get(link: AppLink.loginFromGoogleCaptin, payload: {
|
||||||
'email': email.toString().contains('@')
|
'email': email.toString().contains('@')
|
||||||
// ? (box.read(BoxName.emailDriver))
|
// ? (box.read(BoxName.emailDriver))
|
||||||
? EncryptionHelper.instance.encryptData(email)
|
? (email)
|
||||||
: email,
|
: email,
|
||||||
'id': driverID,
|
'id': driverID,
|
||||||
});
|
});
|
||||||
@@ -252,10 +256,7 @@ class LoginDriverController extends GetxController {
|
|||||||
if (jsonDecoeded.isNotEmpty) {
|
if (jsonDecoeded.isNotEmpty) {
|
||||||
if (jsonDecoeded['status'] == 'success' &&
|
if (jsonDecoeded['status'] == 'success' &&
|
||||||
jsonDecoeded['data'][0]['is_verified'].toString() == '1') {
|
jsonDecoeded['data'][0]['is_verified'].toString() == '1') {
|
||||||
box.write(
|
box.write(BoxName.emailDriver, jsonDecoeded['data'][0]['email']);
|
||||||
BoxName.emailDriver,
|
|
||||||
EncryptionHelper.instance
|
|
||||||
.decryptData(jsonDecoeded['data'][0]['email']));
|
|
||||||
box.write(BoxName.firstTimeLoadKey, 'false');
|
box.write(BoxName.firstTimeLoadKey, 'false');
|
||||||
box.write(BoxName.driverID, (jsonDecoeded['data'][0]['id']));
|
box.write(BoxName.driverID, (jsonDecoeded['data'][0]['id']));
|
||||||
box.write(BoxName.isTest, '1');
|
box.write(BoxName.isTest, '1');
|
||||||
@@ -276,16 +277,13 @@ class LoginDriverController extends GetxController {
|
|||||||
(jsonDecoeded['data'][0]['accountBank']));
|
(jsonDecoeded['data'][0]['accountBank']));
|
||||||
box.write(
|
box.write(
|
||||||
BoxName.nameDriver,
|
BoxName.nameDriver,
|
||||||
'${EncryptionHelper.instance.decryptData(jsonDecoeded['data'][0]['first_name'])}'
|
'${(jsonDecoeded['data'][0]['first_name'])}'
|
||||||
' ${EncryptionHelper.instance.decryptData(jsonDecoeded['data'][0]['last_name'])}');
|
' ${(jsonDecoeded['data'][0]['last_name'])}');
|
||||||
if (((jsonDecoeded['data'][0]['model'])
|
if (((jsonDecoeded['data'][0]['model'])
|
||||||
.toString()
|
.toString()
|
||||||
.contains('دراجه') ||
|
.contains('دراجه') ||
|
||||||
jsonDecoeded['data'][0]['make'].toString().contains('دراجه '))) {
|
jsonDecoeded['data'][0]['make'].toString().contains('دراجه '))) {
|
||||||
if (EncryptionHelper.instance
|
if ((jsonDecoeded['data'][0]['gender']).toString() == 'Male') {
|
||||||
.decryptData(jsonDecoeded['data'][0]['gender'])
|
|
||||||
.toString() ==
|
|
||||||
'Male') {
|
|
||||||
box.write(BoxName.carTypeOfDriver, 'Scooter');
|
box.write(BoxName.carTypeOfDriver, 'Scooter');
|
||||||
} else {
|
} else {
|
||||||
box.write(BoxName.carTypeOfDriver, 'Pink Bike');
|
box.write(BoxName.carTypeOfDriver, 'Pink Bike');
|
||||||
@@ -311,8 +309,9 @@ class LoginDriverController extends GetxController {
|
|||||||
link: AppLink.getDriverToken,
|
link: AppLink.getDriverToken,
|
||||||
payload: {'captain_id': (box.read(BoxName.driverID)).toString()});
|
payload: {'captain_id': (box.read(BoxName.driverID)).toString()});
|
||||||
|
|
||||||
String? fingerPrint = await DeviceHelper.getDeviceFingerprint();
|
String fingerPrint = await DeviceHelper.getDeviceFingerprint();
|
||||||
await storage.write(key: BoxName.fingerPrint, value: fingerPrint);
|
await storage.write(
|
||||||
|
key: BoxName.fingerPrint, value: fingerPrint.toString());
|
||||||
|
|
||||||
if (token != 'failure') {
|
if (token != 'failure') {
|
||||||
if ((jsonDecode(token)['data'][0]['token']) !=
|
if ((jsonDecode(token)['data'][0]['token']) !=
|
||||||
@@ -320,9 +319,7 @@ class LoginDriverController extends GetxController {
|
|||||||
Get.put(FirebaseMessagesController()).sendNotificationToDriverMAP(
|
Get.put(FirebaseMessagesController()).sendNotificationToDriverMAP(
|
||||||
'token change'.tr,
|
'token change'.tr,
|
||||||
'change device'.tr,
|
'change device'.tr,
|
||||||
EncryptionHelper.instance
|
(jsonDecode(token)['data'][0]['token']).toString(),
|
||||||
.decryptData(jsonDecode(token)['data'][0]['token'])
|
|
||||||
.toString(),
|
|
||||||
[],
|
[],
|
||||||
'promo.wav');
|
'promo.wav');
|
||||||
await Get.defaultDialog(
|
await Get.defaultDialog(
|
||||||
@@ -337,9 +334,10 @@ class LoginDriverController extends GetxController {
|
|||||||
'captain_id': (box.read(BoxName.driverID)).toString(),
|
'captain_id': (box.read(BoxName.driverID)).toString(),
|
||||||
'fingerPrint': (fingerPrint).toString()
|
'fingerPrint': (fingerPrint).toString()
|
||||||
});
|
});
|
||||||
|
// to save in payment server fingerprint
|
||||||
await CRUD().post(
|
await CRUD().post(
|
||||||
link:
|
link:
|
||||||
"${AppLink.seferAlexandriaServer}/ride/firebase/addDriver.php",
|
"${AppLink.seferPaymentServer}/ride/firebase/addDriver.php",
|
||||||
payload: {
|
payload: {
|
||||||
'token': (box.read(BoxName.tokenDriver)),
|
'token': (box.read(BoxName.tokenDriver)),
|
||||||
'captain_id':
|
'captain_id':
|
||||||
@@ -381,7 +379,7 @@ class LoginDriverController extends GetxController {
|
|||||||
update();
|
update();
|
||||||
var res = await CRUD()
|
var res = await CRUD()
|
||||||
.get(link: AppLink.loginUsingCredentialsWithoutGoogle, payload: {
|
.get(link: AppLink.loginUsingCredentialsWithoutGoogle, payload: {
|
||||||
'email': EncryptionHelper.instance.encryptData(email),
|
'email': (email),
|
||||||
'password': password,
|
'password': password,
|
||||||
});
|
});
|
||||||
box.write(BoxName.emailDriver, (email).toString());
|
box.write(BoxName.emailDriver, (email).toString());
|
||||||
@@ -409,33 +407,25 @@ class LoginDriverController extends GetxController {
|
|||||||
jsonDecoeded['data'][0]['is_verified'].toString());
|
jsonDecoeded['data'][0]['is_verified'].toString());
|
||||||
box.write(BoxName.phoneDriver, (jsonDecoeded['data'][0]['phone']));
|
box.write(BoxName.phoneDriver, (jsonDecoeded['data'][0]['phone']));
|
||||||
box.write(
|
box.write(
|
||||||
BoxName.nameArabic,
|
BoxName.nameArabic, (jsonDecoeded['data'][0]['name_arabic']));
|
||||||
EncryptionHelper.instance
|
|
||||||
.decryptData(jsonDecoeded['data'][0]['name_arabic']));
|
|
||||||
box.write(
|
box.write(
|
||||||
BoxName.bankCodeDriver, (jsonDecoeded['data'][0]['bankCode']));
|
BoxName.bankCodeDriver, (jsonDecoeded['data'][0]['bankCode']));
|
||||||
box.write(BoxName.accountBankNumberDriver,
|
box.write(BoxName.accountBankNumberDriver,
|
||||||
jsonDecoeded['data'][0]['accountBank']);
|
jsonDecoeded['data'][0]['accountBank']);
|
||||||
box.write(
|
box.write(
|
||||||
BoxName.nameDriver,
|
BoxName.nameDriver,
|
||||||
'${EncryptionHelper.instance.decryptData(jsonDecoeded['data'][0]['first_name'])}'
|
'${(jsonDecoeded['data'][0]['first_name'])}'
|
||||||
' ${EncryptionHelper.instance.decryptData(jsonDecoeded['data'][0]['last_name'])}');
|
' ${(jsonDecoeded['data'][0]['last_name'])}');
|
||||||
if ((jsonDecoeded['data'][0]['model'].toString().contains('دراجه') ||
|
if ((jsonDecoeded['data'][0]['model'].toString().contains('دراجه') ||
|
||||||
jsonDecoeded['data'][0]['make'].toString().contains('دراجه '))) {
|
jsonDecoeded['data'][0]['make'].toString().contains('دراجه '))) {
|
||||||
if (EncryptionHelper.instance
|
if ((jsonDecoeded['data'][0]['gender']).toString() == 'Male') {
|
||||||
.decryptData(jsonDecoeded['data'][0]['gender'])
|
|
||||||
.toString() ==
|
|
||||||
'Male') {
|
|
||||||
box.write(BoxName.carTypeOfDriver, 'Scooter');
|
box.write(BoxName.carTypeOfDriver, 'Scooter');
|
||||||
} else {
|
} else {
|
||||||
box.write(BoxName.carTypeOfDriver, 'Pink Bike');
|
box.write(BoxName.carTypeOfDriver, 'Pink Bike');
|
||||||
}
|
}
|
||||||
} else if (int.parse(jsonDecoeded['data'][0]['year'].toString()) >
|
} else if (int.parse(jsonDecoeded['data'][0]['year'].toString()) >
|
||||||
2017) {
|
2017) {
|
||||||
if (EncryptionHelper.instance
|
if ((jsonDecoeded['data'][0]['gender']).toString() != 'Male') {
|
||||||
.decryptData(jsonDecoeded['data'][0]['gender'])
|
|
||||||
.toString() !=
|
|
||||||
'Male') {
|
|
||||||
box.write(BoxName.carTypeOfDriver, 'Lady');
|
box.write(BoxName.carTypeOfDriver, 'Lady');
|
||||||
} else {
|
} else {
|
||||||
box.write(BoxName.carTypeOfDriver, 'Comfort');
|
box.write(BoxName.carTypeOfDriver, 'Comfort');
|
||||||
@@ -463,9 +453,7 @@ class LoginDriverController extends GetxController {
|
|||||||
Get.put(FirebaseMessagesController()).sendNotificationToDriverMAP(
|
Get.put(FirebaseMessagesController()).sendNotificationToDriverMAP(
|
||||||
'token change'.tr,
|
'token change'.tr,
|
||||||
'change device'.tr,
|
'change device'.tr,
|
||||||
EncryptionHelper.instance
|
(jsonDecode(token)['data'][0]['token']).toString(),
|
||||||
.decryptData(jsonDecode(token)['data'][0]['token'])
|
|
||||||
.toString(),
|
|
||||||
[],
|
[],
|
||||||
'ding.wav');
|
'ding.wav');
|
||||||
Get.defaultDialog(
|
Get.defaultDialog(
|
||||||
|
|||||||
@@ -100,7 +100,6 @@ class RegisterCaptainController extends GetxController {
|
|||||||
SmsEgyptController smsEgyptController = Get.put(SmsEgyptController());
|
SmsEgyptController smsEgyptController = Get.put(SmsEgyptController());
|
||||||
isLoading = true;
|
isLoading = true;
|
||||||
update();
|
update();
|
||||||
int randomNumber = Random().nextInt(100000) + 1;
|
|
||||||
isLoading = true;
|
isLoading = true;
|
||||||
update();
|
update();
|
||||||
if (formKey3.currentState!.validate()) {
|
if (formKey3.currentState!.validate()) {
|
||||||
@@ -108,8 +107,7 @@ class RegisterCaptainController extends GetxController {
|
|||||||
if (isValidEgyptianPhoneNumber(phoneController.text)) {
|
if (isValidEgyptianPhoneNumber(phoneController.text)) {
|
||||||
var responseCheker = await CRUD()
|
var responseCheker = await CRUD()
|
||||||
.post(link: AppLink.checkPhoneNumberISVerfiedDriver, payload: {
|
.post(link: AppLink.checkPhoneNumberISVerfiedDriver, payload: {
|
||||||
'phone_number': EncryptionHelper.instance
|
'phone_number': ('+2${phoneController.text}'),
|
||||||
.encryptData('+2${phoneController.text}'),
|
|
||||||
});
|
});
|
||||||
if (responseCheker != 'failure') {
|
if (responseCheker != 'failure') {
|
||||||
var d = jsonDecode(responseCheker);
|
var d = jsonDecode(responseCheker);
|
||||||
@@ -117,29 +115,18 @@ class RegisterCaptainController extends GetxController {
|
|||||||
Get.snackbar('Phone number is verified before'.tr, '',
|
Get.snackbar('Phone number is verified before'.tr, '',
|
||||||
backgroundColor: AppColor.greenColor);
|
backgroundColor: AppColor.greenColor);
|
||||||
box.write(BoxName.phoneVerified, '1');
|
box.write(BoxName.phoneVerified, '1');
|
||||||
box.write(
|
box.write(BoxName.phone, ('+2${phoneController.text}'));
|
||||||
BoxName.phone,
|
|
||||||
EncryptionHelper.instance
|
|
||||||
.encryptData('+2${phoneController.text}'));
|
|
||||||
await Get.put(LoginDriverController()).loginWithGoogleCredential(
|
await Get.put(LoginDriverController()).loginWithGoogleCredential(
|
||||||
box.read(BoxName.driverID).toString(),
|
box.read(BoxName.driverID).toString(),
|
||||||
EncryptionHelper.instance
|
(box.read(BoxName.emailDriver).toString()),
|
||||||
.encryptData(box.read(BoxName.emailDriver).toString()),
|
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
|
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
|
||||||
'phone_number': EncryptionHelper.instance
|
'phone_number': ('+2${phoneController.text}'),
|
||||||
.encryptData('+2${phoneController.text}'),
|
|
||||||
'token_code': EncryptionHelper.instance
|
|
||||||
.encryptData(randomNumber.toString()),
|
|
||||||
"driverId": box.read(BoxName.driverID),
|
"driverId": box.read(BoxName.driverID),
|
||||||
"email": EncryptionHelper.instance
|
"email": (box.read(BoxName.emailDriver)),
|
||||||
.encryptData(box.read(BoxName.emailDriver)),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
await smsEgyptController.sendSmsEgypt(
|
|
||||||
phoneController.text.toString(), randomNumber.toString());
|
|
||||||
|
|
||||||
isSent = true;
|
isSent = true;
|
||||||
|
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
@@ -147,17 +134,11 @@ class RegisterCaptainController extends GetxController {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
|
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
|
||||||
'phone_number': EncryptionHelper.instance
|
'phone_number': ('+2${phoneController.text}'),
|
||||||
.encryptData('+2${phoneController.text}'),
|
|
||||||
'token_code': EncryptionHelper.instance
|
|
||||||
.encryptData(randomNumber.toString()),
|
|
||||||
"driverId": box.read(BoxName.driverID),
|
"driverId": box.read(BoxName.driverID),
|
||||||
"email": box.read(BoxName.emailDriver),
|
"email": box.read(BoxName.emailDriver),
|
||||||
});
|
});
|
||||||
|
|
||||||
await smsEgyptController.sendSmsEgypt(
|
|
||||||
phoneController.text.toString(), randomNumber.toString());
|
|
||||||
|
|
||||||
isSent = true;
|
isSent = true;
|
||||||
|
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
@@ -250,8 +231,7 @@ class RegisterCaptainController extends GetxController {
|
|||||||
_handleAlreadyVerified() {
|
_handleAlreadyVerified() {
|
||||||
mySnackbarSuccess('Phone number is already verified'.tr);
|
mySnackbarSuccess('Phone number is already verified'.tr);
|
||||||
box.write(BoxName.phoneVerified, '1');
|
box.write(BoxName.phoneVerified, '1');
|
||||||
box.write(BoxName.phone,
|
box.write(BoxName.phone, ('+2${phoneController.text}'));
|
||||||
EncryptionHelper.instance.encryptData('+2${phoneController.text}'));
|
|
||||||
Get.put(LoginDriverController()).loginWithGoogleCredential(
|
Get.put(LoginDriverController()).loginWithGoogleCredential(
|
||||||
box.read(BoxName.driverID).toString(),
|
box.read(BoxName.driverID).toString(),
|
||||||
box.read(BoxName.emailDriver).toString(),
|
box.read(BoxName.emailDriver).toString(),
|
||||||
@@ -266,15 +246,14 @@ class RegisterCaptainController extends GetxController {
|
|||||||
await CRUD().post(
|
await CRUD().post(
|
||||||
link: AppLink.sendVerifyOtpMessage,
|
link: AppLink.sendVerifyOtpMessage,
|
||||||
payload: {
|
payload: {
|
||||||
'phone_number': EncryptionHelper.instance.encryptData('+2$phoneNumber'),
|
'phone_number': ('+2$phoneNumber'),
|
||||||
'token_code':
|
'token_code': (randomNumber.toString()),
|
||||||
EncryptionHelper.instance.encryptData(randomNumber.toString()),
|
|
||||||
'driverId': box.read(BoxName.driverID),
|
'driverId': box.read(BoxName.driverID),
|
||||||
'email': box.read(BoxName.emailDriver),
|
'email': box.read(BoxName.emailDriver),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
await smsEgyptController.sendSmsEgypt(phoneNumber, randomNumber.toString());
|
await smsEgyptController.sendSmsEgypt(phoneNumber);
|
||||||
|
|
||||||
lastOtpSentTime = DateTime.now(); // Update the last OTP sent time
|
lastOtpSentTime = DateTime.now(); // Update the last OTP sent time
|
||||||
isSent = true;
|
isSent = true;
|
||||||
@@ -286,15 +265,12 @@ class RegisterCaptainController extends GetxController {
|
|||||||
// var loginDriverController = Get.put(LoginDriverController());
|
// var loginDriverController = Get.put(LoginDriverController());
|
||||||
if (formKey3.currentState!.validate()) {
|
if (formKey3.currentState!.validate()) {
|
||||||
var res = await CRUD().post(link: AppLink.verifyOtpDriver, payload: {
|
var res = await CRUD().post(link: AppLink.verifyOtpDriver, payload: {
|
||||||
'phone_number':
|
'phone_number': ('+2${phoneController.text}'),
|
||||||
EncryptionHelper.instance.encryptData('+2${phoneController.text}'),
|
'token_code': (verifyCode.text.toString()),
|
||||||
'token_code':
|
|
||||||
EncryptionHelper.instance.encryptData(verifyCode.text.toString()),
|
|
||||||
});
|
});
|
||||||
if (res != 'failure') {
|
if (res != 'failure') {
|
||||||
// var dec = jsonDecode(res);
|
// var dec = jsonDecode(res);
|
||||||
box.write(BoxName.phoneDriver,
|
box.write(BoxName.phoneDriver, ('+2${phoneController.text}'));
|
||||||
EncryptionHelper.instance.encryptData('+2${phoneController.text}'));
|
|
||||||
box.write(BoxName.phoneVerified, '1');
|
box.write(BoxName.phoneVerified, '1');
|
||||||
|
|
||||||
// loginDriverController.isGoogleLogin == true
|
// loginDriverController.isGoogleLogin == true
|
||||||
@@ -319,10 +295,9 @@ class RegisterCaptainController extends GetxController {
|
|||||||
sendVerifications() async {
|
sendVerifications() async {
|
||||||
var res = await CRUD().post(link: AppLink.verifyEmail, payload: {
|
var res = await CRUD().post(link: AppLink.verifyEmail, payload: {
|
||||||
'email': emailController.text.isEmpty
|
'email': emailController.text.isEmpty
|
||||||
? EncryptionHelper.instance.encryptData(
|
? (Get.find<LoginDriverController>().emailController.text.toString())
|
||||||
Get.find<LoginDriverController>().emailController.text.toString())
|
: (emailController.text),
|
||||||
: EncryptionHelper.instance.encryptData(emailController.text),
|
'token': (verifyCode.text),
|
||||||
'token': EncryptionHelper.instance.encryptData(verifyCode.text),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (res != 'failure') {
|
if (res != 'failure') {
|
||||||
|
|||||||
@@ -94,9 +94,8 @@ class GoogleSignInHelper {
|
|||||||
// Retrieve driverID and emailDriver with added validation
|
// Retrieve driverID and emailDriver with added validation
|
||||||
final driverID =
|
final driverID =
|
||||||
(box.read(BoxName.driverID)!.toString()) ?? 'Unknown ID';
|
(box.read(BoxName.driverID)!.toString()) ?? 'Unknown ID';
|
||||||
final emailDriver = EncryptionHelper.instance
|
final emailDriver =
|
||||||
.encryptData(box.read(BoxName.emailDriver)!.toString()) ??
|
(box.read(BoxName.emailDriver)!.toString()) ?? 'Unknown Email';
|
||||||
'Unknown Email';
|
|
||||||
|
|
||||||
// Debug print statements
|
// Debug print statements
|
||||||
print('Driver ID: $driverID');
|
print('Driver ID: $driverID');
|
||||||
|
|||||||
@@ -60,10 +60,7 @@ class LoginController extends GetxController {
|
|||||||
if (jsonDecoeded['status'] == 'success') {
|
if (jsonDecoeded['status'] == 'success') {
|
||||||
if (jsonDecoeded['data'][0]['verified'] == 1) {
|
if (jsonDecoeded['data'][0]['verified'] == 1) {
|
||||||
box.write(BoxName.driverID, jsonDecoeded['data'][0]['id']);
|
box.write(BoxName.driverID, jsonDecoeded['data'][0]['id']);
|
||||||
box.write(
|
box.write(BoxName.emailDriver, (jsonDecoeded['data'][0]['email']));
|
||||||
BoxName.emailDriver,
|
|
||||||
EncryptionHelper.instance
|
|
||||||
.encryptData(jsonDecoeded['data'][0]['email']));
|
|
||||||
box.write(
|
box.write(
|
||||||
BoxName.nameDriver,
|
BoxName.nameDriver,
|
||||||
jsonDecoeded['data'][0]['first_name'] +
|
jsonDecoeded['data'][0]['first_name'] +
|
||||||
|
|||||||
@@ -71,8 +71,7 @@ class FirebaseMessagesController extends GetxController {
|
|||||||
Future getToken() async {
|
Future getToken() async {
|
||||||
fcmToken.getToken().then((token) {
|
fcmToken.getToken().then((token) {
|
||||||
// Log.print('token: ${token}');
|
// Log.print('token: ${token}');
|
||||||
box.write(
|
box.write(BoxName.tokenDriver, (token!));
|
||||||
BoxName.tokenDriver, EncryptionHelper.instance.encryptData(token!));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
|
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
|
||||||
@@ -409,8 +408,7 @@ class FirebaseMessagesController extends GetxController {
|
|||||||
var encryptedKey = await storage.read(key: 'FCM_PRIVATE_KEY');
|
var encryptedKey = await storage.read(key: 'FCM_PRIVATE_KEY');
|
||||||
// Log.print('encryptedKey: ${encryptedKey}');
|
// Log.print('encryptedKey: ${encryptedKey}');
|
||||||
if (encryptedKey != null) {
|
if (encryptedKey != null) {
|
||||||
serviceAccountKeyJson =
|
serviceAccountKeyJson = (encryptedKey);
|
||||||
EncryptionHelper.instance.decryptData(encryptedKey);
|
|
||||||
// Log.print('serviceAccountKeyJson: ${serviceAccountKeyJson}');
|
// Log.print('serviceAccountKeyJson: ${serviceAccountKeyJson}');
|
||||||
} else {
|
} else {
|
||||||
print('🔴 Error: FCM_PRIVATE_KEY not found in Secure Storage');
|
print('🔴 Error: FCM_PRIVATE_KEY not found in Secure Storage');
|
||||||
|
|||||||
@@ -66,12 +66,12 @@ class CRUD {
|
|||||||
return 'token_expired'; // Return a specific value for token expiration
|
return 'token_expired'; // Return a specific value for token expiration
|
||||||
} else {
|
} else {
|
||||||
// Other 401 errors
|
// Other 401 errors
|
||||||
addError('Unauthorized: ${jsonData['error']}', 'crud().post - 401');
|
// addError('Unauthorized: ${jsonData['error']}', 'crud().post - 401');
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
addError('Non-200 response code: ${response.statusCode}',
|
// addError('Non-200 response code: ${response.statusCode}',
|
||||||
'crud().post - Other');
|
// 'crud().post - Other');
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,7 +96,7 @@ class CRUD {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
// print(response.request);
|
// print(response.request);
|
||||||
// Log.print('response.request: ${response.request}');
|
// // Log.print('response.request: ${response.request}');
|
||||||
// Log.print('response.body: ${response.body}');
|
// Log.print('response.body: ${response.body}');
|
||||||
// print(payload);
|
// print(payload);
|
||||||
if (response.statusCode == 200) {
|
if (response.statusCode == 200) {
|
||||||
@@ -117,12 +117,12 @@ class CRUD {
|
|||||||
return 'token_expired'; // Return a specific value for token expiration
|
return 'token_expired'; // Return a specific value for token expiration
|
||||||
} else {
|
} else {
|
||||||
// Other 401 errors
|
// Other 401 errors
|
||||||
addError('Unauthorized: ${jsonData['error']}', 'crud().post - 401');
|
// addError('Unauthorized: ${jsonData['error']}', 'crud().post - 401');
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
addError('Non-200 response code: ${response.statusCode}',
|
// addError('Non-200 response code: ${response.statusCode}',
|
||||||
'crud().post - Other');
|
// 'crud().post - Other');
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -157,7 +157,7 @@ class CRUD {
|
|||||||
return jsonData['status'];
|
return jsonData['status'];
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
addError(e.toString(), 'crud().post - JSON decoding');
|
// addError(e.toString(), 'crud().post - JSON decoding');
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
} else if (response.statusCode == 401) {
|
} else if (response.statusCode == 401) {
|
||||||
@@ -168,16 +168,16 @@ class CRUD {
|
|||||||
return 'token_expired'; // Return a specific value for token expiration
|
return 'token_expired'; // Return a specific value for token expiration
|
||||||
} else {
|
} else {
|
||||||
// Other 401 errors
|
// Other 401 errors
|
||||||
addError('Unauthorized: ${jsonData['error']}', 'crud().post - 401');
|
// addError('Unauthorized: ${jsonData['error']}', 'crud().post - 401');
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
addError('Non-200 response code: ${response.statusCode}',
|
// addError('Non-200 response code: ${response.statusCode}',
|
||||||
'crud().post - Other');
|
// 'crud().post - Other');
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
addError('HTTP request error: $e', 'crud().post - HTTP');
|
// addError('HTTP request error: $e', 'crud().post - HTTP');
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -215,7 +215,7 @@ class CRUD {
|
|||||||
return jsonData['status'];
|
return jsonData['status'];
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
addError(e.toString(), url);
|
// addError(e.toString(), url);
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
} else if (response.statusCode == 401) {
|
} else if (response.statusCode == 401) {
|
||||||
@@ -238,16 +238,16 @@ class CRUD {
|
|||||||
return 'token_expired'; // Return a specific value for token expiration
|
return 'token_expired'; // Return a specific value for token expiration
|
||||||
} else {
|
} else {
|
||||||
// Other 401 errors
|
// Other 401 errors
|
||||||
addError('Unauthorized: ${jsonData['error']}', 'crud().post - 401');
|
// addError('Unauthorized: ${jsonData['error']}', 'crud().post - 401');
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
addError('Non-200 response code: ${response.statusCode}',
|
// addError('Non-200 response code: ${response.statusCode}',
|
||||||
'crud().post - Other');
|
// 'crud().post - Other');
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
addError('HTTP request error: $e', 'crud().post - HTTP');
|
// addError('HTTP request error: $e', 'crud().post - HTTP');
|
||||||
return 'failure';
|
return 'failure';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,9 +28,9 @@ Future<String> faceDetector() async {
|
|||||||
|
|
||||||
request.body = json.encode({
|
request.body = json.encode({
|
||||||
"url1":
|
"url1":
|
||||||
"${AppLink.seferCairoServer}/card_image/id_front-${EncryptionHelper.instance.decryptData(box.read(BoxName.driverID))}.jpg",
|
"${AppLink.seferCairoServer}/card_image/id_front-${(box.read(BoxName.driverID))}.jpg",
|
||||||
"url2":
|
"url2":
|
||||||
"https://api.sefer.live/sefer/card_image/face_detect-${EncryptionHelper.instance.decryptData(box.read(BoxName.driverID))}.jpg"
|
"https://api.sefer.live/sefer/card_image/face_detect-${(box.read(BoxName.driverID))}.jpg"
|
||||||
});
|
});
|
||||||
print('request.body: ${request.body}');
|
print('request.body: ${request.body}');
|
||||||
request.headers.addAll(headers);
|
request.headers.addAll(headers);
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'dart:math';
|
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'package:crypto/crypto.dart';
|
import 'package:crypto/crypto.dart';
|
||||||
|
|
||||||
@@ -13,8 +12,6 @@ import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart
|
|||||||
import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
|
import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
|
||||||
import 'package:sefer_driver/controller/firebase/local_notification.dart';
|
import 'package:sefer_driver/controller/firebase/local_notification.dart';
|
||||||
import 'package:sefer_driver/controller/functions/crud.dart';
|
import 'package:sefer_driver/controller/functions/crud.dart';
|
||||||
import 'package:sefer_driver/controller/functions/device_info.dart';
|
|
||||||
import 'package:sefer_driver/controller/notification/notification_captain_controller.dart';
|
|
||||||
import 'package:sefer_driver/main.dart';
|
import 'package:sefer_driver/main.dart';
|
||||||
import 'package:sefer_driver/views/home/Captin/home_captain/home_captin.dart';
|
import 'package:sefer_driver/views/home/Captin/home_captain/home_captin.dart';
|
||||||
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
|
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
|
||||||
@@ -397,16 +394,13 @@ class AI extends GetxController {
|
|||||||
update();
|
update();
|
||||||
|
|
||||||
var payload = {
|
var payload = {
|
||||||
'first_name': EncryptionHelper.instance.encryptData(
|
'first_name':
|
||||||
responseNonIdCardFront['full_name'].toString().split(' ')[0]) ??
|
(responseNonIdCardFront['full_name'].toString().split(' ')[0]) ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'last_name': EncryptionHelper.instance.encryptData(
|
'last_name':
|
||||||
responseNonIdCardFront['full_name'].toString().split(' ').last) ??
|
(responseNonIdCardFront['full_name'].toString().split(' ').last) ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'email': EncryptionHelper.instance
|
'email': (box.read(BoxName.emailDriver))?.toString() ?? 'Not specified',
|
||||||
.encryptData(box.read(BoxName.emailDriver))
|
|
||||||
?.toString() ??
|
|
||||||
'Not specified',
|
|
||||||
'phone': box.read(BoxName.phoneDriver)?.toString() ?? 'Not specified',
|
'phone': box.read(BoxName.phoneDriver)?.toString() ?? 'Not specified',
|
||||||
'id': box.read(BoxName.driverID)?.toString() ?? 'Not specified',
|
'id': box.read(BoxName.driverID)?.toString() ?? 'Not specified',
|
||||||
'password':
|
'password':
|
||||||
@@ -416,16 +410,13 @@ class AI extends GetxController {
|
|||||||
.passwordController
|
.passwordController
|
||||||
.text
|
.text
|
||||||
.toString(),
|
.toString(),
|
||||||
'gender': EncryptionHelper.instance
|
'gender':
|
||||||
.encryptData(responseNonIdCardFront['gender'].toString()) ??
|
(responseNonIdCardFront['gender'].toString()) ?? 'Not specified',
|
||||||
'Not specified',
|
|
||||||
'license_type': 'Foreign',
|
'license_type': 'Foreign',
|
||||||
'national_number': EncryptionHelper.instance
|
'national_number':
|
||||||
.encryptData(responseNonIdCardFront['passport_no'].toString()) ??
|
(responseNonIdCardFront['passport_no'].toString()) ?? 'Not specified',
|
||||||
'Not specified',
|
'name_arabic':
|
||||||
'name_arabic': EncryptionHelper.instance
|
(responseNonIdCardFront['full_name'].toString()) ?? 'Not specified',
|
||||||
.encryptData(responseNonIdCardFront['full_name'].toString()) ??
|
|
||||||
'Not specified',
|
|
||||||
'name_english': 'Not specified',
|
'name_english': 'Not specified',
|
||||||
'issue_date':
|
'issue_date':
|
||||||
responseNonIdCardBack['issueDate']?.toString() ?? 'Not specified',
|
responseNonIdCardBack['issueDate']?.toString() ?? 'Not specified',
|
||||||
@@ -437,31 +428,23 @@ class AI extends GetxController {
|
|||||||
? responseIdEgyptDriverLicense['license_categories'].join(', ')
|
? responseIdEgyptDriverLicense['license_categories'].join(', ')
|
||||||
: responseIdEgyptDriverLicense['license_categories']?.toString() ??
|
: responseIdEgyptDriverLicense['license_categories']?.toString() ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'address': EncryptionHelper.instance
|
'address':
|
||||||
.encryptData(responseNonIdCardFront['address'].toString()) ??
|
(responseNonIdCardFront['address'].toString()) ?? 'Not specified',
|
||||||
'Not specified',
|
'card_id':
|
||||||
'card_id': EncryptionHelper.instance
|
(responseNonIdCardFront['card_id'].toString()) ?? 'Not specified',
|
||||||
.encryptData(responseNonIdCardFront['card_id'].toString()) ??
|
'occupation':
|
||||||
'Not specified',
|
(responseNonIdCardBack['workStatus'].toString()) ?? 'Not specified',
|
||||||
'occupation': EncryptionHelper.instance
|
|
||||||
.encryptData(responseNonIdCardBack['workStatus'].toString()) ??
|
|
||||||
'Not specified',
|
|
||||||
'education': 'Not specified',
|
'education': 'Not specified',
|
||||||
'licenseIssueDate':
|
'licenseIssueDate':
|
||||||
responseNonIdCardBack['issueDate']?.toString() ?? 'Not specified',
|
responseNonIdCardBack['issueDate']?.toString() ?? 'Not specified',
|
||||||
'religion': EncryptionHelper.instance
|
'religion':
|
||||||
.encryptData(responseNonIdCardFront['country'].toString()) ??
|
(responseNonIdCardFront['country'].toString()) ?? 'Not specified',
|
||||||
'Not specified',
|
|
||||||
'status': 'yet',
|
'status': 'yet',
|
||||||
'birthdate': EncryptionHelper.instance
|
'birthdate':
|
||||||
.encryptData(responseNonIdCardFront['birthdate'].toString()) ??
|
(responseNonIdCardFront['birthdate'].toString()) ?? 'Not specified',
|
||||||
'Not specified',
|
|
||||||
'maritalStatus': 'Not specified',
|
'maritalStatus': 'Not specified',
|
||||||
'site': EncryptionHelper.instance
|
'site': (responseNonIdCardFront['address'].toString()) ?? 'Not specified',
|
||||||
.encryptData(responseNonIdCardFront['address'].toString()) ??
|
'employmentType': (responseNonIdCardBack['residencyType'].toString()) ??
|
||||||
'Not specified',
|
|
||||||
'employmentType': EncryptionHelper.instance
|
|
||||||
.encryptData(responseNonIdCardBack['residencyType'].toString()) ??
|
|
||||||
'Not specified',
|
'Not specified',
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -517,32 +500,22 @@ class AI extends GetxController {
|
|||||||
String hashedPassword = shortHash(pass);
|
String hashedPassword = shortHash(pass);
|
||||||
|
|
||||||
var payload = {
|
var payload = {
|
||||||
'first_name': EncryptionHelper.instance.encryptData(
|
'first_name': (responseIdEgyptDriverLicense['firstName'].toString()) ??
|
||||||
responseIdEgyptDriverLicense['firstName'].toString()) ??
|
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'last_name': EncryptionHelper.instance.encryptData(
|
'last_name': (responseIdEgyptDriverLicense['lastName'].toString()) ??
|
||||||
responseIdEgyptDriverLicense['lastName'].toString()) ??
|
|
||||||
'Not specified',
|
|
||||||
'email': EncryptionHelper.instance
|
|
||||||
.encryptData(box.read(BoxName.emailDriver))
|
|
||||||
.toString() ??
|
|
||||||
'Not specified',
|
'Not specified',
|
||||||
|
'email': (box.read(BoxName.emailDriver)).toString() ?? 'Not specified',
|
||||||
'phone': box.read(BoxName.phoneDriver)?.toString() ?? 'Not specified',
|
'phone': box.read(BoxName.phoneDriver)?.toString() ?? 'Not specified',
|
||||||
'id': box.read(BoxName.driverID)?.toString() ?? 'Not specified',
|
'id': box.read(BoxName.driverID)?.toString() ?? 'Not specified',
|
||||||
'password': hashedPassword.toString(),
|
'password': hashedPassword.toString(),
|
||||||
'gender': EncryptionHelper.instance
|
'gender': (responseIdEgyptBack['gender'].toString()) ?? 'Not specified',
|
||||||
.encryptData(responseIdEgyptBack['gender'].toString()) ??
|
'license_type':
|
||||||
'Not specified',
|
(responseIdEgyptDriverLicense['license_type'].toString()) ??
|
||||||
'license_type': EncryptionHelper.instance.encryptData(
|
'Not specified',
|
||||||
responseIdEgyptDriverLicense['license_type'].toString()) ??
|
'national_number':
|
||||||
'Not specified',
|
(responseIdEgyptBack['nationalID'].toString()) ?? 'Not specified',
|
||||||
'national_number': EncryptionHelper.instance
|
'name_arabic': (responseIdEgyptDriverLicense['name_arabic'].toString()),
|
||||||
.encryptData(responseIdEgyptBack['nationalID'].toString()) ??
|
'name_english': (responseIdEgyptDriverLicense['name_english'].toString()),
|
||||||
'Not specified',
|
|
||||||
'name_arabic': EncryptionHelper.instance
|
|
||||||
.encryptData(responseIdEgyptDriverLicense['name_arabic'].toString()),
|
|
||||||
'name_english': EncryptionHelper.instance
|
|
||||||
.encryptData(responseIdEgyptDriverLicense['name_english'].toString()),
|
|
||||||
'issue_date': responseIdEgyptDriverLicense['issue_date']?.toString() ??
|
'issue_date': responseIdEgyptDriverLicense['issue_date']?.toString() ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'expiry_date': responseIdEgyptDriverLicense['expiry_date']?.toString() ??
|
'expiry_date': responseIdEgyptDriverLicense['expiry_date']?.toString() ??
|
||||||
@@ -552,36 +525,29 @@ class AI extends GetxController {
|
|||||||
? responseIdEgyptDriverLicense['license_categories'].join(', ')
|
? responseIdEgyptDriverLicense['license_categories'].join(', ')
|
||||||
: responseIdEgyptDriverLicense['license_categories']?.toString() ??
|
: responseIdEgyptDriverLicense['license_categories']?.toString() ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'address': EncryptionHelper.instance
|
'address':
|
||||||
.encryptData(responseIdEgyptFront['address'].toString()) ??
|
(responseIdEgyptFront['address'].toString()) ?? 'Not specified',
|
||||||
'Not specified',
|
'card_id':
|
||||||
'card_id': EncryptionHelper.instance
|
(responseIdEgyptFront['card_id'].toString()) ?? 'Not specified',
|
||||||
.encryptData(responseIdEgyptFront['card_id'].toString()) ??
|
'occupation':
|
||||||
'Not specified',
|
(responseIdEgyptBack['occupation'].toString()) ?? 'Not specified',
|
||||||
'occupation': EncryptionHelper.instance
|
'education':
|
||||||
.encryptData(responseIdEgyptBack['occupation'].toString()) ??
|
(responseIdEgyptBack['occupation'].toString()) ?? 'Not specified',
|
||||||
'Not specified',
|
|
||||||
'education': EncryptionHelper.instance
|
|
||||||
.encryptData(responseIdEgyptBack['occupation'].toString()) ??
|
|
||||||
'Not specified',
|
|
||||||
'licenseIssueDate':
|
'licenseIssueDate':
|
||||||
responseIdEgyptDriverLicense['issue_date'].toString() ??
|
responseIdEgyptDriverLicense['issue_date'].toString() ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'religion': EncryptionHelper.instance
|
'religion':
|
||||||
.encryptData(responseIdEgyptBack['religion'].toString()) ??
|
(responseIdEgyptBack['religion'].toString()) ?? 'Not specified',
|
||||||
'Not specified',
|
|
||||||
'status': 'yet',
|
'status': 'yet',
|
||||||
'birthdate': EncryptionHelper.instance.encryptData(extractDOB(
|
'birthdate': (extractDOB(
|
||||||
responseIdEgyptDriverLicense['national_number'].toString())),
|
responseIdEgyptDriverLicense['national_number'].toString())),
|
||||||
'maritalStatus': EncryptionHelper.instance
|
'maritalStatus':
|
||||||
.encryptData(responseIdEgyptBack['maritalStatus'].toString()) ??
|
(responseIdEgyptBack['maritalStatus'].toString()) ?? 'Not specified',
|
||||||
'Not specified',
|
'site': (responseIdEgyptDriverLicense['address'].toString()) ??
|
||||||
'site': EncryptionHelper.instance.encryptData(
|
|
||||||
responseIdEgyptDriverLicense['address'].toString()) ??
|
|
||||||
'Not specified',
|
|
||||||
'employmentType': EncryptionHelper.instance.encryptData(
|
|
||||||
responseIdEgyptDriverLicense['employmentType'].toString()) ??
|
|
||||||
'Not specified',
|
'Not specified',
|
||||||
|
'employmentType':
|
||||||
|
(responseIdEgyptDriverLicense['employmentType'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
};
|
};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -624,8 +590,7 @@ class AI extends GetxController {
|
|||||||
var res = await CRUD().post(link: AppLink.addCriminalDocuments, payload: {
|
var res = await CRUD().post(link: AppLink.addCriminalDocuments, payload: {
|
||||||
"driverId": box.read(BoxName.driverID),
|
"driverId": box.read(BoxName.driverID),
|
||||||
"IssueDate": responseCriminalRecordEgypt['IssueDate'],
|
"IssueDate": responseCriminalRecordEgypt['IssueDate'],
|
||||||
"InspectionResult": EncryptionHelper.instance
|
"InspectionResult": (responseCriminalRecordEgypt['InspectionResult']),
|
||||||
.encryptData(responseCriminalRecordEgypt['InspectionResult']),
|
|
||||||
});
|
});
|
||||||
if (res != 'failure') {
|
if (res != 'failure') {
|
||||||
mySnackbarSuccess('uploaded sucssefuly'.tr);
|
mySnackbarSuccess('uploaded sucssefuly'.tr);
|
||||||
@@ -639,19 +604,16 @@ class AI extends GetxController {
|
|||||||
var res = await CRUD().post(link: AppLink.addRegisrationCar, payload: {
|
var res = await CRUD().post(link: AppLink.addRegisrationCar, payload: {
|
||||||
'driverID': box.read(BoxName.driverID),
|
'driverID': box.read(BoxName.driverID),
|
||||||
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
||||||
'car_plate': EncryptionHelper.instance.encryptData(
|
'car_plate': (responseIdCardDriverEgyptFront['car_plate'].toString()),
|
||||||
responseIdCardDriverEgyptFront['car_plate'].toString()),
|
|
||||||
'make': (responseIdCardDriverEgyptBack['make'].toString()),
|
'make': (responseIdCardDriverEgyptBack['make'].toString()),
|
||||||
'model': (responseIdCardDriverEgyptBack['model']),
|
'model': (responseIdCardDriverEgyptBack['model']),
|
||||||
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
||||||
'expiration_date':
|
'expiration_date':
|
||||||
responseIdCardDriverEgyptFront['LicenseExpirationDate'].toString(),
|
responseIdCardDriverEgyptFront['LicenseExpirationDate'].toString(),
|
||||||
'color': responseIdCardDriverEgyptBack['color'],
|
'color': responseIdCardDriverEgyptBack['color'],
|
||||||
'owner': EncryptionHelper.instance
|
'owner': (responseIdCardDriverEgyptFront['owner']),
|
||||||
.encryptData(responseIdCardDriverEgyptFront['owner']),
|
|
||||||
'color_hex': responseIdCardDriverEgyptBack['color_hex'].toString(),
|
'color_hex': responseIdCardDriverEgyptBack['color_hex'].toString(),
|
||||||
'address': EncryptionHelper.instance
|
'address': (responseIdCardDriverEgyptFront['address'].toString()),
|
||||||
.encryptData(responseIdCardDriverEgyptFront['address'].toString()),
|
|
||||||
'displacement': responseIdCardDriverEgyptBack['engine'].toString(),
|
'displacement': responseIdCardDriverEgyptBack['engine'].toString(),
|
||||||
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
||||||
'registration_date':
|
'registration_date':
|
||||||
@@ -669,8 +631,8 @@ class AI extends GetxController {
|
|||||||
payload: {
|
payload: {
|
||||||
'driverID': box.read(BoxName.driverID),
|
'driverID': box.read(BoxName.driverID),
|
||||||
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
||||||
'car_plate': EncryptionHelper.instance.encryptData(
|
'car_plate':
|
||||||
responseIdCardDriverEgyptFront['car_plate'].toString()),
|
(responseIdCardDriverEgyptFront['car_plate'].toString()),
|
||||||
'make': (responseIdCardDriverEgyptBack['make'].toString()),
|
'make': (responseIdCardDriverEgyptBack['make'].toString()),
|
||||||
'model': (responseIdCardDriverEgyptBack['model']),
|
'model': (responseIdCardDriverEgyptBack['model']),
|
||||||
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
||||||
@@ -678,12 +640,10 @@ class AI extends GetxController {
|
|||||||
responseIdCardDriverEgyptFront['LicenseExpirationDate']
|
responseIdCardDriverEgyptFront['LicenseExpirationDate']
|
||||||
.toString(),
|
.toString(),
|
||||||
'color': responseIdCardDriverEgyptBack['color'],
|
'color': responseIdCardDriverEgyptBack['color'],
|
||||||
'owner': EncryptionHelper.instance
|
'owner': (responseIdCardDriverEgyptFront['owner']),
|
||||||
.encryptData(responseIdCardDriverEgyptFront['owner']),
|
|
||||||
'color_hex':
|
'color_hex':
|
||||||
responseIdCardDriverEgyptBack['color_hex'].toString(),
|
responseIdCardDriverEgyptBack['color_hex'].toString(),
|
||||||
'address': EncryptionHelper.instance.encryptData(
|
'address': (responseIdCardDriverEgyptFront['address'].toString()),
|
||||||
responseIdCardDriverEgyptFront['address'].toString()),
|
|
||||||
'displacement':
|
'displacement':
|
||||||
responseIdCardDriverEgyptBack['engine'].toString(),
|
responseIdCardDriverEgyptBack['engine'].toString(),
|
||||||
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
||||||
@@ -695,8 +655,8 @@ class AI extends GetxController {
|
|||||||
payload: {
|
payload: {
|
||||||
'driverID': box.read(BoxName.driverID),
|
'driverID': box.read(BoxName.driverID),
|
||||||
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
||||||
'car_plate': EncryptionHelper.instance.encryptData(
|
'car_plate':
|
||||||
responseIdCardDriverEgyptFront['car_plate'].toString()),
|
(responseIdCardDriverEgyptFront['car_plate'].toString()),
|
||||||
'make': (responseIdCardDriverEgyptBack['make'].toString()),
|
'make': (responseIdCardDriverEgyptBack['make'].toString()),
|
||||||
'model': (responseIdCardDriverEgyptBack['model']),
|
'model': (responseIdCardDriverEgyptBack['model']),
|
||||||
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
||||||
@@ -704,12 +664,10 @@ class AI extends GetxController {
|
|||||||
responseIdCardDriverEgyptFront['LicenseExpirationDate']
|
responseIdCardDriverEgyptFront['LicenseExpirationDate']
|
||||||
.toString(),
|
.toString(),
|
||||||
'color': responseIdCardDriverEgyptBack['color'],
|
'color': responseIdCardDriverEgyptBack['color'],
|
||||||
'owner': EncryptionHelper.instance
|
'owner': (responseIdCardDriverEgyptFront['owner']),
|
||||||
.encryptData(responseIdCardDriverEgyptFront['owner']),
|
|
||||||
'color_hex':
|
'color_hex':
|
||||||
responseIdCardDriverEgyptBack['color_hex'].toString(),
|
responseIdCardDriverEgyptBack['color_hex'].toString(),
|
||||||
'address': EncryptionHelper.instance.encryptData(
|
'address': (responseIdCardDriverEgyptFront['address'].toString()),
|
||||||
responseIdCardDriverEgyptFront['address'].toString()),
|
|
||||||
'displacement':
|
'displacement':
|
||||||
responseIdCardDriverEgyptBack['engine'].toString(),
|
responseIdCardDriverEgyptBack['engine'].toString(),
|
||||||
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||||
@@ -7,7 +8,6 @@ import 'package:location/location.dart';
|
|||||||
import '../../constant/box_name.dart';
|
import '../../constant/box_name.dart';
|
||||||
import '../../constant/links.dart';
|
import '../../constant/links.dart';
|
||||||
import '../../main.dart';
|
import '../../main.dart';
|
||||||
import '../../print.dart';
|
|
||||||
import '../home/captin/home_captain_controller.dart';
|
import '../home/captin/home_captain_controller.dart';
|
||||||
import '../home/payment/captain_wallet_controller.dart';
|
import '../home/payment/captain_wallet_controller.dart';
|
||||||
import 'crud.dart';
|
import 'crud.dart';
|
||||||
@@ -18,64 +18,37 @@ class LocationController extends GetxController {
|
|||||||
late Location location = Location();
|
late Location location = Location();
|
||||||
bool isLoading = false;
|
bool isLoading = false;
|
||||||
late double heading = 0;
|
late double heading = 0;
|
||||||
late double accuracy = 0;
|
|
||||||
late double previousTime = 0;
|
late double previousTime = 0;
|
||||||
late double latitude;
|
late double latitude;
|
||||||
late double totalDistance = 0;
|
late double totalDistance = 0;
|
||||||
late double longitude;
|
late double longitude;
|
||||||
late DateTime time;
|
late DateTime time;
|
||||||
late double speed = 0;
|
late double speed = 0;
|
||||||
late double speedAccuracy = 0;
|
|
||||||
late double headingAccuracy = 0;
|
|
||||||
bool isActive = false;
|
bool isActive = false;
|
||||||
late LatLng myLocation = LatLng(0, 0); // Default value
|
late LatLng myLocation = LatLng(0, 0);
|
||||||
String totalPoints = '0';
|
String totalPoints = '0';
|
||||||
LocationData? get currentLocation => _currentLocation;
|
LocationData? get currentLocation => _currentLocation;
|
||||||
Timer? _locationTimer;
|
Timer? _locationTimer;
|
||||||
|
|
||||||
|
LatLng? _lastSavedPosition;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() async {
|
void onInit() async {
|
||||||
super.onInit();
|
super.onInit();
|
||||||
location = Location(); // Initialize the location object
|
location = Location();
|
||||||
await location.changeSettings(
|
await location.changeSettings(
|
||||||
accuracy: LocationAccuracy.high,
|
accuracy: LocationAccuracy.high, interval: 5000, distanceFilter: 0);
|
||||||
interval: 5000, // 5 seconds
|
await getLocation();
|
||||||
distanceFilter: 0);
|
await startLocationUpdates();
|
||||||
await getLocation(); // Fetch the location immediately
|
|
||||||
await startLocationUpdates(); // Start periodic location updates
|
|
||||||
|
|
||||||
totalPoints = Get.put(CaptainWalletController()).totalPoints.toString();
|
totalPoints = Get.put(CaptainWalletController()).totalPoints.toString();
|
||||||
isActive = Get.put(HomeCaptainController()).isActive;
|
isActive = Get.put(HomeCaptainController()).isActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
// String getLocationArea(double latitude, double longitude) {
|
|
||||||
// if (latitude >= 29.918901 &&
|
|
||||||
// latitude <= 30.198857 &&
|
|
||||||
// longitude >= 31.215009 &&
|
|
||||||
// longitude <= 31.532186) {
|
|
||||||
// return 'Cairo';
|
|
||||||
// } else if (latitude >= 29.904975 &&
|
|
||||||
// latitude <= 30.143372 &&
|
|
||||||
// longitude >= 30.787030 &&
|
|
||||||
// longitude <= 31.215009) {
|
|
||||||
// return 'Giza';
|
|
||||||
// } else if (latitude >= 30.396286 &&
|
|
||||||
// latitude <= 31.654458 &&
|
|
||||||
// longitude >= 29.041139 &&
|
|
||||||
// longitude <= 32.626259) {
|
|
||||||
// return 'Alexandria';
|
|
||||||
// } else {
|
|
||||||
// return 'Cairo';
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
String getLocationArea(double latitude, double longitude) {
|
String getLocationArea(double latitude, double longitude) {
|
||||||
final locations = box.read(BoxName.locationName) ?? [];
|
final locations = box.read(BoxName.locationName) ?? [];
|
||||||
for (final location in locations) {
|
for (final location in locations) {
|
||||||
final locationData = location as Map<String, dynamic>;
|
final locationData = location as Map<String, dynamic>;
|
||||||
|
|
||||||
// Debugging: Print location data
|
|
||||||
|
|
||||||
// Convert string values to double
|
|
||||||
final minLatitude =
|
final minLatitude =
|
||||||
double.tryParse(locationData['min_latitude'].toString()) ?? 0.0;
|
double.tryParse(locationData['min_latitude'].toString()) ?? 0.0;
|
||||||
final maxLatitude =
|
final maxLatitude =
|
||||||
@@ -85,21 +58,15 @@ class LocationController extends GetxController {
|
|||||||
final maxLongitude =
|
final maxLongitude =
|
||||||
double.tryParse(locationData['max_longitude'].toString()) ?? 0.0;
|
double.tryParse(locationData['max_longitude'].toString()) ?? 0.0;
|
||||||
|
|
||||||
// Debugging: Print converted values
|
|
||||||
// 'Converted Values: minLatitude=$minLatitude, maxLatitude=$maxLatitude, minLongitude=$minLongitude, maxLongitude=$maxLongitude');
|
|
||||||
|
|
||||||
if (latitude >= minLatitude &&
|
if (latitude >= minLatitude &&
|
||||||
latitude <= maxLatitude &&
|
latitude <= maxLatitude &&
|
||||||
longitude >= minLongitude &&
|
longitude >= minLongitude &&
|
||||||
longitude <= maxLongitude) {
|
longitude <= maxLongitude) {
|
||||||
box.write(BoxName.serverChosen,
|
box.write(BoxName.serverChosen, (locationData['server_link']));
|
||||||
EncryptionHelper.instance.decryptData(locationData['server_link']));
|
|
||||||
// 'locationData----server_link: ${locationData['server_link']}');
|
|
||||||
return locationData['name'];
|
return locationData['name'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default case
|
|
||||||
box.write(BoxName.serverChosen, AppLink.seferCairoServer);
|
box.write(BoxName.serverChosen, AppLink.seferCairoServer);
|
||||||
return 'Cairo';
|
return 'Cairo';
|
||||||
}
|
}
|
||||||
@@ -108,10 +75,6 @@ class LocationController extends GetxController {
|
|||||||
|
|
||||||
Future<void> startLocationUpdates() async {
|
Future<void> startLocationUpdates() async {
|
||||||
if (box.read(BoxName.driverID) != null) {
|
if (box.read(BoxName.driverID) != null) {
|
||||||
if (location == null) {
|
|
||||||
location = Location(); // Ensure location is initialized
|
|
||||||
}
|
|
||||||
|
|
||||||
_locationTimer =
|
_locationTimer =
|
||||||
Timer.periodic(const Duration(seconds: 5), (timer) async {
|
Timer.periodic(const Duration(seconds: 5), (timer) async {
|
||||||
try {
|
try {
|
||||||
@@ -121,7 +84,7 @@ class LocationController extends GetxController {
|
|||||||
|
|
||||||
if (isActive && double.parse(totalPoints) > -300) {
|
if (isActive && double.parse(totalPoints) > -300) {
|
||||||
await getLocation();
|
await getLocation();
|
||||||
if (myLocation == null) return;
|
if (myLocation.latitude == 0 && myLocation.longitude == 0) return;
|
||||||
|
|
||||||
String area =
|
String area =
|
||||||
getLocationArea(myLocation.latitude, myLocation.longitude);
|
getLocationArea(myLocation.latitude, myLocation.longitude);
|
||||||
@@ -132,22 +95,35 @@ class LocationController extends GetxController {
|
|||||||
'longitude': myLocation.longitude.toString(),
|
'longitude': myLocation.longitude.toString(),
|
||||||
'heading': heading.toString(),
|
'heading': heading.toString(),
|
||||||
'speed': (speed * 3.6).toStringAsFixed(1),
|
'speed': (speed * 3.6).toStringAsFixed(1),
|
||||||
'distance': totalDistance == 0 && (speed * 3.6) < 5
|
'distance': totalDistance.toStringAsFixed(2),
|
||||||
? '0.0'
|
|
||||||
: totalDistance < 7
|
|
||||||
? totalDistance.toStringAsFixed(3)
|
|
||||||
: totalDistance.toStringAsFixed(1),
|
|
||||||
'status': box.read(BoxName.statusDriverLocation) ?? 'off',
|
'status': box.read(BoxName.statusDriverLocation) ?? 'off',
|
||||||
};
|
};
|
||||||
|
|
||||||
// 🔁 كل 5 ثواني - تحديث الموقع
|
// ✅ تحديث للسيرفر
|
||||||
await CRUD().post(
|
await CRUD().post(
|
||||||
link:
|
link:
|
||||||
box.read(BoxName.serverChosen) + '/ride/location/update.php',
|
box.read(BoxName.serverChosen) + '/ride/location/update.php',
|
||||||
payload: payload,
|
payload: payload,
|
||||||
);
|
);
|
||||||
|
|
||||||
// 📍 كل 60 ثانية - إدخال جديد
|
// ✅ تخزين في SQLite فقط إذا الرحلة On + تحرك أكثر من 10 متر
|
||||||
|
if ((box.read(BoxName.statusDriverLocation) ?? 'off') == 'on') {
|
||||||
|
if (_lastSavedPosition == null ||
|
||||||
|
_calculateDistanceInMeters(_lastSavedPosition!, myLocation) >=
|
||||||
|
10) {
|
||||||
|
await sql.insertData({
|
||||||
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
|
'latitude': myLocation.latitude,
|
||||||
|
'longitude': myLocation.longitude,
|
||||||
|
'created_at': DateTime.now().toIso8601String(),
|
||||||
|
'updated_at': DateTime.now().toIso8601String(),
|
||||||
|
}, 'car_locations');
|
||||||
|
|
||||||
|
_lastSavedPosition = myLocation;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ✅ إدخال للسيرفر كل دقيقة
|
||||||
_insertCounter++;
|
_insertCounter++;
|
||||||
if (_insertCounter >= 12) {
|
if (_insertCounter >= 12) {
|
||||||
_insertCounter = 0;
|
_insertCounter = 0;
|
||||||
@@ -157,14 +133,14 @@ class LocationController extends GetxController {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 🔄 تحديث الكاميرا
|
// ✅ تحديث الكاميرا
|
||||||
Get.find<HomeCaptainController>()
|
Get.find<HomeCaptainController>()
|
||||||
.mapHomeCaptainController
|
.mapHomeCaptainController
|
||||||
?.animateCamera(
|
?.animateCamera(
|
||||||
CameraUpdate.newLatLng(
|
CameraUpdate.newLatLng(
|
||||||
LatLng(
|
LatLng(
|
||||||
Get.find<LocationController>().myLocation.latitude,
|
myLocation.latitude,
|
||||||
Get.find<LocationController>().myLocation.longitude,
|
myLocation.longitude,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -181,30 +157,18 @@ class LocationController extends GetxController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> getLocation() async {
|
Future<void> getLocation() async {
|
||||||
if (location == null) {
|
bool serviceEnabled = await location.serviceEnabled();
|
||||||
location = Location(); // تأكد من أن `Location` مهيأ
|
|
||||||
}
|
|
||||||
|
|
||||||
bool serviceEnabled;
|
|
||||||
PermissionStatus permissionGranted;
|
|
||||||
|
|
||||||
serviceEnabled = await location.serviceEnabled();
|
|
||||||
if (!serviceEnabled) {
|
if (!serviceEnabled) {
|
||||||
serviceEnabled = await location.requestService();
|
serviceEnabled = await location.requestService();
|
||||||
if (!serviceEnabled) {
|
if (!serviceEnabled) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
permissionGranted = await location.hasPermission();
|
PermissionStatus permissionGranted = await location.hasPermission();
|
||||||
if (permissionGranted == PermissionStatus.denied) {
|
if (permissionGranted == PermissionStatus.denied) {
|
||||||
permissionGranted = await location.requestPermission();
|
permissionGranted = await location.requestPermission();
|
||||||
if (permissionGranted != PermissionStatus.granted) {
|
if (permissionGranted != PermissionStatus.granted) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **تجنب استدعاء `getLocation()` مباشرة على الـ Main Thread**
|
|
||||||
Future.delayed(Duration(milliseconds: 500), () async {
|
Future.delayed(Duration(milliseconds: 500), () async {
|
||||||
try {
|
try {
|
||||||
LocationData _locationData = await location.getLocation();
|
LocationData _locationData = await location.getLocation();
|
||||||
@@ -212,80 +176,27 @@ class LocationController extends GetxController {
|
|||||||
myLocation =
|
myLocation =
|
||||||
LatLng(_locationData.latitude!, _locationData.longitude!);
|
LatLng(_locationData.latitude!, _locationData.longitude!);
|
||||||
} else {
|
} else {
|
||||||
myLocation = LatLng(0, 0); // Default value
|
myLocation = LatLng(0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
speed = _locationData.speed ?? 0;
|
speed = _locationData.speed ?? 0;
|
||||||
heading = _locationData.heading ?? 0;
|
heading = _locationData.heading ?? 0;
|
||||||
|
|
||||||
if (Get.find<HomeCaptainController>().rideId == 'rideId') {
|
|
||||||
if (previousTime > 0) {
|
|
||||||
double distance = calculateDistanceInKmPerHour(
|
|
||||||
previousTime, _locationData.time, speed);
|
|
||||||
totalDistance += distance;
|
|
||||||
}
|
|
||||||
previousTime = _locationData.time ?? 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
update();
|
update();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print("Error getting location: $e");
|
print("Error getting location: $e");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Future<void> getLocation() async {
|
|
||||||
// if (location == null) {
|
|
||||||
// location = Location(); // Ensure location is initialized
|
|
||||||
// }
|
|
||||||
|
|
||||||
// bool serviceEnabled;
|
double _calculateDistanceInMeters(LatLng start, LatLng end) {
|
||||||
// PermissionStatus permissionGranted;
|
const p = 0.017453292519943295;
|
||||||
|
final a = 0.5 -
|
||||||
// serviceEnabled = await location.serviceEnabled();
|
cos((end.latitude - start.latitude) * p) / 2 +
|
||||||
// if (!serviceEnabled) {
|
cos(start.latitude * p) *
|
||||||
// serviceEnabled = await location.requestService();
|
cos(end.latitude * p) *
|
||||||
// if (!serviceEnabled) {
|
(1 - cos((end.longitude - start.longitude) * p)) /
|
||||||
// return;
|
2;
|
||||||
// }
|
return 12742 * 1000 * asin(sqrt(a)); // meters
|
||||||
// }
|
|
||||||
|
|
||||||
// permissionGranted = await location.hasPermission();
|
|
||||||
// if (permissionGranted == PermissionStatus.denied) {
|
|
||||||
// permissionGranted = await location.requestPermission();
|
|
||||||
// if (permissionGranted != PermissionStatus.granted) {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// LocationData _locationData = await location.getLocation();
|
|
||||||
// if (_locationData.latitude != null && _locationData.longitude != null) {
|
|
||||||
// myLocation = LatLng(_locationData.latitude!, _locationData.longitude!);
|
|
||||||
// } else {
|
|
||||||
// myLocation = LatLng(0, 0); // Default value
|
|
||||||
// }
|
|
||||||
|
|
||||||
// speed = _locationData.speed ?? 0;
|
|
||||||
// heading = _locationData.heading ?? 0;
|
|
||||||
|
|
||||||
// if (Get.find<HomeCaptainController>().rideId == 'rideId') {
|
|
||||||
// if (previousTime > 0) {
|
|
||||||
// double distance = calculateDistanceInKmPerHour(
|
|
||||||
// previousTime, _locationData.time, speed);
|
|
||||||
// totalDistance += distance;
|
|
||||||
// }
|
|
||||||
// previousTime = _locationData.time ?? 0;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// update();
|
|
||||||
// }
|
|
||||||
|
|
||||||
double calculateDistanceInKmPerHour(
|
|
||||||
double? startTime, double? endTime, double speedInMetersPerSecond) {
|
|
||||||
double timeDifferenceInHours =
|
|
||||||
(endTime ?? 0 - startTime! ?? 0) / 1000 / 3600;
|
|
||||||
double speedInKmPerHour = speedInMetersPerSecond * 3.6;
|
|
||||||
double distanceInKilometers = speedInKmPerHour * timeDifferenceInHours;
|
|
||||||
double distanceInMeters = distanceInKilometers * 1000;
|
|
||||||
return distanceInMeters < 5 ? 0 : distanceInKilometers;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,9 +75,7 @@ class LogOutController extends GetxController {
|
|||||||
confirm: MyElevatedButton(
|
confirm: MyElevatedButton(
|
||||||
title: 'Delete'.tr,
|
title: 'Delete'.tr,
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
if (checkTxtController.text ==
|
if (checkTxtController.text == (box.read(BoxName.nameDriver))) {
|
||||||
EncryptionHelper.instance
|
|
||||||
.decryptData(box.read(BoxName.nameDriver))) {
|
|
||||||
// deletecaptainAccount();
|
// deletecaptainAccount();
|
||||||
|
|
||||||
var id = await checkBeforeDelete();
|
var id = await checkBeforeDelete();
|
||||||
|
|||||||
@@ -197,8 +197,8 @@ class DeviceHelper {
|
|||||||
|
|
||||||
// Generate and return the encrypted fingerprint
|
// Generate and return the encrypted fingerprint
|
||||||
final String fingerprint = '${deviceId}_${deviceModel}_$osVersion';
|
final String fingerprint = '${deviceId}_${deviceModel}_$osVersion';
|
||||||
print(EncryptionHelper.instance.encryptData(fingerprint));
|
// print(EncryptionHelper.instance.encryptData(fingerprint));
|
||||||
return EncryptionHelper.instance.encryptData(fingerprint);
|
return (fingerprint);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
throw Exception('Failed to generate device fingerprint');
|
throw Exception('Failed to generate device fingerprint');
|
||||||
}
|
}
|
||||||
@@ -247,15 +247,15 @@ class SecurityHelper {
|
|||||||
await box.write('isTampered', isTampered); // Use await
|
await box.write('isTampered', isTampered); // Use await
|
||||||
await box.write('isJailBroken', isJailBroken); // Use await
|
await box.write('isJailBroken', isJailBroken); // Use await
|
||||||
|
|
||||||
// debugPrint("Security Check Results:");
|
debugPrint("Security Check Results:");
|
||||||
// debugPrint("isNotTrust: $isNotTrust");
|
debugPrint("isNotTrust: $isNotTrust");
|
||||||
// debugPrint("isJailBroken: $isJailBroken");
|
debugPrint("isJailBroken: $isJailBroken");
|
||||||
// debugPrint("isRealDevice: $isRealDevice");
|
debugPrint("isRealDevice: $isRealDevice");
|
||||||
// debugPrint("isOnExternalStorage: $isOnExternalStorage");
|
debugPrint("isOnExternalStorage: $isOnExternalStorage");
|
||||||
// debugPrint("checkForIssues: $checkForIssues");
|
debugPrint("checkForIssues: $checkForIssues");
|
||||||
// debugPrint("isDevMode: $isDevMode");
|
debugPrint("isDevMode: $isDevMode");
|
||||||
// debugPrint("isTampered: $isTampered");
|
debugPrint("isTampered: $isTampered");
|
||||||
// debugPrint("Bundle ID: $bundleId"); // Print the bundle ID
|
debugPrint("Bundle ID: $bundleId"); // Print the bundle ID
|
||||||
|
|
||||||
// Check for security risks and potentially show a warning
|
// Check for security risks and potentially show a warning
|
||||||
if (isJailBroken || isRealDevice == false || isTampered) {
|
if (isJailBroken || isRealDevice == false || isTampered) {
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ class AppInitializer {
|
|||||||
|
|
||||||
Future<void> initializeApp() async {
|
Future<void> initializeApp() async {
|
||||||
if (box.read(BoxName.jwt) == null) {
|
if (box.read(BoxName.jwt) == null) {
|
||||||
|
Log.print('box.read(BoxName.jwt): ${box.read(BoxName.jwt)}');
|
||||||
await LoginDriverController().getJWT();
|
await LoginDriverController().getJWT();
|
||||||
} else {
|
} else {
|
||||||
bool isTokenExpired = JwtDecoder.isExpired(X
|
bool isTokenExpired = JwtDecoder.isExpired(X
|
||||||
@@ -74,16 +75,11 @@ class AppInitializer {
|
|||||||
links = List<Map<String, dynamic>>.from(jsonDecode(res)['message']);
|
links = List<Map<String, dynamic>>.from(jsonDecode(res)['message']);
|
||||||
|
|
||||||
await box.write(BoxName.locationName, links);
|
await box.write(BoxName.locationName, links);
|
||||||
await box.write(BoxName.basicLink,
|
await box.write(BoxName.basicLink, (links[0]['server_link']));
|
||||||
EncryptionHelper.instance.decryptData(links[0]['server_link']));
|
await box.write(links[2]['name'], (links[2]['server_link']));
|
||||||
await box.write(links[2]['name'],
|
await box.write(links[1]['name'], (links[3]['server_link']));
|
||||||
EncryptionHelper.instance.decryptData(links[2]['server_link']));
|
await box.write(links[3]['name'], (links[1]['server_link']));
|
||||||
await box.write(links[1]['name'],
|
await box.write(BoxName.paymentLink, (links[4]['server_link']));
|
||||||
EncryptionHelper.instance.decryptData(links[3]['server_link']));
|
|
||||||
await box.write(links[3]['name'],
|
|
||||||
EncryptionHelper.instance.decryptData(links[1]['server_link']));
|
|
||||||
await box.write(BoxName.paymentLink,
|
|
||||||
EncryptionHelper.instance.decryptData(links[4]['server_link']));
|
|
||||||
}
|
}
|
||||||
} catch (e) {}
|
} catch (e) {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,16 +27,9 @@ class SmsEgyptController extends GetxController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<dynamic> sendSmsEgypt(String phone, otp) async {
|
Future<dynamic> sendSmsEgypt(String phone) async {
|
||||||
String sender = await getSender();
|
String sender = await getSender();
|
||||||
var body = jsonEncode({
|
var body = jsonEncode({"receiver": "2$phone"});
|
||||||
"username": 'Sefer',
|
|
||||||
"password": AK.smsPasswordEgypt,
|
|
||||||
"message": "${AppInformation.appName} app code is $otp\ncopy it to app",
|
|
||||||
"language": box.read(BoxName.lang) == 'en' ? "e" : 'r',
|
|
||||||
"sender": sender, //"Sefer Egy", // todo add sefer sender name
|
|
||||||
"receiver": "2$phone"
|
|
||||||
});
|
|
||||||
|
|
||||||
var res = await http.post(
|
var res = await http.post(
|
||||||
Uri.parse(AppLink.sendSms),
|
Uri.parse(AppLink.sendSms),
|
||||||
@@ -46,19 +39,16 @@ class SmsEgyptController extends GetxController {
|
|||||||
|
|
||||||
if (jsonDecode(res.body)['message'].toString() != "Success") {
|
if (jsonDecode(res.body)['message'].toString() != "Success") {
|
||||||
await CRUD().post(link: AppLink.updatePhoneInvalidSMS, payload: {
|
await CRUD().post(link: AppLink.updatePhoneInvalidSMS, payload: {
|
||||||
"phone_number": EncryptionHelper.instance.encryptData(
|
"phone_number":
|
||||||
'+2${Get.find<RegisterCaptainController>().phoneController.text}')
|
('+2${Get.find<RegisterCaptainController>().phoneController.text}')
|
||||||
});
|
});
|
||||||
box.write(
|
box.write(BoxName.phoneDriver,
|
||||||
BoxName.phoneDriver,
|
('+2${Get.find<RegisterCaptainController>().phoneController.text}'));
|
||||||
EncryptionHelper.instance.encryptData(
|
|
||||||
'+2${Get.find<RegisterCaptainController>().phoneController.text}'));
|
|
||||||
box.write(BoxName.phoneVerified, '1');
|
box.write(BoxName.phoneVerified, '1');
|
||||||
|
|
||||||
await Get.put(LoginDriverController()).loginWithGoogleCredential(
|
await Get.put(LoginDriverController()).loginWithGoogleCredential(
|
||||||
box.read(BoxName.driverID).toString(),
|
box.read(BoxName.driverID).toString(),
|
||||||
EncryptionHelper.instance
|
(box.read(BoxName.emailDriver).toString()),
|
||||||
.encryptData(box.read(BoxName.emailDriver).toString()),
|
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Get.defaultDialog(
|
Get.defaultDialog(
|
||||||
|
|||||||
@@ -419,10 +419,8 @@ class ImageController extends GetxController {
|
|||||||
await uploadImage(
|
await uploadImage(
|
||||||
compressedImage,
|
compressedImage,
|
||||||
{
|
{
|
||||||
'driverID': EncryptionHelper.instance
|
'driverID':
|
||||||
.decryptData(box.read(BoxName.driverID)) ??
|
(box.read(BoxName.driverID)) ?? (box.read(BoxName.passengerID)),
|
||||||
EncryptionHelper.instance
|
|
||||||
.decryptData(box.read(BoxName.passengerID)),
|
|
||||||
'imageType': imageType
|
'imageType': imageType
|
||||||
},
|
},
|
||||||
link,
|
link,
|
||||||
@@ -461,8 +459,7 @@ class ImageController extends GetxController {
|
|||||||
'image',
|
'image',
|
||||||
stream,
|
stream,
|
||||||
length,
|
length,
|
||||||
filename:
|
filename: '${(box.read(BoxName.driverID))}.jpg',
|
||||||
'${EncryptionHelper.instance.decryptData(box.read(BoxName.driverID))}.jpg',
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
data.forEach((key, value) {
|
data.forEach((key, value) {
|
||||||
|
|||||||
115
lib/controller/home/captin/behavior_controller.dart
Normal file
115
lib/controller/home/captin/behavior_controller.dart
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
import 'dart:math';
|
||||||
|
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
import 'package:sefer_driver/constant/box_name.dart';
|
||||||
|
import 'package:sefer_driver/constant/links.dart';
|
||||||
|
import 'package:sefer_driver/controller/functions/crud.dart';
|
||||||
|
|
||||||
|
import '../../../constant/table_names.dart';
|
||||||
|
import '../../../main.dart';
|
||||||
|
|
||||||
|
class DriverBehaviorController extends GetxController {
|
||||||
|
Future<List<Map<String, dynamic>>> getAllData() async {
|
||||||
|
return await sql.getAllData(TableName.behavior);
|
||||||
|
}
|
||||||
|
|
||||||
|
var isLoading = false.obs;
|
||||||
|
var overallScore = 100.0.obs;
|
||||||
|
var lastTrips = [].obs;
|
||||||
|
|
||||||
|
Future<void> fetchDriverBehavior() async {
|
||||||
|
isLoading.value = true;
|
||||||
|
try {
|
||||||
|
final response = await CRUD().get(
|
||||||
|
link: AppLink.get_driver_behavior,
|
||||||
|
payload: {"driver_id": box.read(BoxName.driverID).toString()},
|
||||||
|
);
|
||||||
|
|
||||||
|
if (response != 'failure') {
|
||||||
|
final json = jsonDecode(response.body);
|
||||||
|
|
||||||
|
overallScore.value =
|
||||||
|
double.parse(json['data']['overall_behavior_score'].toString());
|
||||||
|
lastTrips.value = json['data']['last_10_trips'];
|
||||||
|
} else {
|
||||||
|
// Get.snackbar("Error", json['message'] ?? "Unknown error");
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
Get.snackbar("Error", "Exception: $e");
|
||||||
|
} finally {
|
||||||
|
isLoading.value = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<Map<String, dynamic>> analyzeData() async {
|
||||||
|
final data = await getAllData();
|
||||||
|
if (data.isEmpty) return {};
|
||||||
|
|
||||||
|
double maxSpeed = 0;
|
||||||
|
double totalSpeed = 0;
|
||||||
|
int hardBrakes = 0;
|
||||||
|
double totalDistance = 0;
|
||||||
|
double? prevLat, prevLng;
|
||||||
|
|
||||||
|
for (var item in data) {
|
||||||
|
double speed = item['speed'] ?? 0;
|
||||||
|
double lat = item['lat'] ?? 0;
|
||||||
|
double lng = item['lng'] ?? 0;
|
||||||
|
double acc = item['acceleration'] ?? 0;
|
||||||
|
|
||||||
|
if (speed > maxSpeed) maxSpeed = speed;
|
||||||
|
totalSpeed += speed;
|
||||||
|
|
||||||
|
// ✅ Hard brake threshold
|
||||||
|
if (acc.abs() > 3.0) hardBrakes++;
|
||||||
|
|
||||||
|
// ✅ Distance between points
|
||||||
|
if (prevLat != null && prevLng != null) {
|
||||||
|
totalDistance += _calculateDistance(prevLat, prevLng, lat, lng);
|
||||||
|
}
|
||||||
|
prevLat = lat;
|
||||||
|
prevLng = lng;
|
||||||
|
}
|
||||||
|
|
||||||
|
double avgSpeed = totalSpeed / data.length;
|
||||||
|
double behaviorScore = 100 - (hardBrakes * 5) - ((maxSpeed > 100) ? 10 : 0);
|
||||||
|
behaviorScore = behaviorScore.clamp(0, 100);
|
||||||
|
|
||||||
|
return {
|
||||||
|
'max_speed': maxSpeed,
|
||||||
|
'avg_speed': avgSpeed,
|
||||||
|
'hard_brakes': hardBrakes,
|
||||||
|
'total_distance': totalDistance,
|
||||||
|
'behavior_score': behaviorScore,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> sendSummaryToServer(String driverId, String tripId) async {
|
||||||
|
final summary = await analyzeData();
|
||||||
|
if (summary.isEmpty) return;
|
||||||
|
|
||||||
|
final body = {
|
||||||
|
'driver_id': driverId,
|
||||||
|
'trip_id': tripId,
|
||||||
|
...summary,
|
||||||
|
};
|
||||||
|
|
||||||
|
CRUD().post(link: AppLink.saveBehavior, payload: (body));
|
||||||
|
|
||||||
|
await clearData();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> clearData() async {
|
||||||
|
await sql.deleteAllData(TableName.behavior);
|
||||||
|
}
|
||||||
|
|
||||||
|
double _calculateDistance(
|
||||||
|
double lat1, double lon1, double lat2, double lon2) {
|
||||||
|
const p = 0.017453292519943295;
|
||||||
|
final a = 0.5 -
|
||||||
|
cos((lat2 - lat1) * p) / 2 +
|
||||||
|
cos(lat1 * p) * cos(lat2 * p) * (1 - cos((lon2 - lon1) * p)) / 2;
|
||||||
|
return 12742 * asin(sqrt(a)); // distance in km
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,8 +31,7 @@ class HelpController extends GetxController {
|
|||||||
update();
|
update();
|
||||||
var res = await CRUD().post(link: AppLink.addhelpCenter, payload: {
|
var res = await CRUD().post(link: AppLink.addhelpCenter, payload: {
|
||||||
'driverID': box.read(BoxName.driverID).toString(),
|
'driverID': box.read(BoxName.driverID).toString(),
|
||||||
'helpQuestion':
|
'helpQuestion': (helpQuestionController.text)
|
||||||
EncryptionHelper.instance.encryptData(helpQuestionController.text)
|
|
||||||
});
|
});
|
||||||
var d = jsonDecode(res);
|
var d = jsonDecode(res);
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
|
|||||||
@@ -198,9 +198,7 @@ class HomeCaptainController extends GetxController {
|
|||||||
controller.animateCamera(
|
controller.animateCamera(
|
||||||
CameraUpdate.newLatLng(Get.find<LocationController>().myLocation),
|
CameraUpdate.newLatLng(Get.find<LocationController>().myLocation),
|
||||||
);
|
);
|
||||||
} else {
|
} else {}
|
||||||
print("Controller is null, cannot proceed.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void savePeriod(Duration period) {
|
void savePeriod(Duration period) {
|
||||||
@@ -299,7 +297,6 @@ class HomeCaptainController extends GetxController {
|
|||||||
// List<Map<String, dynamic>> results =
|
// List<Map<String, dynamic>> results =
|
||||||
// await sql.getCustomQuery(customQuery);
|
// await sql.getCustomQuery(customQuery);
|
||||||
// countRefuse = results[0]['count'].toString();
|
// countRefuse = results[0]['count'].toString();
|
||||||
// print(countRefuse);
|
|
||||||
// update();
|
// update();
|
||||||
// if (int.parse(countRefuse) > 3) {
|
// if (int.parse(countRefuse) > 3) {
|
||||||
// box.write(BoxName.statusDriverLocation, 'on');
|
// box.write(BoxName.statusDriverLocation, 'on');
|
||||||
@@ -324,34 +321,34 @@ class HomeCaptainController extends GetxController {
|
|||||||
|
|
||||||
addToken() async {
|
addToken() async {
|
||||||
String? fingerPrint = await storage.read(key: BoxName.fingerPrint);
|
String? fingerPrint = await storage.read(key: BoxName.fingerPrint);
|
||||||
await CRUD().post(link: AppLink.addTokensDriver, payload: {
|
CRUD().post(link: AppLink.addTokensDriver, payload: {
|
||||||
'token': (box.read(BoxName.tokenDriver)),
|
'token': (box.read(BoxName.tokenDriver)),
|
||||||
'captain_id': (box.read(BoxName.driverID)).toString(),
|
'captain_id': (box.read(BoxName.driverID)).toString(),
|
||||||
'fingerPrint': (fingerPrint).toString()
|
'fingerPrint': (fingerPrint).toString()
|
||||||
});
|
});
|
||||||
|
|
||||||
await CRUD().post(
|
// CRUD().post(
|
||||||
link: "${AppLink.seferAlexandriaServer}/ride/firebase/addDriver.php",
|
// link: "${AppLink.seferAlexandriaServer}/ride/firebase/addDriver.php",
|
||||||
payload: {
|
// payload: {
|
||||||
'token': box.read(BoxName.tokenDriver),
|
// 'token': box.read(BoxName.tokenDriver),
|
||||||
'captain_id': box.read(BoxName.driverID).toString(),
|
// 'captain_id': box.read(BoxName.driverID).toString(),
|
||||||
'fingerPrint': (fingerPrint).toString()
|
// 'fingerPrint': (fingerPrint).toString()
|
||||||
});
|
// });
|
||||||
await CRUD().post(
|
// CRUD().post(
|
||||||
link: "${AppLink.seferGizaServer}/ride/firebase/addDriver.php",
|
// link: "${AppLink.seferGizaServer}/ride/firebase/addDriver.php",
|
||||||
payload: {
|
// payload: {
|
||||||
'token': box.read(BoxName.tokenDriver),
|
// 'token': box.read(BoxName.tokenDriver),
|
||||||
'captain_id': box.read(BoxName.driverID).toString(),
|
// 'captain_id': box.read(BoxName.driverID).toString(),
|
||||||
'fingerPrint': (fingerPrint).toString()
|
// 'fingerPrint': (fingerPrint).toString()
|
||||||
});
|
// });
|
||||||
await CRUD().post(
|
await CRUD().postWallet(
|
||||||
link: "${AppLink.seferPaymentServer}/ride/firebase/addDriver.php",
|
link: "${AppLink.seferPaymentServer}/ride/firebase/addDriver.php",
|
||||||
payload: {
|
payload: {
|
||||||
'token': box.read(BoxName.tokenDriver),
|
'token': box.read(BoxName.tokenDriver),
|
||||||
'captain_id': box.read(BoxName.driverID).toString(),
|
'captain_id': box.read(BoxName.driverID).toString(),
|
||||||
'fingerPrint': (fingerPrint).toString()
|
'fingerPrint': (fingerPrint).toString()
|
||||||
});
|
});
|
||||||
MapDriverController().driverCallPassenger();
|
// MapDriverController().driverCallPassenger();
|
||||||
// box.write(BoxName.statusDriverLocation, 'off');
|
// box.write(BoxName.statusDriverLocation, 'off');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
import 'package:sefer_driver/controller/home/captin/behavior_controller.dart';
|
||||||
import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
|
import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
|
||||||
import 'package:sefer_driver/views/widgets/mydialoug.dart';
|
import 'package:sefer_driver/views/widgets/mydialoug.dart';
|
||||||
import 'package:bubble_head/bubble.dart';
|
import 'package:bubble_head/bubble.dart';
|
||||||
@@ -183,9 +184,7 @@ class MapDriverController extends GetxController {
|
|||||||
await CRUD().post(
|
await CRUD().post(
|
||||||
link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
||||||
payload: {
|
payload: {
|
||||||
"id": EncryptionHelper.instance
|
"id": (rideId).toString(), // Convert to String
|
||||||
.encryptData(rideId)
|
|
||||||
.toString(), // Convert to String
|
|
||||||
"status": 'CancelFromDriverAfterApply'
|
"status": 'CancelFromDriverAfterApply'
|
||||||
});
|
});
|
||||||
CRUD().postFromDialogue(
|
CRUD().postFromDialogue(
|
||||||
@@ -193,28 +192,22 @@ class MapDriverController extends GetxController {
|
|||||||
payload: {
|
payload: {
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
// box.read(BoxName.driverID).toString(),
|
// box.read(BoxName.driverID).toString(),
|
||||||
'order_id':
|
'order_id': (rideId).toString(),
|
||||||
EncryptionHelper.instance.encryptData(rideId).toString(),
|
|
||||||
'status': 'CancelFromDriverAfterApply'
|
'status': 'CancelFromDriverAfterApply'
|
||||||
});
|
});
|
||||||
await CRUD().post(
|
await CRUD().post(
|
||||||
link:
|
link:
|
||||||
"${AppLink.seferCairoServer}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php",
|
"${AppLink.seferCairoServer}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php",
|
||||||
payload: {
|
payload: {
|
||||||
"order_id":
|
"order_id": (rideId).toString(),
|
||||||
EncryptionHelper.instance.encryptData(rideId).toString(),
|
|
||||||
"driver_id": box.read(BoxName.driverID).toString(),
|
"driver_id": box.read(BoxName.driverID).toString(),
|
||||||
"status": 'reject After Applied',
|
"status": 'reject After Applied',
|
||||||
"notes": EncryptionHelper.instance
|
"notes": (cancelTripCotroller.text).toString()
|
||||||
.encryptData(cancelTripCotroller.text)
|
|
||||||
.toString()
|
|
||||||
});
|
});
|
||||||
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
||||||
CRUD()
|
CRUD()
|
||||||
.post(link: "${AppLink.endPoint}/ride/rides/update.php", payload: {
|
.post(link: "${AppLink.endPoint}/ride/rides/update.php", payload: {
|
||||||
"id": EncryptionHelper.instance
|
"id": (rideId).toString(), // Convert to String
|
||||||
.encryptData(rideId)
|
|
||||||
.toString(), // Convert to String
|
|
||||||
"status": 'CancelFromDriverAfterApply'
|
"status": 'CancelFromDriverAfterApply'
|
||||||
});
|
});
|
||||||
CRUD().postFromDialogue(
|
CRUD().postFromDialogue(
|
||||||
@@ -222,26 +215,22 @@ class MapDriverController extends GetxController {
|
|||||||
payload: {
|
payload: {
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
// box.read(BoxName.driverID).toString(),
|
// box.read(BoxName.driverID).toString(),
|
||||||
'order_id':
|
'order_id': (rideId).toString(),
|
||||||
EncryptionHelper.instance.encryptData(rideId).toString(),
|
|
||||||
'status': 'CancelFromDriverAfterApply'
|
'status': 'CancelFromDriverAfterApply'
|
||||||
});
|
});
|
||||||
CRUD().post(
|
CRUD().post(
|
||||||
link:
|
link:
|
||||||
"${AppLink.endPoint}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php",
|
"${AppLink.endPoint}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php",
|
||||||
payload: {
|
payload: {
|
||||||
"order_id":
|
"order_id": (rideId).toString(),
|
||||||
EncryptionHelper.instance.encryptData(rideId).toString(),
|
|
||||||
"driver_id": box.read(BoxName.driverID).toString(),
|
"driver_id": box.read(BoxName.driverID).toString(),
|
||||||
"status": 'reject After Applied',
|
"status": 'reject After Applied',
|
||||||
"notes": EncryptionHelper.instance
|
"notes": (cancelTripCotroller.text).toString()
|
||||||
.encryptData(cancelTripCotroller.text)
|
|
||||||
.toString()
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
sql.insertData({
|
sql.insertData({
|
||||||
'order_id': EncryptionHelper.instance.encryptData(rideId),
|
'order_id': (rideId),
|
||||||
'created_at': DateTime.now().toString(),
|
'created_at': DateTime.now().toString(),
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
}, TableName.driverOrdersRefuse);
|
}, TableName.driverOrdersRefuse);
|
||||||
@@ -312,13 +301,13 @@ class MapDriverController extends GetxController {
|
|||||||
await CRUD().post(
|
await CRUD().post(
|
||||||
link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
||||||
payload: {
|
payload: {
|
||||||
'id': EncryptionHelper.instance.encryptData(rideId),
|
'id': (rideId),
|
||||||
'driverGoToPassengerTime': DateTime.now().toString(),
|
'driverGoToPassengerTime': DateTime.now().toString(),
|
||||||
'status': 'Applied'
|
'status': 'Applied'
|
||||||
});
|
});
|
||||||
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
||||||
CRUD().post(link: "${AppLink.endPoint}/ride/rides/update.php", payload: {
|
CRUD().post(link: "${AppLink.endPoint}/ride/rides/update.php", payload: {
|
||||||
'id': EncryptionHelper.instance.encryptData(rideId),
|
'id': (rideId),
|
||||||
'driverGoToPassengerTime': DateTime.now().toString(),
|
'driverGoToPassengerTime': DateTime.now().toString(),
|
||||||
'status': 'Applied'
|
'status': 'Applied'
|
||||||
});
|
});
|
||||||
@@ -533,35 +522,35 @@ class MapDriverController extends GetxController {
|
|||||||
: (distanceBetweenDriverAndPassengerWhenConfirm * .06) +
|
: (distanceBetweenDriverAndPassengerWhenConfirm * .06) +
|
||||||
(5 * .06); //for Eygpt other like jordan .06 per minute
|
(5 * .06); //for Eygpt other like jordan .06 per minute
|
||||||
await CRUD().post(link: AppLink.updateRides, payload: {
|
await CRUD().post(link: AppLink.updateRides, payload: {
|
||||||
'id': EncryptionHelper.instance.encryptData(rideId),
|
'id': (rideId),
|
||||||
'rideTimeStart': DateTime.now().toString(),
|
'rideTimeStart': DateTime.now().toString(),
|
||||||
'status': 'CancelAfterWait',
|
'status': 'CancelAfterWait',
|
||||||
});
|
});
|
||||||
CRUD().post(link: AppLink.addDriverOrder, payload: {
|
CRUD().post(link: AppLink.addDriverOrder, payload: {
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
'order_id': EncryptionHelper.instance.encryptData(rideId).toString(),
|
'order_id': (rideId).toString(),
|
||||||
'status': 'CancelAfterWait'
|
'status': 'CancelAfterWait'
|
||||||
});
|
});
|
||||||
|
|
||||||
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
||||||
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
|
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
|
||||||
'id': EncryptionHelper.instance.encryptData(rideId),
|
'id': (rideId),
|
||||||
'rideTimeStart': DateTime.now().toString(),
|
'rideTimeStart': DateTime.now().toString(),
|
||||||
'status': 'CancelAfterWait',
|
'status': 'CancelAfterWait',
|
||||||
});
|
});
|
||||||
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
|
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
'order_id': EncryptionHelper.instance.encryptData(rideId).toString(),
|
'order_id': (rideId).toString(),
|
||||||
'status': 'CancelAfterWait'
|
'status': 'CancelAfterWait'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
var paymentTokenWait =
|
var paymentTokenWait =
|
||||||
await generateTokenDriver(costOfWaiting5Minute.toString());
|
await generateTokenDriver(costOfWaiting5Minute.toString());
|
||||||
var res = await CRUD().post(link: AppLink.addDrivePayment, payload: {
|
var res = await CRUD().post(link: AppLink.addDrivePayment, payload: {
|
||||||
'rideId': EncryptionHelper.instance.encryptData(rideId),
|
'rideId': (rideId),
|
||||||
'amount': (costOfWaiting5Minute.toString()),
|
'amount': (costOfWaiting5Minute.toString()),
|
||||||
'payment_method': 'wait-cancel',
|
'payment_method': 'wait-cancel',
|
||||||
'passengerID': EncryptionHelper.instance.encryptData(passengerId),
|
'passengerID': (passengerId),
|
||||||
'token': paymentTokenWait,
|
'token': paymentTokenWait,
|
||||||
'driverID': box.read(BoxName.driverID).toString(),
|
'driverID': box.read(BoxName.driverID).toString(),
|
||||||
});
|
});
|
||||||
@@ -569,7 +558,7 @@ class MapDriverController extends GetxController {
|
|||||||
await generateTokenDriver(costOfWaiting5Minute.toString());
|
await generateTokenDriver(costOfWaiting5Minute.toString());
|
||||||
var res1 =
|
var res1 =
|
||||||
await CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
await CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
||||||
'paymentID': 'rideId${EncryptionHelper.instance.encryptData(rideId)}',
|
'paymentID': 'rideId${(rideId)}',
|
||||||
'amount': (costOfWaiting5Minute).toStringAsFixed(0),
|
'amount': (costOfWaiting5Minute).toStringAsFixed(0),
|
||||||
'paymentMethod': 'wait',
|
'paymentMethod': 'wait',
|
||||||
'token': paymentTokenWait1,
|
'token': paymentTokenWait1,
|
||||||
@@ -585,7 +574,7 @@ class MapDriverController extends GetxController {
|
|||||||
var paymentTokenWaitPassenger1 =
|
var paymentTokenWaitPassenger1 =
|
||||||
await generateTokenPassenger((costOfWaiting5Minute * -1).toString());
|
await generateTokenPassenger((costOfWaiting5Minute * -1).toString());
|
||||||
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||||
'passenger_id': EncryptionHelper.instance.encryptData(passengerId),
|
'passenger_id': (passengerId),
|
||||||
'balance': (costOfWaiting5Minute * -1).toString(),
|
'balance': (costOfWaiting5Minute * -1).toString(),
|
||||||
'token': paymentTokenWaitPassenger1,
|
'token': paymentTokenWaitPassenger1,
|
||||||
});
|
});
|
||||||
@@ -671,13 +660,13 @@ class MapDriverController extends GetxController {
|
|||||||
// Prepare data for API calls
|
// Prepare data for API calls
|
||||||
final nowString = DateTime.now().toString();
|
final nowString = DateTime.now().toString();
|
||||||
final basePayload = {
|
final basePayload = {
|
||||||
'id': EncryptionHelper.instance.encryptData(rideId),
|
'id': (rideId),
|
||||||
'rideTimeFinish': nowString,
|
'rideTimeFinish': nowString,
|
||||||
'status': 'Finished',
|
'status': 'Finished',
|
||||||
'price': totalCost,
|
'price': totalCost,
|
||||||
};
|
};
|
||||||
final driverOrderPayload = {
|
final driverOrderPayload = {
|
||||||
'order_id': EncryptionHelper.instance.encryptData(rideId.toString()),
|
'order_id': (rideId.toString()),
|
||||||
'status': 'Finished'
|
'status': 'Finished'
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -710,7 +699,7 @@ class MapDriverController extends GetxController {
|
|||||||
paymentToken = await generateTokenPassenger(
|
paymentToken = await generateTokenPassenger(
|
||||||
((-1) * double.parse(paymentAmount)).toString());
|
((-1) * double.parse(paymentAmount)).toString());
|
||||||
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||||
'passenger_id': EncryptionHelper.instance.encryptData(passengerId),
|
'passenger_id': (passengerId),
|
||||||
'balance': ((-1) * double.parse(paymentAmount)).toString(),
|
'balance': ((-1) * double.parse(paymentAmount)).toString(),
|
||||||
'token': paymentToken,
|
'token': paymentToken,
|
||||||
}));
|
}));
|
||||||
@@ -718,11 +707,11 @@ class MapDriverController extends GetxController {
|
|||||||
|
|
||||||
paymentToken = await generateTokenDriver(paymentAmount.toString());
|
paymentToken = await generateTokenDriver(paymentAmount.toString());
|
||||||
futures.add(CRUD().post(link: AppLink.addDrivePayment, payload: {
|
futures.add(CRUD().post(link: AppLink.addDrivePayment, payload: {
|
||||||
'rideId': EncryptionHelper.instance.encryptData(rideId),
|
'rideId': (rideId),
|
||||||
'amount': paymentAmount,
|
'amount': paymentAmount,
|
||||||
'payment_method':
|
'payment_method':
|
||||||
walletChecked == 'true' ? "${paymentMethod}Ride" : paymentMethod,
|
walletChecked == 'true' ? "${paymentMethod}Ride" : paymentMethod,
|
||||||
'passengerID': EncryptionHelper.instance.encryptData(passengerId),
|
'passengerID': (passengerId),
|
||||||
'token': paymentToken,
|
'token': paymentToken,
|
||||||
'driverID': box.read(BoxName.driverID).toString(),
|
'driverID': box.read(BoxName.driverID).toString(),
|
||||||
}));
|
}));
|
||||||
@@ -731,7 +720,7 @@ class MapDriverController extends GetxController {
|
|||||||
final paymentToken1 = await generateTokenPassenger(
|
final paymentToken1 = await generateTokenPassenger(
|
||||||
((-1) * double.parse(passengerWalletBurc)).toString());
|
((-1) * double.parse(passengerWalletBurc)).toString());
|
||||||
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||||
'passenger_id': EncryptionHelper.instance.encryptData(passengerId),
|
'passenger_id': (passengerId),
|
||||||
'token': paymentToken1,
|
'token': paymentToken1,
|
||||||
'balance': ((-1) * double.parse(passengerWalletBurc)).toString()
|
'balance': ((-1) * double.parse(passengerWalletBurc)).toString()
|
||||||
}));
|
}));
|
||||||
@@ -741,7 +730,7 @@ class MapDriverController extends GetxController {
|
|||||||
final paymentToken2 =
|
final paymentToken2 =
|
||||||
await generateTokenDriver((pointsSubtraction).toStringAsFixed(0));
|
await generateTokenDriver((pointsSubtraction).toStringAsFixed(0));
|
||||||
futures.add(CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
futures.add(CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
||||||
'paymentID': 'rideId${EncryptionHelper.instance.encryptData(rideId)}',
|
'paymentID': 'rideId${(rideId)}',
|
||||||
'amount': (pointsSubtraction).toStringAsFixed(0),
|
'amount': (pointsSubtraction).toStringAsFixed(0),
|
||||||
'paymentMethod': paymentMethod,
|
'paymentMethod': paymentMethod,
|
||||||
'token': paymentToken2,
|
'token': paymentToken2,
|
||||||
@@ -750,6 +739,7 @@ class MapDriverController extends GetxController {
|
|||||||
|
|
||||||
// Wait for all independent API calls to complete
|
// Wait for all independent API calls to complete
|
||||||
await Future.wait(futures);
|
await Future.wait(futures);
|
||||||
|
Get.put(DriverBehaviorController()).sendSummaryToServer(driverId, rideId);
|
||||||
|
|
||||||
// Send notification (this likely depends on previous steps)
|
// Send notification (this likely depends on previous steps)
|
||||||
FirebaseMessagesController().sendNotificationToDriverMAP(
|
FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||||
@@ -898,7 +888,7 @@ class MapDriverController extends GetxController {
|
|||||||
var res = await CRUD().get(
|
var res = await CRUD().get(
|
||||||
link: "${AppLink.endPoint}/ride/driver_order/getOrderCancelStatus.php",
|
link: "${AppLink.endPoint}/ride/driver_order/getOrderCancelStatus.php",
|
||||||
payload: {
|
payload: {
|
||||||
'order_id': EncryptionHelper.instance.encryptData(rideId),
|
'order_id': (rideId),
|
||||||
}); //.then((value) {
|
}); //.then((value) {
|
||||||
var response = jsonDecode(res);
|
var response = jsonDecode(res);
|
||||||
canelString = response['data']['status'];
|
canelString = response['data']['status'];
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ class DriverWalletHistoryController extends GetxController {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
archive = jsonDecode(res)['message'];
|
archive = jsonDecode(res)['message'];
|
||||||
|
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -157,11 +157,9 @@ class PaymentController extends GetxController {
|
|||||||
paymentIntentClientSecret: clientSecret,
|
paymentIntentClientSecret: clientSecret,
|
||||||
merchantDisplayName: AppInformation.appName,
|
merchantDisplayName: AppInformation.appName,
|
||||||
billingDetails: BillingDetails(
|
billingDetails: BillingDetails(
|
||||||
name: EncryptionHelper.instance
|
name: (box.read(BoxName.nameDriver)),
|
||||||
.decryptData(box.read(BoxName.nameDriver)),
|
|
||||||
email: (box.read(BoxName.emailDriver)),
|
email: (box.read(BoxName.emailDriver)),
|
||||||
phone: EncryptionHelper.instance
|
phone: (box.read(BoxName.phoneDriver)),
|
||||||
.decryptData(box.read(BoxName.phoneDriver)),
|
|
||||||
address: Address(
|
address: Address(
|
||||||
city: 'city',
|
city: 'city',
|
||||||
country: box.read(BoxName.countryCode), //'United States'
|
country: box.read(BoxName.countryCode), //'United States'
|
||||||
|
|||||||
@@ -133,13 +133,10 @@ class PaymobManager extends GetxController {
|
|||||||
"amount_cents": amount,
|
"amount_cents": amount,
|
||||||
"currency": currency,
|
"currency": currency,
|
||||||
"billing_data": {
|
"billing_data": {
|
||||||
"first_name":
|
"first_name": (box.read(BoxName.nameDriver)),
|
||||||
EncryptionHelper.instance.decryptData(box.read(BoxName.nameDriver)),
|
"last_name": (box.read(BoxName.lastNameDriver)),
|
||||||
"last_name": EncryptionHelper.instance
|
|
||||||
.decryptData(box.read(BoxName.lastNameDriver)),
|
|
||||||
"email": (box.read(BoxName.emailDriver)),
|
"email": (box.read(BoxName.emailDriver)),
|
||||||
"phone_number": EncryptionHelper.instance
|
"phone_number": (box.read(BoxName.phoneDriver)),
|
||||||
.decryptData(box.read(BoxName.phoneDriver)),
|
|
||||||
"apartment": "NA",
|
"apartment": "NA",
|
||||||
"floor": "NA",
|
"floor": "NA",
|
||||||
"street": "NA",
|
"street": "NA",
|
||||||
|
|||||||
@@ -227,8 +227,7 @@ class PaymobBillingData {
|
|||||||
"email": (box.read(BoxName.emailDriver)),
|
"email": (box.read(BoxName.emailDriver)),
|
||||||
"first_name": box.read(BoxName.nameDriver),
|
"first_name": box.read(BoxName.nameDriver),
|
||||||
"last_name": box.read(BoxName.nameDriver),
|
"last_name": box.read(BoxName.nameDriver),
|
||||||
"phone_number":
|
"phone_number": (box.read(BoxName.phoneDriver)),
|
||||||
EncryptionHelper.instance.decryptData(box.read(BoxName.phoneDriver)),
|
|
||||||
"apartment": apartment ?? "NA",
|
"apartment": apartment ?? "NA",
|
||||||
"floor": floor ?? "NA",
|
"floor": floor ?? "NA",
|
||||||
"building": building ?? "NA",
|
"building": building ?? "NA",
|
||||||
|
|||||||
@@ -43,9 +43,7 @@ class RatingController extends GetxController {
|
|||||||
? box.read(BoxName.nameDriver)
|
? box.read(BoxName.nameDriver)
|
||||||
: box.read(BoxName.name),
|
: box.read(BoxName.name),
|
||||||
"email": (box.read(BoxName.emailDriver)).toString(),
|
"email": (box.read(BoxName.emailDriver)).toString(),
|
||||||
"phone": EncryptionHelper.instance
|
"phone": (box.read(BoxName.phoneDriver)).toString(),
|
||||||
.decryptData(box.read(BoxName.phoneDriver))
|
|
||||||
.toString(),
|
|
||||||
"userId": box.read(BoxName.driverID),
|
"userId": box.read(BoxName.driverID),
|
||||||
"userType": "driver",
|
"userType": "driver",
|
||||||
"rating": rating.toString(),
|
"rating": rating.toString(),
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ class _MyAppState extends State<MyApp> {
|
|||||||
|
|
||||||
String? key = (await storage.read(key: BoxName.payMobApikey));
|
String? key = (await storage.read(key: BoxName.payMobApikey));
|
||||||
if (key != null) {
|
if (key != null) {
|
||||||
String? apiKey = EncryptionHelper.instance.decryptData(key);
|
String? apiKey = (key);
|
||||||
if (apiKey != null) {
|
if (apiKey != null) {
|
||||||
PaymobPayment.instance.initialize(
|
PaymobPayment.instance.initialize(
|
||||||
// Use .instance
|
// Use .instance
|
||||||
|
|||||||
@@ -72,6 +72,16 @@ class DbSql {
|
|||||||
faceDetectTimes INTEGER
|
faceDetectTimes INTEGER
|
||||||
)
|
)
|
||||||
''');
|
''');
|
||||||
|
await db.execute('''
|
||||||
|
CREATE TABLE IF NOT EXISTS ${TableName.behavior}(
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
speed REAL,
|
||||||
|
lat REAL,
|
||||||
|
lng REAL,
|
||||||
|
acceleration REAL,
|
||||||
|
timestamp TEXT
|
||||||
|
)
|
||||||
|
''');
|
||||||
await db.execute('''
|
await db.execute('''
|
||||||
CREATE TABLE IF NOT EXISTS ${TableName.captainNotification}(
|
CREATE TABLE IF NOT EXISTS ${TableName.captainNotification}(
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
|||||||
@@ -95,17 +95,17 @@ class AiPage extends StatelessWidget {
|
|||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${'Name'.tr} :${EncryptionHelper.instance.decryptData(contentController.responseMap['first_name'])}',
|
'${'Name'.tr} :${(contentController.responseMap['first_name'])}',
|
||||||
style: AppStyle.subtitle,
|
style: AppStyle.subtitle,
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
' ${EncryptionHelper.instance.decryptData(contentController.responseMap['last_name'])}',
|
' ${(contentController.responseMap['last_name'])}',
|
||||||
style: AppStyle.subtitle,
|
style: AppStyle.subtitle,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'${'Name in arabic'.tr}: ${EncryptionHelper.instance.decryptData(contentController.responseMap['name_in_arabic'])}',
|
'${'Name in arabic'.tr}: ${(contentController.responseMap['name_in_arabic'])}',
|
||||||
style: AppStyle.title,
|
style: AppStyle.title,
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
@@ -121,7 +121,7 @@ class AiPage extends StatelessWidget {
|
|||||||
MainAxisAlignment.spaceBetween,
|
MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${'National Number'.tr}: ${EncryptionHelper.instance.decryptData(contentController.responseMap['id'])}',
|
'${'National Number'.tr}: ${(contentController.responseMap['id'])}',
|
||||||
style: AppStyle.title,
|
style: AppStyle.title,
|
||||||
),
|
),
|
||||||
// Image.memory(
|
// Image.memory(
|
||||||
@@ -131,7 +131,7 @@ class AiPage extends StatelessWidget {
|
|||||||
// ),
|
// ),
|
||||||
]),
|
]),
|
||||||
Text(
|
Text(
|
||||||
'${'Address'.tr}: ${EncryptionHelper.instance.decryptData(contentController.responseMap['address'])}',
|
'${'Address'.tr}: ${(contentController.responseMap['address'])}',
|
||||||
style: AppStyle.title,
|
style: AppStyle.title,
|
||||||
),
|
),
|
||||||
Row(
|
Row(
|
||||||
|
|||||||
@@ -322,8 +322,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
EncryptionHelper.instance.decryptData(
|
(ai.prompts[0]['prompt'].toString()),
|
||||||
ai.prompts[0]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'driver_license'); //egypt
|
'driver_license'); //egypt
|
||||||
},
|
},
|
||||||
@@ -335,32 +334,30 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
const Divider(color: AppColor.accentColor),
|
const Divider(color: AppColor.accentColor),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'License Type'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptDriverLicense['license_type'])}',
|
'${'License Type'.tr}: ${(ai.responseIdEgyptDriverLicense['license_type'])}',
|
||||||
style: AppStyle.title,
|
style: AppStyle.title,
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'National Number'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptDriverLicense['national_number'])}',
|
'${'National Number'.tr}: ${(ai.responseIdEgyptDriverLicense['national_number'])}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
color: EncryptionHelper.instance.decryptData(
|
color: (ai.responseIdEgyptDriverLicense[
|
||||||
ai.responseIdEgyptDriverLicense[
|
'national_number']) ==
|
||||||
'national_number']) ==
|
(ai.responseIdEgyptBack['nationalID'])
|
||||||
EncryptionHelper.instance.decryptData(
|
|
||||||
ai.responseIdEgyptBack['nationalID'])
|
|
||||||
? AppColor.greenColor
|
? AppColor.greenColor
|
||||||
: AppColor.redColor),
|
: AppColor.redColor),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Name (Arabic)'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptDriverLicense['name_arabic'])}',
|
'${'Name (Arabic)'.tr}: ${(ai.responseIdEgyptDriverLicense['name_arabic'])}',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Name (English)'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptDriverLicense['name_english'])}',
|
'${'Name (English)'.tr}: ${(ai.responseIdEgyptDriverLicense['name_english'])}',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Address'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptDriverLicense['address'])}',
|
'${'Address'.tr}: ${(ai.responseIdEgyptDriverLicense['address'])}',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
@@ -386,11 +383,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI((ai.prompts[0]['prompt'].toString()),
|
||||||
EncryptionHelper.instance
|
AppLink.uploadEgypt, 'driver_license'); //egypt
|
||||||
.decryptData(ai.prompts[0]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
|
||||||
'driver_license'); //egypt
|
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -443,8 +437,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
EncryptionHelper.instance.decryptData(
|
(ai.prompts[1]['prompt'].toString()),
|
||||||
ai.prompts[1]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'id_back'); //egypt
|
'id_back'); //egypt
|
||||||
},
|
},
|
||||||
@@ -457,20 +450,18 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
// Assuming these keys exist in ai.responseIdEgyptFront
|
// Assuming these keys exist in ai.responseIdEgyptFront
|
||||||
Text(
|
Text(
|
||||||
'${'National ID'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptBack['nationalID'])}',
|
'${'National ID'.tr}: ${(ai.responseIdEgyptBack['nationalID'])}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
color: EncryptionHelper.instance.decryptData(
|
color: (ai.responseIdEgyptDriverLicense[
|
||||||
ai.responseIdEgyptDriverLicense[
|
'national_number']) ==
|
||||||
'national_number']) ==
|
(ai.responseIdEgyptBack['nationalID'])
|
||||||
EncryptionHelper.instance.decryptData(
|
|
||||||
ai.responseIdEgyptBack['nationalID'])
|
|
||||||
? AppColor.greenColor
|
? AppColor.greenColor
|
||||||
: AppColor.redColor),
|
: AppColor.redColor),
|
||||||
),
|
),
|
||||||
|
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Occupation'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptBack['occupation'])}', // Assuming 'occupation' exists
|
'${'Occupation'.tr}: ${(ai.responseIdEgyptBack['occupation'])}', // Assuming 'occupation' exists
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Row(
|
Row(
|
||||||
@@ -480,7 +471,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
'${'Issue Date'.tr}: ${ai.responseIdEgyptBack['issueDate']}', // Assuming 'issueDate' exists
|
'${'Issue Date'.tr}: ${ai.responseIdEgyptBack['issueDate']}', // Assuming 'issueDate' exists
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'${'Gender'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptBack['gender'])}', // Assuming 'gender' exists
|
'${'Gender'.tr}: ${(ai.responseIdEgyptBack['gender'])}', // Assuming 'gender' exists
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -516,11 +507,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI((ai.prompts[1]['prompt'].toString()),
|
||||||
EncryptionHelper.instance
|
AppLink.uploadEgypt, 'id_back'); //egypt
|
||||||
.decryptData(ai.prompts[1]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
|
||||||
'id_back'); //egypt
|
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -571,8 +559,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
EncryptionHelper.instance.decryptData(
|
(ai.prompts[7]['prompt'].toString()),
|
||||||
ai.prompts[7]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'non_id_back');
|
'non_id_back');
|
||||||
},
|
},
|
||||||
@@ -584,16 +571,16 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
const Divider(color: AppColor.accentColor),
|
const Divider(color: AppColor.accentColor),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Country'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseNonIdCardBack['country'])}',
|
'${'Country'.tr}: ${(ai.responseNonIdCardBack['country'])}',
|
||||||
style: AppStyle.title,
|
style: AppStyle.title,
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Residency Type'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseNonIdCardBack['residencyType'])}',
|
'${'Residency Type'.tr}: ${(ai.responseNonIdCardBack['residencyType'])}',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Work Status'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseNonIdCardBack['workStatus'])}',
|
'${'Work Status'.tr}: ${(ai.responseNonIdCardBack['workStatus'])}',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Row(
|
Row(
|
||||||
@@ -603,7 +590,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
'${'Issue Date'.tr}: ${ai.responseNonIdCardBack['issueDate']}',
|
'${'Issue Date'.tr}: ${ai.responseNonIdCardBack['issueDate']}',
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'${'Birth Date'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseNonIdCardBack['birthDate'])}',
|
'${'Birth Date'.tr}: ${(ai.responseNonIdCardBack['birthDate'])}',
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -623,11 +610,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI((ai.prompts[7]['prompt'].toString()),
|
||||||
EncryptionHelper.instance
|
AppLink.uploadEgypt, 'non_id_back');
|
||||||
.decryptData(ai.prompts[7]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
|
||||||
'non_id_back');
|
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -670,8 +654,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
EncryptionHelper.instance.decryptData(
|
(ai.prompts[2]['id_front'].toString()),
|
||||||
ai.prompts[2]['id_front'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'id_front'); //egypt
|
'id_front'); //egypt
|
||||||
},
|
},
|
||||||
@@ -688,10 +671,10 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${'First Name'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptFront['first_name'])}',
|
'${'First Name'.tr}: ${(ai.responseIdEgyptFront['first_name'])}',
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'${'CardID'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptFront['card_id'])}',
|
'${'CardID'.tr}: ${(ai.responseIdEgyptFront['card_id'])}',
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -700,16 +683,16 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${'Full Name'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptFront['full_name'])}',
|
'${'Full Name'.tr}: ${(ai.responseIdEgyptFront['full_name'])}',
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'${'DOB'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptFront['dob'])}',
|
'${'DOB'.tr}: ${(ai.responseIdEgyptFront['dob'])}',
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Address'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdEgyptFront['address'])}',
|
'${'Address'.tr}: ${(ai.responseIdEgyptFront['address'])}',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
// Text(
|
// Text(
|
||||||
@@ -726,11 +709,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI((ai.prompts[2]['prompt'].toString()),
|
||||||
EncryptionHelper.instance
|
AppLink.uploadEgypt, 'id_front'); //egypt
|
||||||
.decryptData(ai.prompts[2]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
|
||||||
'id_front'); //egypt
|
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -773,8 +753,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
EncryptionHelper.instance.decryptData(
|
(ai.prompts[6]['prompt'].toString()),
|
||||||
ai.prompts[6]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'non_id_front');
|
'non_id_front');
|
||||||
},
|
},
|
||||||
@@ -786,7 +765,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
const Divider(color: AppColor.accentColor),
|
const Divider(color: AppColor.accentColor),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Full Name'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseNonIdCardFront['full_name'])}',
|
'${'Full Name'.tr}: ${(ai.responseNonIdCardFront['full_name'])}',
|
||||||
style: AppStyle.title,
|
style: AppStyle.title,
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
@@ -794,10 +773,10 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${'Passport No'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseNonIdCardFront['passport_no'])}',
|
'${'Passport No'.tr}: ${(ai.responseNonIdCardFront['passport_no'])}',
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'${'Card ID'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseNonIdCardFront['card_id'])}',
|
'${'Card ID'.tr}: ${(ai.responseNonIdCardFront['card_id'])}',
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -806,20 +785,20 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${'Country'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseNonIdCardFront['country'])}',
|
'${'Country'.tr}: ${(ai.responseNonIdCardFront['country'])}',
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'${'Gender'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseNonIdCardFront['gender'])}',
|
'${'Gender'.tr}: ${(ai.responseNonIdCardFront['gender'])}',
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Birth Date'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseNonIdCardFront['birthdate'])}',
|
'${'Birth Date'.tr}: ${(ai.responseNonIdCardFront['birthdate'])}',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Address'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseNonIdCardFront['address'])}',
|
'${'Address'.tr}: ${(ai.responseNonIdCardFront['address'])}',
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -829,11 +808,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI((ai.prompts[6]['prompt'].toString()),
|
||||||
EncryptionHelper.instance
|
AppLink.uploadEgypt, 'non_id_front');
|
||||||
.decryptData(ai.prompts[6]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
|
||||||
'non_id_front');
|
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -884,8 +860,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
ai.allMethodForAI(
|
ai.allMethodForAI(
|
||||||
EncryptionHelper.instance.decryptData(
|
(ai.prompts[3]['prompt'].toString()),
|
||||||
ai.prompts[3]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'car_front');
|
'car_front');
|
||||||
},
|
},
|
||||||
@@ -899,15 +874,15 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
// Removed Make, Model, etc. as they are not available
|
// Removed Make, Model, etc. as they are not available
|
||||||
|
|
||||||
Text(
|
Text(
|
||||||
'${'Plate Number'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdCardDriverEgyptFront['car_plate'])}',
|
'${'Plate Number'.tr}: ${(ai.responseIdCardDriverEgyptFront['car_plate'])}',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Owner Name'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdCardDriverEgyptFront['owner'])}',
|
'${'Owner Name'.tr}: ${(ai.responseIdCardDriverEgyptFront['owner'])}',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'Address'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseIdCardDriverEgyptFront['address'])}',
|
'${'Address'.tr}: ${(ai.responseIdCardDriverEgyptFront['address'])}',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Row(
|
Row(
|
||||||
@@ -931,11 +906,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
ai.allMethodForAI(
|
ai.allMethodForAI((ai.prompts[3]['prompt'].toString()),
|
||||||
EncryptionHelper.instance
|
AppLink.uploadEgypt, 'car_front');
|
||||||
.decryptData(ai.prompts[3]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
|
||||||
'car_front');
|
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -1003,8 +975,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
ai.allMethodForAI(
|
ai.allMethodForAI(
|
||||||
EncryptionHelper.instance.decryptData(
|
(ai.prompts[4]['prompt'].toString()),
|
||||||
ai.prompts[4]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'car_back');
|
'car_back');
|
||||||
},
|
},
|
||||||
@@ -1076,11 +1047,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
ai.allMethodForAI(
|
ai.allMethodForAI((ai.prompts[4]['prompt'].toString()),
|
||||||
EncryptionHelper.instance
|
AppLink.uploadEgypt, 'car_back');
|
||||||
.decryptData(ai.prompts[4]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
|
||||||
'car_back');
|
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -1123,8 +1091,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
EncryptionHelper.instance.decryptData(
|
(ai.prompts[5]['prompt'].toString()),
|
||||||
ai.prompts[5]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'criminalRecord',
|
'criminalRecord',
|
||||||
);
|
);
|
||||||
@@ -1140,19 +1107,16 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
'${'InspectionResult'.tr}: ${ai.responseCriminalRecordEgypt['InspectionResult']}'),
|
'${'InspectionResult'.tr}: ${ai.responseCriminalRecordEgypt['InspectionResult']}'),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'FullName'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseCriminalRecordEgypt['FullName'])}',
|
'${'FullName'.tr}: ${(ai.responseCriminalRecordEgypt['FullName'])}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
color: EncryptionHelper.instance.decryptData(ai
|
color: (ai.responseCriminalRecordEgypt['FullName']) ==
|
||||||
.responseCriminalRecordEgypt['FullName']) ==
|
(ai.responseIdEgyptDriverLicense['name_arabic'])
|
||||||
EncryptionHelper.instance.decryptData(
|
|
||||||
ai.responseIdEgyptDriverLicense[
|
|
||||||
'name_arabic'])
|
|
||||||
? AppColor.greenColor
|
? AppColor.greenColor
|
||||||
: AppColor.redColor),
|
: AppColor.redColor),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'NationalID'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseCriminalRecordEgypt['NationalID'])}'),
|
'${'NationalID'.tr}: ${(ai.responseCriminalRecordEgypt['NationalID'])}'),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'IssueDate'.tr}: ${ai.responseCriminalRecordEgypt['IssueDate']}'),
|
'${'IssueDate'.tr}: ${ai.responseCriminalRecordEgypt['IssueDate']}'),
|
||||||
@@ -1165,8 +1129,7 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
EncryptionHelper.instance
|
(ai.prompts[5]['prompt'].toString()),
|
||||||
.decryptData(ai.prompts[5]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'criminalRecord',
|
'criminalRecord',
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
import 'dart:convert';
|
|
||||||
|
|
||||||
import 'package:flutter_font_icons/flutter_font_icons.dart';
|
|
||||||
import 'package:sefer_driver/constant/colors.dart';
|
import 'package:sefer_driver/constant/colors.dart';
|
||||||
import 'package:sefer_driver/constant/style.dart';
|
import 'package:sefer_driver/constant/style.dart';
|
||||||
import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
|
import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
|
||||||
@@ -10,11 +7,7 @@ import 'package:sefer_driver/views/widgets/my_textField.dart';
|
|||||||
import 'package:sefer_driver/views/widgets/mycircular.dart';
|
import 'package:sefer_driver/views/widgets/mycircular.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:sefer_driver/views/widgets/mydialoug.dart';
|
|
||||||
|
|
||||||
import '../../../../controller/functions/crud.dart';
|
|
||||||
import '../../../../controller/functions/encrypt_decrypt.dart';
|
|
||||||
import '../../../../print.dart';
|
|
||||||
import '../../../Rate/rate_app_page.dart';
|
import '../../../Rate/rate_app_page.dart';
|
||||||
|
|
||||||
class SmsSignupEgypt extends StatelessWidget {
|
class SmsSignupEgypt extends StatelessWidget {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class CriminalDocumemtPage extends StatelessWidget {
|
|||||||
? MyElevatedButton(
|
? MyElevatedButton(
|
||||||
title: 'Next'.tr,
|
title: 'Next'.tr,
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
if (EncryptionHelper.instance.decryptData(controller
|
if ((controller
|
||||||
.responseCriminalRecordEgypt['FullName']) !=
|
.responseCriminalRecordEgypt['FullName']) !=
|
||||||
box.read(BoxName.nameArabic)) //todo get from server
|
box.read(BoxName.nameArabic)) //todo get from server
|
||||||
{
|
{
|
||||||
@@ -141,22 +141,19 @@ Please fill in the JSON object with the extracted information, following these g
|
|||||||
const Divider(color: AppColor.accentColor),
|
const Divider(color: AppColor.accentColor),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'InspectionResult'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseCriminalRecordEgypt['InspectionResult'])}'),
|
'${'InspectionResult'.tr}: ${(ai.responseCriminalRecordEgypt['InspectionResult'])}'),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'FullName'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseCriminalRecordEgypt['FullName'])}',
|
'${'FullName'.tr}: ${(ai.responseCriminalRecordEgypt['FullName'])}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
color: EncryptionHelper.instance.decryptData(ai
|
color: (ai.responseCriminalRecordEgypt['FullName']) ==
|
||||||
.responseCriminalRecordEgypt['FullName']) ==
|
(ai.responseIdEgyptDriverLicense['name_arabic'])
|
||||||
EncryptionHelper.instance.decryptData(
|
|
||||||
ai.responseIdEgyptDriverLicense[
|
|
||||||
'name_arabic'])
|
|
||||||
? AppColor.greenColor
|
? AppColor.greenColor
|
||||||
: AppColor.redColor),
|
: AppColor.redColor),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'NationalID'.tr}: ${EncryptionHelper.instance.decryptData(ai.responseCriminalRecordEgypt['NationalID'])}'),
|
'${'NationalID'.tr}: ${(ai.responseCriminalRecordEgypt['NationalID'])}'),
|
||||||
const SizedBox(height: 8.0),
|
const SizedBox(height: 8.0),
|
||||||
Text(
|
Text(
|
||||||
'${'IssueDate'.tr}: ${ai.responseCriminalRecordEgypt['IssueDate']}'),
|
'${'IssueDate'.tr}: ${ai.responseCriminalRecordEgypt['IssueDate']}'),
|
||||||
|
|||||||
@@ -390,8 +390,7 @@ class InviteScreen extends StatelessWidget {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
EncryptionHelper.instance.decryptData(
|
(controller.driverInvitationData[index]['invitorName']),
|
||||||
controller.driverInvitationData[index]['invitorName']),
|
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 17,
|
fontSize: 17,
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
@@ -447,8 +446,7 @@ class InviteScreen extends StatelessWidget {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
EncryptionHelper.instance
|
(invitation['passengerName'])
|
||||||
.decryptData(invitation['passengerName'])
|
|
||||||
.toString(), // Handle null or missing data
|
.toString(), // Handle null or missing data
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 17,
|
fontSize: 17,
|
||||||
@@ -510,9 +508,7 @@ class InviteScreen extends StatelessWidget {
|
|||||||
_buildStatItem(
|
_buildStatItem(
|
||||||
context,
|
context,
|
||||||
"Active Users".tr,
|
"Active Users".tr,
|
||||||
EncryptionHelper.instance
|
(controller.driverInvitationDataToPassengers[0]['passengerName'])
|
||||||
.decryptData(controller.driverInvitationDataToPassengers[0]
|
|
||||||
['passengerName'])
|
|
||||||
.toString(),
|
.toString(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -336,10 +336,9 @@ class LoginCaptin extends StatelessWidget {
|
|||||||
box
|
box
|
||||||
.read(BoxName.driverID)
|
.read(BoxName.driverID)
|
||||||
.toString(),
|
.toString(),
|
||||||
EncryptionHelper.instance
|
(box
|
||||||
.encryptData(box
|
.read(BoxName.emailDriver)
|
||||||
.read(BoxName.emailDriver)
|
.toString()),
|
||||||
.toString()),
|
|
||||||
);
|
);
|
||||||
// Navigate to another screen or perform other actions
|
// Navigate to another screen or perform other actions
|
||||||
} else {}
|
} else {}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:sefer_driver/constant/box_name.dart';
|
import 'package:sefer_driver/constant/box_name.dart';
|
||||||
|
import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart';
|
||||||
import 'package:sefer_driver/controller/firebase/local_notification.dart';
|
import 'package:sefer_driver/controller/firebase/local_notification.dart';
|
||||||
import 'package:sefer_driver/main.dart';
|
import 'package:sefer_driver/main.dart';
|
||||||
|
import 'package:sefer_driver/views/auth/captin/cards/sms_signup.dart';
|
||||||
import 'package:sefer_driver/views/home/Captin/orderCaptin/vip_order_page.dart';
|
import 'package:sefer_driver/views/home/Captin/orderCaptin/vip_order_page.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_font_icons/flutter_font_icons.dart';
|
import 'package:flutter_font_icons/flutter_font_icons.dart';
|
||||||
@@ -50,7 +52,7 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
// '${'Please wait'.tr} $minutesLeft ${"minutes before trying again.".tr}',
|
// '${'Please wait'.tr} $minutesLeft ${"minutes before trying again.".tr}',
|
||||||
// '');
|
// '');
|
||||||
NotificationController1().showNotification(
|
NotificationController1().showNotification(
|
||||||
'Sefer Driver'.tr,
|
'Tripz Driver'.tr,
|
||||||
'${'Please wait'.tr} $minutesLeft ${"minutes before trying again.".tr}',
|
'${'Please wait'.tr} $minutesLeft ${"minutes before trying again.".tr}',
|
||||||
'ding',
|
'ding',
|
||||||
'');
|
'');
|
||||||
@@ -93,46 +95,26 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
)
|
)
|
||||||
: const SizedBox(),
|
: const SizedBox(),
|
||||||
// : const SizedBox(),
|
// : const SizedBox(),
|
||||||
// AnimatedContainer(
|
AnimatedContainer(
|
||||||
// duration: const Duration(microseconds: 200),
|
duration: const Duration(microseconds: 200),
|
||||||
// width: controller.widthMapTypeAndTraffic,
|
width: controller.widthMapTypeAndTraffic,
|
||||||
// decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
// color: AppColor.secondaryColor,
|
color: AppColor.secondaryColor,
|
||||||
// border: Border.all(color: AppColor.blueColor),
|
border: Border.all(color: AppColor.blueColor),
|
||||||
// borderRadius: BorderRadius.circular(15)),
|
borderRadius: BorderRadius.circular(15)),
|
||||||
// child: Builder(builder: (context) {
|
child: Builder(builder: (context) {
|
||||||
// return IconButton(
|
return IconButton(
|
||||||
// onPressed: () async {
|
onPressed: () async {
|
||||||
// print("Current working directory: ${Directory.current.path}");
|
print(box.read(BoxName.paymentLink));
|
||||||
// print(
|
},
|
||||||
// "pubspec.yaml exists here?: ${await File('${Directory.current.path}/pubspec.yaml').exists()}");
|
icon: const Icon(
|
||||||
|
FontAwesome5.grin_tears,
|
||||||
// try {
|
size: 29,
|
||||||
// await LingoHunter.extractAndCreateTranslationFiles(
|
color: AppColor.blueColor,
|
||||||
// baseLang: 'en',
|
),
|
||||||
// langs: ['ar', 'fr', 'es'],
|
);
|
||||||
// // Remove projectDirectory: Let it auto-detect.
|
}),
|
||||||
// // projectDirectory: '/Users/hamzaaleghwairyeen/development/App/driver_sefer',
|
),
|
||||||
// outputDirectory:
|
|
||||||
// '/Users/hamzaaleghwairyeen/development/App/driver_sefer/assets/lang',
|
|
||||||
// additionalRegExps: [
|
|
||||||
// RegExp(r'translate\("([^\"]+)"\)'),
|
|
||||||
// ],
|
|
||||||
// );
|
|
||||||
// print(
|
|
||||||
// "✅ Translation files generated successfully (auto-detected).");
|
|
||||||
// } catch (e) {
|
|
||||||
// print("Error: $e");
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// icon: const Icon(
|
|
||||||
// FontAwesome5.grin_tears,
|
|
||||||
// size: 29,
|
|
||||||
// color: AppColor.blueColor,
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
// }),
|
|
||||||
// ),
|
|
||||||
|
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
height: 5,
|
height: 5,
|
||||||
|
|||||||
@@ -327,25 +327,7 @@ class OrderSpeedRequest extends StatelessWidget {
|
|||||||
'driver_id': box.read(BoxName.driverID),
|
'driver_id': box.read(BoxName.driverID),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (res != "failure") {
|
||||||
// .then((value) {
|
|
||||||
// var json = jsonDecode(res);
|
|
||||||
if (res == "failure") {
|
|
||||||
Get.defaultDialog(
|
|
||||||
title:
|
|
||||||
"This ride is already taken by another driver."
|
|
||||||
.tr,
|
|
||||||
middleText: '',
|
|
||||||
titleStyle: AppStyle.title,
|
|
||||||
middleTextStyle: AppStyle.title,
|
|
||||||
confirm: MyElevatedButton(
|
|
||||||
title: 'Ok'.tr,
|
|
||||||
onPressed: () {
|
|
||||||
Get.back();
|
|
||||||
Get.back();
|
|
||||||
// Get.back();
|
|
||||||
}));
|
|
||||||
} else if (jsonDecode(res)['status'] == "success") {
|
|
||||||
box.write(BoxName.statusDriverLocation, 'on');
|
box.write(BoxName.statusDriverLocation, 'on');
|
||||||
orderRequestController.changeApplied();
|
orderRequestController.changeApplied();
|
||||||
List<String> bodyToPassenger = [
|
List<String> bodyToPassenger = [
|
||||||
@@ -357,33 +339,29 @@ class OrderSpeedRequest extends StatelessWidget {
|
|||||||
.sendNotificationToPassengerToken(
|
.sendNotificationToPassengerToken(
|
||||||
'Accepted Ride',
|
'Accepted Ride',
|
||||||
'your ride is applied'.tr,
|
'your ride is applied'.tr,
|
||||||
// arguments['DriverList'][9].toString(),
|
|
||||||
orderRequestController
|
orderRequestController
|
||||||
.arguments['DriverList'][9]
|
.arguments['DriverList'][9]
|
||||||
.toString(),
|
.toString(),
|
||||||
// box.read(BoxName.tokenDriver).toString(),
|
|
||||||
bodyToPassenger,
|
bodyToPassenger,
|
||||||
'start.wav');
|
'start.wav');
|
||||||
await CRUD().postFromDialogue(
|
CRUD().postFromDialogue(
|
||||||
link: AppLink.addDriverOrder,
|
link: AppLink.addDriverOrder,
|
||||||
payload: {
|
payload: {
|
||||||
'driver_id': orderRequestController.myList[6]
|
'driver_id': orderRequestController.myList[6]
|
||||||
.toString(),
|
.toString(),
|
||||||
// box.read(BoxName.driverID).toString(),
|
|
||||||
'order_id':
|
'order_id':
|
||||||
orderRequestController.body.toString(),
|
orderRequestController.body.toString(),
|
||||||
'status': 'Apply'
|
'status': 'Apply'
|
||||||
});
|
});
|
||||||
await CRUD().postFromDialogue(
|
// CRUD().postFromDialogue(
|
||||||
link: AppLink.addDriverOrder,
|
// link: AppLink.addDriverOrder,
|
||||||
payload: {
|
// payload: {
|
||||||
'driver_id': orderRequestController.myList[6]
|
// 'driver_id': orderRequestController.myList[6]
|
||||||
.toString(),
|
// .toString(),
|
||||||
// box.read(BoxName.driverID).toString(),
|
// 'order_id': orderRequestController.myList[16]
|
||||||
'order_id': orderRequestController.myList[16]
|
// .toString(),
|
||||||
.toString(),
|
// 'status': 'Apply'
|
||||||
'status': 'Apply'
|
// });
|
||||||
});
|
|
||||||
|
|
||||||
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
||||||
CRUD().post(
|
CRUD().post(
|
||||||
@@ -402,9 +380,6 @@ class OrderSpeedRequest extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Get.back();
|
Get.back();
|
||||||
|
|
||||||
// 'Arguments passed to PassengerLocationMapPage:');
|
|
||||||
// 'Payment Method: ${orderRequestController.myList[13] == 'true' ? 'visa' : 'cash'}');
|
|
||||||
box.write(BoxName.rideArguments, {
|
box.write(BoxName.rideArguments, {
|
||||||
'passengerLocation':
|
'passengerLocation':
|
||||||
orderRequestController.myList[0].toString(),
|
orderRequestController.myList[0].toString(),
|
||||||
@@ -473,6 +448,21 @@ class OrderSpeedRequest extends StatelessWidget {
|
|||||||
});
|
});
|
||||||
Get.to(() => PassengerLocationMapPage(),
|
Get.to(() => PassengerLocationMapPage(),
|
||||||
arguments: box.read(BoxName.rideArguments));
|
arguments: box.read(BoxName.rideArguments));
|
||||||
|
} else {
|
||||||
|
Get.defaultDialog(
|
||||||
|
title:
|
||||||
|
"This ride is already taken by another driver."
|
||||||
|
.tr,
|
||||||
|
middleText: '',
|
||||||
|
titleStyle: AppStyle.title,
|
||||||
|
middleTextStyle: AppStyle.title,
|
||||||
|
confirm: MyElevatedButton(
|
||||||
|
title: 'Ok'.tr,
|
||||||
|
onPressed: () {
|
||||||
|
Get.back();
|
||||||
|
Get.back();
|
||||||
|
// Get.back();
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
// });
|
// });
|
||||||
// Get.back();
|
// Get.back();
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ class WalletCaptain extends StatelessWidget {
|
|||||||
_buildPromoCard(
|
_buildPromoCard(
|
||||||
title: 'Morning Promo'.tr,
|
title: 'Morning Promo'.tr,
|
||||||
timePromo: 'Morning Promo',
|
timePromo: 'Morning Promo',
|
||||||
count: int.parse(captainWalletController
|
count: (captainWalletController
|
||||||
.walletDate['message'][0]
|
.walletDate['message'][0]
|
||||||
['morning_count']),
|
['morning_count']),
|
||||||
maxCount: 5,
|
maxCount: 5,
|
||||||
@@ -208,7 +208,7 @@ class WalletCaptain extends StatelessWidget {
|
|||||||
_buildPromoCard(
|
_buildPromoCard(
|
||||||
timePromo: 'Afternoon Promo',
|
timePromo: 'Afternoon Promo',
|
||||||
title: 'Afternoon Promo'.tr,
|
title: 'Afternoon Promo'.tr,
|
||||||
count: int.parse(captainWalletController
|
count: (captainWalletController
|
||||||
.walletDate['message'][0]
|
.walletDate['message'][0]
|
||||||
['afternoon_count']),
|
['afternoon_count']),
|
||||||
maxCount: 5,
|
maxCount: 5,
|
||||||
|
|||||||
89
lib/views/home/profile/behavior_page.dart
Normal file
89
lib/views/home/profile/behavior_page.dart
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
|
import '../../../controller/home/captin/behavior_controller.dart';
|
||||||
|
|
||||||
|
class BehaviorPage extends StatelessWidget {
|
||||||
|
const BehaviorPage({
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
final controller = Get.put(DriverBehaviorController());
|
||||||
|
controller.fetchDriverBehavior();
|
||||||
|
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
title: Text('Driver Behavior'.tr),
|
||||||
|
centerTitle: true,
|
||||||
|
),
|
||||||
|
body: Obx(() {
|
||||||
|
if (controller.isLoading.value) {
|
||||||
|
return const Center(child: CircularProgressIndicator());
|
||||||
|
}
|
||||||
|
|
||||||
|
return SingleChildScrollView(
|
||||||
|
padding: const EdgeInsets.all(16),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Card(
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(12)),
|
||||||
|
elevation: 4,
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(16),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
const Text("Overall Behavior Score",
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 20, fontWeight: FontWeight.bold)),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
Text(
|
||||||
|
"${controller.overallScore.value.toStringAsFixed(1)} / 100",
|
||||||
|
style: const TextStyle(
|
||||||
|
fontSize: 28, color: Colors.blue)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 20),
|
||||||
|
const Text("Last 10 Trips",
|
||||||
|
style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
ListView.builder(
|
||||||
|
shrinkWrap: true,
|
||||||
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
|
itemCount: controller.lastTrips.length,
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
var trip = controller.lastTrips[index];
|
||||||
|
return Card(
|
||||||
|
elevation: 3,
|
||||||
|
child: ListTile(
|
||||||
|
leading: CircleAvatar(
|
||||||
|
backgroundColor: Colors.blue,
|
||||||
|
child: Text("${index + 1}",
|
||||||
|
style: const TextStyle(color: Colors.white)),
|
||||||
|
),
|
||||||
|
title: Text("Trip ID: ${trip['trip_id']}"),
|
||||||
|
subtitle: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text("Behavior Score: ${trip['behavior_score']}"),
|
||||||
|
Text("Max Speed: ${trip['max_speed']} km/h"),
|
||||||
|
Text("Hard Brakes: ${trip['hard_brakes']}"),
|
||||||
|
Text("Distance: ${trip['total_distance']} km"),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -74,9 +74,7 @@ class CaptainsCars extends StatelessWidget {
|
|||||||
padding: const EdgeInsets.symmetric(
|
padding: const EdgeInsets.symmetric(
|
||||||
horizontal: 4),
|
horizontal: 4),
|
||||||
child: Text(
|
child: Text(
|
||||||
EncryptionHelper.instance
|
(car['car_plate']),
|
||||||
.decryptData(
|
|
||||||
car['car_plate']),
|
|
||||||
style: AppStyle.title,
|
style: AppStyle.title,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -94,11 +94,8 @@ GetBuilder<AI> egyptCarLicenceFront() {
|
|||||||
style: AppStyle.headTitle2),
|
style: AppStyle.headTitle2),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
ai.allMethodForAI(
|
ai.allMethodForAI((ai.prompts[3]['prompt'].toString()),
|
||||||
EncryptionHelper.instance.decryptData(
|
AppLink.uploadEgypt, 'car_front');
|
||||||
ai.prompts[3]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
|
||||||
'car_front');
|
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.refresh),
|
icon: const Icon(Icons.refresh),
|
||||||
),
|
),
|
||||||
@@ -142,12 +139,8 @@ GetBuilder<AI> egyptCarLicenceFront() {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
ai.allMethodForAINewCar(
|
ai.allMethodForAINewCar((ai.prompts[3]['prompt'].toString()),
|
||||||
EncryptionHelper.instance
|
AppLink.uploadEgypt1, 'car_front', 'carId'); //todo
|
||||||
.decryptData(ai.prompts[3]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt1,
|
|
||||||
'car_front',
|
|
||||||
'carId'); //todo
|
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -213,11 +206,8 @@ GetBuilder<AI> egyptCarLicenceBack() {
|
|||||||
Text('Vehicle Details Back'.tr, style: AppStyle.headTitle2),
|
Text('Vehicle Details Back'.tr, style: AppStyle.headTitle2),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
ai.allMethodForAI(
|
ai.allMethodForAI((ai.prompts[4]['prompt'].toString()),
|
||||||
EncryptionHelper.instance.decryptData(
|
AppLink.uploadEgypt, 'car_back');
|
||||||
ai.prompts[4]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
|
||||||
'car_back');
|
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.refresh),
|
icon: const Icon(Icons.refresh),
|
||||||
),
|
),
|
||||||
@@ -286,11 +276,8 @@ GetBuilder<AI> egyptCarLicenceBack() {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
ai.allMethodForAI(
|
ai.allMethodForAI((ai.prompts[4]['prompt'].toString()),
|
||||||
EncryptionHelper.instance
|
AppLink.uploadEgypt, 'car_back');
|
||||||
.decryptData(ai.prompts[4]['prompt'].toString()),
|
|
||||||
AppLink.uploadEgypt,
|
|
||||||
'car_back');
|
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import 'package:sefer_driver/controller/profile/captain_profile_controller.dart'
|
|||||||
import 'package:sefer_driver/views/widgets/my_scafold.dart';
|
import 'package:sefer_driver/views/widgets/my_scafold.dart';
|
||||||
|
|
||||||
import '../my_wallet/walet_captain.dart';
|
import '../my_wallet/walet_captain.dart';
|
||||||
|
import 'behavior_page.dart';
|
||||||
import 'captains_cars.dart';
|
import 'captains_cars.dart';
|
||||||
|
|
||||||
class ProfileCaptain extends StatelessWidget {
|
class ProfileCaptain extends StatelessWidget {
|
||||||
@@ -33,19 +34,38 @@ class ProfileCaptain extends StatelessWidget {
|
|||||||
Material(
|
Material(
|
||||||
elevation: 2,
|
elevation: 2,
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
child: InkWell(
|
child: Row(
|
||||||
onTap: () async {
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
addBankCodeEgypt(captainWalletController);
|
children: [
|
||||||
},
|
InkWell(
|
||||||
borderRadius: BorderRadius.circular(8),
|
onTap: () async {
|
||||||
child: Padding(
|
addBankCodeEgypt(captainWalletController);
|
||||||
padding: const EdgeInsets.symmetric(
|
},
|
||||||
vertical: 16, horizontal: 16),
|
borderRadius: BorderRadius.circular(8),
|
||||||
child: Text(
|
child: Padding(
|
||||||
'Add bank Account'.tr,
|
padding: const EdgeInsets.symmetric(
|
||||||
style: AppStyle.title,
|
vertical: 16, horizontal: 16),
|
||||||
|
child: Text(
|
||||||
|
'Add bank Account'.tr,
|
||||||
|
style: AppStyle.title,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
InkWell(
|
||||||
|
onTap: () async {
|
||||||
|
Get.to(() => BehaviorPage());
|
||||||
|
},
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(
|
||||||
|
vertical: 16, horizontal: 16),
|
||||||
|
child: Text(
|
||||||
|
'Show behavior page'.tr,
|
||||||
|
style: AppStyle.title,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 15),
|
const SizedBox(height: 15),
|
||||||
@@ -73,41 +93,28 @@ class ProfileCaptain extends StatelessWidget {
|
|||||||
driverId:
|
driverId:
|
||||||
controller.captainProfileData['driverID'] ??
|
controller.captainProfileData['driverID'] ??
|
||||||
'',
|
'',
|
||||||
name: EncryptionHelper.instance.decryptData(
|
name:
|
||||||
(controller.captainProfileData[
|
'${((controller.captainProfileData['first_name']) ?? '')} ${((controller.captainProfileData['last_name']) ?? '')}',
|
||||||
'first_name']) ??
|
phoneNumber:
|
||||||
'') +
|
(controller.captainProfileData['phone']) ??
|
||||||
' ' +
|
'',
|
||||||
EncryptionHelper.instance.decryptData(
|
email: (controller.captainProfileData['email']) ??
|
||||||
(controller.captainProfileData[
|
|
||||||
'last_name']) ??
|
|
||||||
''),
|
|
||||||
phoneNumber: EncryptionHelper.instance
|
|
||||||
.decryptData(controller
|
|
||||||
.captainProfileData['phone']) ??
|
|
||||||
'',
|
'',
|
||||||
email: EncryptionHelper.instance.decryptData(
|
birthdate: (controller
|
||||||
controller.captainProfileData['email']) ??
|
.captainProfileData['birthdate']) ??
|
||||||
'',
|
'',
|
||||||
birthdate: EncryptionHelper.instance.decryptData(
|
gender:
|
||||||
controller
|
(controller.captainProfileData['gender']) ??
|
||||||
.captainProfileData['birthdate']) ??
|
'',
|
||||||
'',
|
education: (controller
|
||||||
gender: EncryptionHelper.instance.decryptData(
|
.captainProfileData['education']) ??
|
||||||
controller
|
|
||||||
.captainProfileData['gender']) ??
|
|
||||||
'',
|
|
||||||
education: EncryptionHelper.instance.decryptData(
|
|
||||||
controller
|
|
||||||
.captainProfileData['education']) ??
|
|
||||||
'',
|
'',
|
||||||
carMake:
|
carMake:
|
||||||
controller.captainProfileData['make'] ?? '',
|
controller.captainProfileData['make'] ?? '',
|
||||||
carModel:
|
carModel:
|
||||||
controller.captainProfileData['model'] ?? '',
|
controller.captainProfileData['model'] ?? '',
|
||||||
carPlate: EncryptionHelper.instance.decryptData(
|
carPlate: (controller
|
||||||
controller
|
.captainProfileData['car_plate']) ??
|
||||||
.captainProfileData['car_plate']) ??
|
|
||||||
'',
|
'',
|
||||||
carColor:
|
carColor:
|
||||||
controller.captainProfileData['color'] ?? '',
|
controller.captainProfileData['color'] ?? '',
|
||||||
|
|||||||
@@ -251,20 +251,7 @@ class RideAvailableCard extends StatelessWidget {
|
|||||||
|
|
||||||
// .then((value) {
|
// .then((value) {
|
||||||
// var json = jsonDecode(res);
|
// var json = jsonDecode(res);
|
||||||
if (res == "failure") {
|
if (res != "failure") {
|
||||||
MyDialog().getDialog(
|
|
||||||
"This ride is already taken by another driver.".tr, '', () {
|
|
||||||
CRUD().post(
|
|
||||||
link: AppLink.deleteAvailableRide, payload: {'id': rideInfo['id']});
|
|
||||||
if (AppLink.endPoint.toString() != AppLink.seferCairoServer) {
|
|
||||||
CRUD().post(
|
|
||||||
link:
|
|
||||||
'${AppLink.endPoint}/ride/notificationCaptain/deleteAvailableRide.php',
|
|
||||||
payload: {'id': rideInfo['id']});
|
|
||||||
}
|
|
||||||
Get.back();
|
|
||||||
});
|
|
||||||
} else if (jsonDecode(res)['status'] == "success") {
|
|
||||||
List<String> bodyToPassenger = [
|
List<String> bodyToPassenger = [
|
||||||
box.read(BoxName.driverID).toString(),
|
box.read(BoxName.driverID).toString(),
|
||||||
box.read(BoxName.nameDriver).toString(),
|
box.read(BoxName.nameDriver).toString(),
|
||||||
@@ -273,7 +260,6 @@ class RideAvailableCard extends StatelessWidget {
|
|||||||
box.write(BoxName.statusDriverLocation, 'on');
|
box.write(BoxName.statusDriverLocation, 'on');
|
||||||
await CRUD().postFromDialogue(link: AppLink.addDriverOrder, payload: {
|
await CRUD().postFromDialogue(link: AppLink.addDriverOrder, payload: {
|
||||||
'driver_id': box.read(BoxName.driverID),
|
'driver_id': box.read(BoxName.driverID),
|
||||||
// box.read(BoxName.driverID).toString(),
|
|
||||||
'order_id': rideInfo['id'],
|
'order_id': rideInfo['id'],
|
||||||
'status': 'Apply'
|
'status': 'Apply'
|
||||||
});
|
});
|
||||||
@@ -349,6 +335,19 @@ class RideAvailableCard extends StatelessWidget {
|
|||||||
'carType': rideInfo['carType'].toString(),
|
'carType': rideInfo['carType'].toString(),
|
||||||
'kazan': Get.find<HomeCaptainController>().kazan.toString(),
|
'kazan': Get.find<HomeCaptainController>().kazan.toString(),
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
MyDialog().getDialog(
|
||||||
|
"This ride is already taken by another driver.".tr, '', () {
|
||||||
|
CRUD().post(
|
||||||
|
link: AppLink.deleteAvailableRide, payload: {'id': rideInfo['id']});
|
||||||
|
if (AppLink.endPoint.toString() != AppLink.seferCairoServer) {
|
||||||
|
CRUD().post(
|
||||||
|
link:
|
||||||
|
'${AppLink.endPoint}/ride/notificationCaptain/deleteAvailableRide.php',
|
||||||
|
payload: {'id': rideInfo['id']});
|
||||||
|
}
|
||||||
|
Get.back();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user