OAuth added

This commit is contained in:
Surendiran 2025-08-06 11:06:27 +05:30
parent fe712c6708
commit bebe2df4dc
55 changed files with 3338 additions and 2797 deletions

View File

@ -2,27 +2,27 @@ C/C++ Structured Log}
{ {
y/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/additional_project_files.txtC y/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  <EFBFBD>àÕ€„3  ¡¹ñÀ÷2z ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ¿ŒÍLJ3  ¡¹ñÀ÷2z
x x
v/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/android_gradle_build.json  <EFBFBD>àÕ€„3 £¹ñÀ÷2 v/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/android_gradle_build.json  ¿ŒÍLJ3 £¹ñÀ÷2
} }
{/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/android_gradle_build_mini.json  <EFBFBD>àÕ€„3ƒ ¥¹ñÀ÷2l {/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/android_gradle_build_mini.json  ¿ŒÍLJ3ƒ ¥¹ñÀ÷2l
j j
h/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/build.ninja  <EFBFBD>àÕ€„3êÌ ޹ñÀ÷2p h/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/build.ninja  ¿ŒÍLJ3êÌ ޹ñÀ÷2p
n n
l/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/build.ninja.txt  <EFBFBD>àÕ€„3u l/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/build.ninja.txt  ¿ŒÍLJ3u
s s
q/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/build_file_index.txt  <EFBFBD>àÕ€„3 _ ¦¹ñÀ÷2v q/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/build_file_index.txt  ¿ŒÍLJ3 _ ¦¹ñÀ÷2v
t t
r/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/compile_commands.json  <EFBFBD>àÕ€„3z r/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/compile_commands.json  ¿ŒÍLJ3z
x x
v/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/compile_commands.json.bin  <EFBFBD>àÕ€„3 v/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/compile_commands.json.bin  ¿ŒÍLJ3
~ ~
|/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/metadata_generation_command.txt  <EFBFBD>àÕ€„3 |/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/metadata_generation_command.txt  ¿ŒÍLJ3
ö ¦¹ñÀ÷2s ö ¦¹ñÀ÷2s
q q
o/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/prefab_config.json  <EFBFBD>àÕ€„3  ( ¦¹ñÀ÷2x o/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/prefab_config.json  ¿ŒÍLJ3  ( ¦¹ñÀ÷2x
v v
t/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/symbol_folder_index.txt  <EFBFBD>àÕ€„3  k ¦¹ñÀ÷2c t/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/arm64-v8a/symbol_folder_index.txt  ¿ŒÍLJ3  k ¦¹ñÀ÷2c
a a
_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  <EFBFBD>àÕ€„3 ¤ òÑÞ€á2 _/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ¿ŒÍLJ3 ¤ òÑÞ€á2

View File

@ -2,27 +2,27 @@ C/C++ Structured Log
} }
{/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/additional_project_files.txtC {/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ±àÕ€„3  ¸ïòÀ÷2| ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÆŒÍLJ3  ¸ïòÀ÷2|
z z
x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/android_gradle_build.json  ±àÕ€„3 ºïòÀ÷2<C3B7> x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/android_gradle_build.json  ÆŒÍLJ3 ºïòÀ÷2<C3B7>
 
}/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/android_gradle_build_mini.json  ±àÕ€„3 »ïòÀ÷2n }/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/android_gradle_build_mini.json  ÆŒÍLJ3 »ïòÀ÷2n
l l
j/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/build.ninja  ±àÕ€„3öÌ ªïòÀ÷2r j/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/build.ninja  ÆŒÍLJ3öÌ ªïòÀ÷2r
p p
n/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/build.ninja.txt  ±àÕ€„3w n/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/build.ninja.txt  ÆŒÍLJ3w
u u
s/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/build_file_index.txt  ±àÕ€„3 _ »ïòÀ÷2x s/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/build_file_index.txt  ÆŒÍLJ3 _ »ïòÀ÷2x
v v
t/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/compile_commands.json  ±àÕ€„3| t/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/compile_commands.json  ÆŒÍLJ3|
z z
x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/compile_commands.json.bin  ±àÕ€„3 ƒ x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/compile_commands.json.bin  ÆŒÍLJ3 ƒ
 
~/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/metadata_generation_command.txt  ±àÕ€„3 ~/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/metadata_generation_command.txt  ÆŒÍLJ3
€ »ïòÀ÷2u € »ïòÀ÷2u
s s
q/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/prefab_config.json  ±àÕ€„3  ( »ïòÀ÷2z q/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/prefab_config.json  ÆŒÍLJ3  ( »ïòÀ÷2z
x x
v/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/symbol_folder_index.txt  ±àÕ€„3  m »ïòÀ÷2c v/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/symbol_folder_index.txt  ÆŒÍLJ3  m »ïòÀ÷2c
a a
_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ±àÕ€„3 ¤ òÑÞ€á2 _/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ÆŒÍLJ3 ¤ òÑÞ€á2

View File

@ -2,27 +2,27 @@ C/C++ Structured Logw
u u
s/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/additional_project_files.txtC s/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ¿àÕ€„3  „òòÀ÷2t ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÉŒÍLJ3  „òòÀ÷2t
r r
p/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/android_gradle_build.json  ¿àÕ€„3ô „òòÀ÷2y p/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/android_gradle_build.json  ÉŒÍLJ3ô „òòÀ÷2y
w w
u/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/android_gradle_build_mini.json  ¿àÕ€„3÷ …òòÀ÷2f u/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/android_gradle_build_mini.json  ÉŒÍLJ3÷ …òòÀ÷2f
d d
b/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/build.ninja  ¿àÕ€„3ÆÌ ûñòÀ÷2j b/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/build.ninja  ÉŒÍLJ3ÆÌ ûñòÀ÷2j
h h
f/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/build.ninja.txt  ¿àÕ€„3o f/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/build.ninja.txt  ÉŒÍLJ3o
m m
k/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/build_file_index.txt  ¿àÕ€„3 _ …òòÀ÷2p k/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/build_file_index.txt  ÉŒÍLJ3 _ …òòÀ÷2p
n n
l/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/compile_commands.json  ¿àÕ€„3t l/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/compile_commands.json  ÉŒÍLJ3t
r r
p/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/compile_commands.json.bin  ¿àÕ€„3 z p/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/compile_commands.json.bin  ÉŒÍLJ3 z
x x
v/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/metadata_generation_command.txt  ¿àÕ€„3 v/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/metadata_generation_command.txt  ÉŒÍLJ3
Ø …òòÀ÷2m Ø …òòÀ÷2m
k k
i/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/prefab_config.json  ¿àÕ€„3  ( …òòÀ÷2r i/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/prefab_config.json  ÉŒÍLJ3  ( …òòÀ÷2r
p p
n/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/symbol_folder_index.txt  ¿àÕ€„3  e …òòÀ÷2c n/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/symbol_folder_index.txt  ÉŒÍLJ3  e …òòÀ÷2c
a a
_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ¿àÕ€„3 ¤ òÑÞ€á2 _/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ÉŒÍLJ3 ¤ òÑÞ€á2

View File

@ -2,27 +2,27 @@ C/C++ Structured Logz
x x
v/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/additional_project_files.txtC v/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÊàÕ€„3  •ôòÀ÷2w ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÌŒÍLJ3  •ôòÀ÷2w
u u
s/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/android_gradle_build.json  ÊàÕ€„3ú •ôòÀ÷2| s/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/android_gradle_build.json  ÍŒÍLJ3ú •ôòÀ÷2|
z z
x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/android_gradle_build_mini.json  ÊàÕ€„3ý ôòÀ÷2i x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/android_gradle_build_mini.json  ÍŒÍLJ3ý ôòÀ÷2i
g g
e/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/build.ninja  ÊàÕ€„3ØÌ <20>ôòÀ÷2m e/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/build.ninja  ÍŒÍLJ3ØÌ <20>ôòÀ÷2m
k k
i/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/build.ninja.txt  ÊàÕ€„3r i/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/build.ninja.txt  ÍŒÍLJ3r
p p
n/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/build_file_index.txt  ÊàÕ€„3 _ ôòÀ÷2s n/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/build_file_index.txt  ÍŒÍLJ3 _ ôòÀ÷2s
q q
o/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/compile_commands.json  ÊàÕ€„3w o/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/compile_commands.json  ÍŒÍLJ3w
u u
s/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/compile_commands.json.bin  ÊàÕ€„3 } s/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/compile_commands.json.bin  ÍŒÍLJ3 }
{ {
y/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/metadata_generation_command.txt  ÊàÕ€„3 y/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/metadata_generation_command.txt  ÍŒÍLJ3
ç ôòÀ÷2p ç ôòÀ÷2p
n n
l/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/prefab_config.json  ÊàÕ€„3  ( ôòÀ÷2u l/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/prefab_config.json  ÍŒÍLJ3  ( ôòÀ÷2u
s s
q/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/symbol_folder_index.txt  ÊàÕ€„3  h ôòÀ÷2c q/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/symbol_folder_index.txt  ÍŒÍLJ3  h ôòÀ÷2c
a a
_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ÊàÕ€„3 ¤ òÑÞ€á2 _/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ÍŒÍLJ3 ¤ òÑÞ€á2

View File

@ -2,27 +2,27 @@ C/C++ Structured Log
 
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/additional_project_files.txtC /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Á÷<EFBFBD>×3  ™ªÇŸô2„ ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  äô˜È‡3  ™ªÇŸô2„
<EFBFBD> <EFBFBD>
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/android_gradle_build.json  Á÷<EFBFBD>×3 œªÇŸô2Š /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/android_gradle_build.json  äô˜È‡3 œªÇŸô2Š
 
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/android_gradle_build_mini.json  Á÷<EFBFBD>×3 ¤ªÇŸô2u /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/android_gradle_build_mini.json  äô˜È‡3 ¤ªÇŸô2u
s s
q/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/build.ninja  Á÷<EFBFBD>×3²Í ù©ÇŸô2y q/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/build.ninja  äô˜È‡3²Í ù©ÇŸô2y
w w
u/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/build.ninja.txt  Á÷<EFBFBD>×3~ u/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/build.ninja.txt  äô˜È‡3~
| |
z/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/build_file_index.txt  Á÷<EFBFBD>×3 _ ¥ªÇŸô2 z/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/build_file_index.txt  äô˜È‡3 _ ¥ªÇŸô2
} }
{/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/compile_commands.json  Á÷<EFBFBD>×3 {/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/compile_commands.json  äô˜È‡3
<EFBFBD> <EFBFBD>
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/compile_commands.json.bin  Á÷<EFBFBD>×3  /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/compile_commands.json.bin  äô˜È‡3 
ˆ ˆ
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/metadata_generation_command.txt  Á÷<EFBFBD>×3 /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/metadata_generation_command.txt  äô˜È‡3
š ¥ªÇŸô2| š ¥ªÇŸô2|
z z
x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/prefab_config.json  Á÷<EFBFBD>×3  ( ¥ªÇŸô2<C3B4> x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/prefab_config.json  äô˜È‡3  ( ¥ªÇŸô2<C3B4>
 
}/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/symbol_folder_index.txt  Á÷<EFBFBD>×3  t ¥ªÇŸô2c }/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/symbol_folder_index.txt  äô˜È‡3  t ¥ªÇŸô2c
a a
_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  Á÷<EFBFBD>×3 ¤ òÑÞ€á2 _/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  äô˜È‡3 ¤ òÑÞ€á2

View File

@ -2,27 +2,27 @@ C/C++ Structured Log
 
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/additional_project_files.txtC /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Ü÷<EFBFBD>×3  £¼ÇŸô2‡ ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  õô˜È‡3  £¼ÇŸô2‡
 
<EFBFBD>/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/android_gradle_build.json  Ü÷<EFBFBD>×3 ¤¼ÇŸô2Œ <EFBFBD>/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/android_gradle_build.json  õô˜È‡3 ¤¼ÇŸô2Œ
 
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/android_gradle_build_mini.json  Ü÷<EFBFBD>×3 ¥¼ÇŸô2w /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/android_gradle_build_mini.json  õô˜È‡3 ¥¼ÇŸô2w
u u
s/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/build.ninja  Ü÷<EFBFBD>×3¾Í ¼ÇŸô2{ s/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/build.ninja  õô˜È‡3¾Í ¼ÇŸô2{
y y
w/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/build.ninja.txt  Ü÷<EFBFBD>×3 w/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/build.ninja.txt  õô˜È‡3
~ ~
|/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/build_file_index.txt  Ü÷<EFBFBD>×3 _ ¦¼ÇŸô2<C3B4> |/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/build_file_index.txt  õô˜È‡3 _ ¦¼ÇŸô2<C3B4>
 
}/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/compile_commands.json  Ü÷<EFBFBD>×3 }/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/compile_commands.json  õô˜È‡3
 
<EFBFBD>/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/compile_commands.json.bin  Ü÷<EFBFBD>×3 <09> <EFBFBD>/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/compile_commands.json.bin  õô˜È‡3 <09>
Š Š
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/metadata_generation_command.txt  Ü÷<EFBFBD>×3 /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/metadata_generation_command.txt  õô˜È‡3
¤ ¥¼ÇŸô2~ ¤ ¥¼ÇŸô2~
| |
z/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/prefab_config.json  Ü÷<EFBFBD>×3  ( ¦¼ÇŸô2„ z/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/prefab_config.json  õô˜È‡3  ( ¦¼ÇŸô2„
<EFBFBD> <EFBFBD>
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/symbol_folder_index.txt  Ü÷<EFBFBD>×3  v ¦¼ÇŸô2c /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/symbol_folder_index.txt  õô˜È‡3  v ¦¼ÇŸô2c
a a
_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  Ü÷<EFBFBD>×3 ¤ òÑÞ€á2 _/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  õô˜È‡3 ¤ òÑÞ€á2

View File

@ -2,27 +2,27 @@ C/C++ Structured Log
~ ~
|/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/additional_project_files.txtC |/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  é÷<EFBFBD>×3  µÂÇŸô2} ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÿô˜È‡3  µÂÇŸô2}
{ {
y/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/android_gradle_build.json  é÷<EFBFBD>×3 ·ÂÇŸô2ƒ y/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/android_gradle_build.json  ÿô˜È‡3 ·ÂÇŸô2ƒ
 
~/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/android_gradle_build_mini.json  é÷<EFBFBD>×3 ¸ÂÇŸô2o ~/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/android_gradle_build_mini.json  ÿô˜È‡3 ¸ÂÇŸô2o
m m
k/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/build.ninja  é÷<EFBFBD>×3ŽÍ ¨ÂÇŸô2s k/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/build.ninja  ÿô˜È‡3ŽÍ ¨ÂÇŸô2s
q q
o/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/build.ninja.txt  é÷<EFBFBD>×3x o/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/build.ninja.txt  ÿô˜È‡3x
v v
t/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/build_file_index.txt  é÷<EFBFBD>×3 _ ¹ÂÇŸô2y t/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/build_file_index.txt  ÿô˜È‡3 _ ¹ÂÇŸô2y
w w
u/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/compile_commands.json  é÷<EFBFBD>×3} u/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/compile_commands.json  ÿô˜È‡3}
{ {
y/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/compile_commands.json.bin  é÷<EFBFBD>×3 y/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/compile_commands.json.bin  ÿô˜È‡3
<EFBFBD> <EFBFBD>
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/metadata_generation_command.txt  é÷<EFBFBD>×3 /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/metadata_generation_command.txt  ÿô˜È‡3
ü ¹ÂÇŸô2v ü ¹ÂÇŸô2v
t t
r/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/prefab_config.json  é÷<EFBFBD>×3  ( ¹ÂÇŸô2{ r/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/prefab_config.json  ÿô˜È‡3  ( ¹ÂÇŸô2{
y y
w/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/symbol_folder_index.txt  é÷<EFBFBD>×3  n ¹ÂÇŸô2c w/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/symbol_folder_index.txt  ÿô˜È‡3  n ¹ÂÇŸô2c
a a
_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  é÷<EFBFBD>×3 ¤ òÑÞ€á2 _/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ÿô˜È‡3 ¤ òÑÞ€á2

View File

@ -2,27 +2,27 @@ C/C++ Structured Log
<EFBFBD> <EFBFBD>
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/additional_project_files.txtC /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ð÷<EFBFBD>×3  ·ÆÇŸô2€ ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ‰õ˜È‡3  ·ÆÇŸô2€
~ ~
|/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/android_gradle_build.json  ð÷<EFBFBD>×3Œ ¸ÆÇŸô2‡ |/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/android_gradle_build.json  ‰õ˜È‡3Œ ¸ÆÇŸô2‡
 
<EFBFBD>/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/android_gradle_build_mini.json  ð÷<EFBFBD>×3<18> ¹ÆÇŸô2r <EFBFBD>/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/android_gradle_build_mini.json  ‰õ˜È‡3<18> ¹ÆÇŸô2r
p p
n/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/build.ninja  ð÷<EFBFBD>×3 Í §ÆÇŸô2v n/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/build.ninja  ‰õ˜È‡3 Í §ÆÇŸô2v
t t
r/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/build.ninja.txt  ð÷<EFBFBD>×3{ r/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/build.ninja.txt  ‰õ˜È‡3{
y y
w/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/build_file_index.txt  ð÷<EFBFBD>×3 _ ¹ÆÇŸô2| w/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/build_file_index.txt  ‰õ˜È‡3 _ ¹ÆÇŸô2|
z z
x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/compile_commands.json  ð÷<EFBFBD>×3 x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/compile_commands.json  ‰õ˜È‡3
~ ~
|/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/compile_commands.json.bin  ð÷<EFBFBD>×3 ˆ |/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/compile_commands.json.bin  ‰õ˜È‡3 ˆ
 
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/metadata_generation_command.txt  ð÷<EFBFBD>×3 /Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/metadata_generation_command.txt  ‰õ˜È‡3
 ¹ÆÇŸô2y  ¹ÆÇŸô2y
w w
u/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/prefab_config.json  ð÷<EFBFBD>×3  ( ¹ÆÇŸô2~ u/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/prefab_config.json  ‰õ˜È‡3  ( ¹ÆÇŸô2~
| |
z/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/symbol_folder_index.txt  ð÷<EFBFBD>×3  q ¹ÆÇŸô2c z/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/symbol_folder_index.txt  ‰õ˜È‡3  q ¹ÆÇŸô2c
a a
_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ð÷<EFBFBD>×3 ¤ òÑÞ€á2 _/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ‰õ˜È‡3 ¤ òÑÞ€á2

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 826 B

After

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 KiB

View File

@ -139,22 +139,59 @@ class _SessionCheckScreenState extends ConsumerState<SessionCheckScreen> {
class SplashScreen extends StatelessWidget { class SplashScreen extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final isDark = Theme.of(context).brightness == Brightness.dark;
return Scaffold( return Scaffold(
backgroundColor: Colors.white, backgroundColor: isDark ? null : Colors.white,
body: Center( body: Container(
decoration: BoxDecoration(
color: isDark ? null : Colors.white,
image: isDark
? DecorationImage(
image: AssetImage('assets/splash_screen/background_splash_dark.png'), // 🔄 Add this background for dark mode
fit: BoxFit.cover,
)
: null,
),
child: Center(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Image.asset('assets/images/logo.png', width: 150), // App Logo // 🔄 White or normal logo depending on theme
// SizedBox(height: 20), Spacer(),
// CircularProgressIndicator(), // Loading indicator Image.asset(
isDark
? 'assets/splash_screen/FCSCLogo_dark.png'
: 'assets/splash_screen/FCSCLogo_light.png',
width: 150,
),
SizedBox(height: 20),
// Optional: Progress indicator or version
// CircularProgressIndicator(color: isDark ? Colors.white : Colors.black),
Spacer(),
Padding(
padding: const EdgeInsets.only(bottom: 24.0),
child: Column(
children: [
Text(
'© حقوق التأليف والنشر',
style: TextStyle(
color: isDark ? Colors.white70 : Colors.black54,
fontSize: 14,
fontFamily: 'NotoKufi',
),
),
], ],
), ),
), ),
],
),
),
),
); );
} }
} }
// import 'dart:math'; // import 'dart:math';
// //
// import 'package:flutter/material.dart'; // import 'package:flutter/material.dart';

View File

@ -20,4 +20,5 @@ abstract class MiscIconAssetPath {
static const group = '$_basePath/group.png'; static const group = '$_basePath/group.png';
static const search = '$_basePath/search.png'; static const search = '$_basePath/search.png';
static const Search = '$_basePath/Search.svg'; static const Search = '$_basePath/Search.svg';
static const successMsg = '$_basePath/successMsg.png';
} }

View File

@ -1,5 +1,6 @@
abstract class LogoAssetPath { abstract class LogoAssetPath {
static const _basePath = 'assets/logos'; static const _basePath = 'assets/logos';
static const fcsc = '$_basePath/fcsc.png'; static const fcsc = '$_basePath/fcsc.png';
static const uaeStat = '$_basePath/uae_stat.png'; static const uaeStatLight = '$_basePath/uae_stat_light.png';
static const uaeStatDark = '$_basePath/uae_stat_dark.png';
} }

View File

@ -61,7 +61,7 @@ class UaeNumbers extends ConsumerWidget {
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
), ),
color: isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFF414042), color: isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFF000000),
), ),
), ),
body: uaenumberWidget(), body: uaenumberWidget(),
@ -320,7 +320,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
}, },
) )
: null, : null,
contentPadding: EdgeInsets.symmetric(vertical: 12, horizontal: 18.0), // contentPadding: EdgeInsets.symmetric(vertical: 12, horizontal: 18.0),
border: InputBorder.none, border: InputBorder.none,
// contentPadding: // contentPadding:
// EdgeInsets.symmetric(vertical: 9, horizontal: 18.0), // EdgeInsets.symmetric(vertical: 9, horizontal: 18.0),
@ -358,7 +358,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
myheight, myheight,
borderColor, borderColor,
colorPattern, colorPattern,
mainTopic['main_topic']), mainTopic['main_topic'],isDarkTheme),
); );
}), }),
], ],
@ -371,7 +371,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
} }
List<Widget> _buildSubTopics(List<dynamic> subTopics, double myWidth, myheight, List<Widget> _buildSubTopics(List<dynamic> subTopics, double myWidth, myheight,
Color borderColor, String colorPattern, mainTopic) { Color borderColor, String colorPattern, mainTopic,isDarkTheme) {
subTopics.sort((a, b) => subTopics.sort((a, b) =>
(a['sub_topic_list_order'] ?? 0).compareTo(b['sub_topic_list_order'] ?? 0)); (a['sub_topic_list_order'] ?? 0).compareTo(b['sub_topic_list_order'] ?? 0));
@ -379,7 +379,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
.map<Widget>((subTopic) => Column( .map<Widget>((subTopic) => Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
buildCategoryTitle(subTopic['sub_topic'], borderColor), buildCategoryTitle(subTopic['sub_topic'], isDarkTheme),
..._buildDataSetCards(subTopic['tile_data'] ?? [], myWidth, ..._buildDataSetCards(subTopic['tile_data'] ?? [], myWidth,
borderColor, colorPattern, mainTopic), borderColor, colorPattern, mainTopic),
], ],
@ -430,7 +430,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
return rows; return rows;
} }
Widget buildCategoryTitle(String title, Color color) { Widget buildCategoryTitle(String title, isDarkTheme) {
return Padding( return Padding(
padding: const EdgeInsets.only(top: 1.2, bottom: 1.2), padding: const EdgeInsets.only(top: 1.2, bottom: 1.2),
child: Center( child: Center(
@ -443,7 +443,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
), ),
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: color, color: isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFF666666),
), ),
), ),
), ),

View File

@ -11,12 +11,13 @@ class Welcomepage extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
double myheight = MediaQuery.of(context).size.height; double myheight = MediaQuery.of(context).size.height;
double mywidth = MediaQuery.of(context).size.width; double mywidth = MediaQuery.of(context).size.width;
final fcscBanner = Image.asset( final fcscBanner = Image.asset(
BannerAssetPath.fcscLogoLight, BannerAssetPath.fcscLogoLight,
height: 40, height: 40,
); );
final uaestat = Image.asset( final uaestat = Image.asset(
LogoAssetPath.uaeStat, LogoAssetPath.uaeStatLight,
height: 50, height: 50,
); );

View File

@ -347,8 +347,16 @@ class _CreateNewPwState extends ConsumerState<CreateNewPw> {
isOn: locale?.languageCode == 'en', isOn: locale?.languageCode == 'en',
knobTextWhenOn: 'ع', knobTextWhenOn: 'ع',
knobTextWhenOff: 'EN', knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300, pathColorWhenOn: Color(0xFFD9D9D9),
pathColorWhenOff: Colors.grey.shade300, pathColorWhenOff: Color(0xFFD9D9D9),
knobTextStyleWhenOn: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
knobTextStyleWhenOff: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
onTap: () { onTap: () {
print('has validated $hasValidated'); print('has validated $hasValidated');
final formState = _formKey.currentState; final formState = _formKey.currentState;

View File

@ -349,8 +349,16 @@ class _ForgotPasswordState extends ConsumerState<ForgotPassword> {
isOn: locale?.languageCode == 'en', isOn: locale?.languageCode == 'en',
knobTextWhenOn: 'ع', knobTextWhenOn: 'ع',
knobTextWhenOff: 'EN', knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300, pathColorWhenOn: Color(0xFFD9D9D9),
pathColorWhenOff: Colors.grey.shade300, pathColorWhenOff: Color(0xFFD9D9D9),
knobTextStyleWhenOn: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
knobTextStyleWhenOff: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
onTap: () { onTap: () {
print('has validated $hasValidated'); print('has validated $hasValidated');
final formState = _formKey.currentState; final formState = _formKey.currentState;

View File

@ -396,8 +396,8 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
shape: BoxShape.circle, shape: BoxShape.circle,
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Colors.black12, color: isDarkTheme ? Colors.white : Colors.black12,
blurRadius: 6, blurRadius: isDarkTheme ? 0 : 6,
offset: Offset(0, 2), offset: Offset(0, 2),
), ),
], ],
@ -410,6 +410,7 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
); );
} }
return PopScope( return PopScope(
canPop: false, // Allow back navigation only if not login screen canPop: false, // Allow back navigation only if not login screen
onPopInvokedWithResult: (didPop, result) { onPopInvokedWithResult: (didPop, result) {
@ -417,7 +418,8 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
context.go('/login'); // Show exit confirmation dialog context.go('/login'); // Show exit confirmation dialog
}, },
child: Scaffold( child: Scaffold(
backgroundColor: isDarkTheme ? Color(0xFF111111) : Colors.white, backgroundColor: isDarkTheme ? Colors.black : Colors.white,
// backgroundColor: isDarkTheme ? Color(0xFF111111) : Colors.white,
body: SafeArea( body: SafeArea(
child: Stack(children: [ child: Stack(children: [
SingleChildScrollView( SingleChildScrollView(
@ -435,8 +437,16 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
isOn: locale?.languageCode == 'en', isOn: locale?.languageCode == 'en',
knobTextWhenOn: 'ع', knobTextWhenOn: 'ع',
knobTextWhenOff: 'EN', knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300, pathColorWhenOn: Color(0xFFD9D9D9),
pathColorWhenOff: Colors.grey.shade300, pathColorWhenOff: Color(0xFFD9D9D9),
knobTextStyleWhenOn: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
knobTextStyleWhenOff: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
onTap: () { onTap: () {
final formState = _formKey.currentState; final formState = _formKey.currentState;
ref ref
@ -466,11 +476,39 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
SizedBox(height: screenheight / 4), SizedBox(height: screenheight / 4),
buildIconContainer(Icons.check_circle_rounded,
Color(0xFFB68A34)
// Color(0xFF7DAFBC)
Container(
width: 60,
height: 60,
decoration: BoxDecoration(
color: Color(0xFFF9F9F9),
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
color: isDarkTheme
? Colors.white
: Colors.black12,
blurRadius: isDarkTheme ? 0 : 6,
// offset: Offset(0, 2),
), ),
],
),
child: Center(
child: SizedBox(
height: 35,
width: 35,
child: FittedBox(
fit: BoxFit.contain,
child: Image.asset(
MiscIconAssetPath.successMsg),
),
),
),
),
// buildIconContainer(
// // Icons.check, Color(0xFFB68A34)
// // Color(0xFF7DAFBC)
// ),
SizedBox(height: 20), SizedBox(height: 20),
Text( Text(
context.translate( context.translate(
@ -699,9 +737,10 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
? const Color(0xFF000000) ? const Color(0xFF000000)
: Colors.white, : Colors.white,
errorStyle: TextStyle( errorStyle: TextStyle(
color: isDarkTheme color: Color(0xFFD83731),
? Color(0xFFFFA200) // color: isDarkTheme
: Color(0xFFb22222), // ? Color(0xFFFFA200)
// : Color(0xFFb22222),
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
@ -751,7 +790,7 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
borderRadius: borderRadius:
BorderRadius.circular(10), BorderRadius.circular(10),
borderSide: BorderSide( borderSide: BorderSide(
color: Colors.deepPurple, color: Color(0xFFB68A34),
width: 2), // Focused border width: 2), // Focused border
), ),
errorBorder: OutlineInputBorder( errorBorder: OutlineInputBorder(
@ -807,9 +846,10 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
? const Color(0xFF000000) ? const Color(0xFF000000)
: Colors.white, : Colors.white,
errorStyle: TextStyle( errorStyle: TextStyle(
color: isDarkTheme color: Color(0xFFD83731),
? Color(0xFFFFA200) // color: isDarkTheme
: Color(0xFFb22222), // ? Color(0xFFFFA200)
// : Color(0xFFb22222),
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
@ -854,7 +894,7 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
borderRadius: borderRadius:
BorderRadius.circular(10), BorderRadius.circular(10),
borderSide: BorderSide( borderSide: BorderSide(
color: Colors.deepPurple, color: Color(0xFFB68A34),
width: 2), // Focused border width: 2), // Focused border
), ),
errorBorder: OutlineInputBorder( errorBorder: OutlineInputBorder(
@ -914,9 +954,10 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
? const Color(0xFF000000) ? const Color(0xFF000000)
: Colors.white, : Colors.white,
errorStyle: TextStyle( errorStyle: TextStyle(
color: isDarkTheme color: Color(0xFFD83731),
? Color(0xFFFFA200) // color: isDarkTheme
: Color(0xFFb22222), // ? Color(0xFFFFA200)
// : Color(0xFFb22222),
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
@ -992,7 +1033,7 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
borderRadius: borderRadius:
BorderRadius.circular(10), BorderRadius.circular(10),
borderSide: BorderSide( borderSide: BorderSide(
color: Colors.deepPurple, color: Color(0xFFB68A34),
width: 2), // Focused border width: 2), // Focused border
), ),
errorBorder: OutlineInputBorder( errorBorder: OutlineInputBorder(
@ -1051,9 +1092,7 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
? const Color(0xFF000000) ? const Color(0xFF000000)
: Colors.white, : Colors.white,
errorStyle: TextStyle( errorStyle: TextStyle(
color: isDarkTheme color: Color(0xFFD83731),
? Color(0xFFFFA200)
: Color(0xFFb22222),
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
@ -1119,7 +1158,7 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
borderRadius: borderRadius:
BorderRadius.circular(10), BorderRadius.circular(10),
borderSide: BorderSide( borderSide: BorderSide(
color: Colors.deepPurple, color: Color(0xFFB68A34),
width: 2), // Focused border width: 2), // Focused border
), ),
errorBorder: OutlineInputBorder( errorBorder: OutlineInputBorder(
@ -1405,6 +1444,7 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
borderRadius: borderRadius:
BorderRadius.circular(10), BorderRadius.circular(10),
), ),
padding: EdgeInsets.symmetric(vertical: 16.5),
), ),
child: Row( child: Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
@ -1439,7 +1479,7 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
), ),
), ),
), ),
SizedBox(height: 5), SizedBox(height: 10),
Text( Text(
AppLocalizations.of(context)! AppLocalizations.of(context)!
.account_confirmation, .account_confirmation,
@ -1459,7 +1499,7 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
: Color(0xFF898C81), : Color(0xFF898C81),
), ),
), ),
SizedBox(height: 5), SizedBox(height: 10),
Padding( Padding(
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
top: 5.0, top: 5.0,
@ -1479,6 +1519,7 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
borderRadius: borderRadius:
BorderRadius.circular(10), BorderRadius.circular(10),
), ),
padding: EdgeInsets.symmetric(vertical: 16.5),
), ),
child: Row( child: Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
@ -1518,7 +1559,8 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
height: 10, height: 10,
), ),
Padding( Padding(
padding: const EdgeInsets.all(20.0), padding: const EdgeInsets.symmetric(
horizontal: 70.0),
// child: Container( // child: Container(
// height: screenheight / 16, // height: screenheight / 16,
// width: screenwidth / 3, // width: screenwidth / 3,

View File

@ -2532,7 +2532,9 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
)), ),
color: isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFF000000),
),
) )
: Text( : Text(
context.translate( context.translate(
@ -2543,7 +2545,9 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
)), ),
color: isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFF000000),
),
), ),
// appbarColor: Color(int.parse(widget.bgColor)), // Example color // appbarColor: Color(int.parse(widget.bgColor)), // Example color
appbarColor: appbarColor:
@ -2584,8 +2588,8 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
'#898C81') '#898C81')
.replaceFirst('#', '0xff'))), .replaceFirst('#', '0xff'))),
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(
topLeft: Radius.circular(12.0), topLeft: Radius.circular(20),
topRight: Radius.circular(12.0), topRight: Radius.circular(20),
), ),
), ),
width: double.infinity, width: double.infinity,
@ -2795,21 +2799,7 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
strokeWidth: 2, strokeWidth: 2,
), ),
) // Show loading spinner ) // Show loading spinner
: isDarkTheme : Image(image: AssetImage(isDarkTheme ? UaeNumbersAssetPath.shareDark : UaeNumbersAssetPath.shareLight))
? SvgPicture.asset(
UaeNumbersAssetPath
.shareDark,
semanticsLabel: 'share',
width: 24,
height: 24,
)
: SvgPicture.asset(
UaeNumbersAssetPath
.shareLight,
semanticsLabel: 'share',
width: 24,
height: 24,
),
], ],
), ),
), ),
@ -2861,7 +2851,7 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
// ), // ),
], ],
), ),
) ),
// IconButton( // IconButton(
// icon: Icon(Icons.filter_alt_outlined, // icon: Icon(Icons.filter_alt_outlined,
// color: Colors.white, size: 24), // color: Colors.white, size: 24),
@ -2870,11 +2860,13 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
// context, filterData, chartsData); // context, filterData, chartsData);
// }, // },
// ), // ),
], ],
), ),
SizedBox(width: 10), SizedBox(width: 10),
], ],
), ),
SizedBox(height: 5),
], ],
), ),
), ),
@ -2897,6 +2889,7 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
padding: const EdgeInsets.all(10.0), padding: const EdgeInsets.all(10.0),
child: ListView( child: ListView(
children: [ children: [
SizedBox(height: 5),
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
@ -3042,11 +3035,11 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
.replaceFirst('#', '0xff'), .replaceFirst('#', '0xff'),
), ),
), // Border color ), // Border color
width: 1, // Border width width: 2, // Border width
), ),
color: backgroundColor, color: backgroundColor,
borderRadius: BorderRadius.circular( borderRadius: BorderRadius.circular(
8), // Optional: Rounded corners 5), // Optional: Rounded corners
), ),
child: Padding( child: Padding(
padding: const EdgeInsets.all(16.0), padding: const EdgeInsets.all(16.0),
@ -3148,11 +3141,11 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
Color(int.parse(widget.bgColor.replaceFirst('0x', ''), radix: 16)); Color(int.parse(widget.bgColor.replaceFirst('0x', ''), radix: 16));
return Container( return Container(
margin: EdgeInsets.symmetric(horizontal: 5.0), margin: EdgeInsets.symmetric(horizontal: 5.0),
width: 30.0, // Set the width of the circle width: 25.0, // Set the width of the circle
height: 25.0, height: 25.0,
decoration: BoxDecoration( decoration: BoxDecoration(
// color: onPressed == null ? Colors.grey[400] : Colors.white, // color: onPressed == null ? Colors.grey[400] : Colors.white,
color: onPressed == null color: onPressed != null
? Color(int.parse((chartScreenData['header_color'] ?? '#898C81') ? Color(int.parse((chartScreenData['header_color'] ?? '#898C81')
.replaceFirst('#', '0xff'))) .replaceFirst('#', '0xff')))
: isDarkTheme : isDarkTheme
@ -3168,10 +3161,17 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
// ), // ),
// ], // ],
), ),
child: Center( // Center the IconButton
child: IconButton( child: IconButton(
padding: EdgeInsets.zero, // Remove default padding
constraints: BoxConstraints(), // Remove default constraints
onPressed: onPressed, onPressed: onPressed,
icon: Icon(icon, color: onPressed == null ? Colors.white : Colors.grey), icon: Icon(
iconSize: 12.5, icon,
color: onPressed != null ? Colors.white : Color(0xFFC6BEB2),
size: 20.5,
),
),
), ),
); );
} }
@ -3206,7 +3206,7 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
'NotoKufi', 'NotoKufi',
), ),
// color: isActive ? Colors.black : Colors.white, // color: isActive ? Colors.black : Colors.white,
color: isDarkTheme ? Colors.white : Colors.black, color: chartScreenData['main_topic'] == 'SOCIAL' ? isActive ? Colors.white : isDarkTheme ? Colors.white : Colors.black : isActive ? Colors.black : isDarkTheme ? Colors.white : Colors.black,
// color: Colors.white, // color: Colors.white,
fontWeight: isActive ? FontWeight.w500 : FontWeight.w400, fontWeight: isActive ? FontWeight.w500 : FontWeight.w400,
fontSize: 13, fontSize: 13,
@ -3260,11 +3260,11 @@ class CardWidget extends StatelessWidget {
(themeMode == ThemeMode.system && (themeMode == ThemeMode.system &&
MediaQuery.of(context).platformBrightness == Brightness.dark); MediaQuery.of(context).platformBrightness == Brightness.dark);
final Map<String, Color> mainTopicColors = { // final Map<String, Color> mainTopicColors = {
'ECONOMY': Color(0xFF071F3B), // 'ECONOMY': Color(0xFF071F3B),
'SOCIAL': Color(0xFF4F241B), // 'SOCIAL': Color(0xFF4F241B),
'ENVIRONMENT': Color(0xFF16523C), // 'ENVIRONMENT': Color(0xFF16523C),
}; // };
final String mainTopic = chartScreenData['main_topic']; final String mainTopic = chartScreenData['main_topic'];
@ -3283,45 +3283,45 @@ class CardWidget extends StatelessWidget {
margin: const EdgeInsets.all(10), margin: const EdgeInsets.all(10),
// width: card_full_length ? double.infinity : null, // width: card_full_length ? double.infinity : null,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12), borderRadius: BorderRadius.circular(5),
border: Border.all( border: Border.all(
color: Color(int.parse( color: Color(int.parse(
(chartScreenData['border_color'] ?? '#898C81') (chartScreenData['border_color'] ?? '#898C81')
.replaceFirst('#', '0xff'))), .replaceFirst('#', '0xff'))),
// Dynamic border color // Dynamic border color
width: 1, // Adjust border thickness width: 2, // Adjust border thickness
), ),
), ),
child: Card( child: Card(
margin: const EdgeInsets.all(0), margin: const EdgeInsets.all(0),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12), borderRadius: BorderRadius.circular(5),
), ),
elevation: 2, elevation: 2,
child: Container( child: Container(
// height: cardHeight, // height: cardHeight,
height: 158, height: 135,
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
left: 16.0, right: 16.0, bottom: 2.0, top: 1.0), left: 16.0, right: 16.0, bottom: 2.0, top: 1.0),
decoration: BoxDecoration( decoration: BoxDecoration(
color: backgroundColor, // Move color inside BoxDecoration color: backgroundColor, // Move color inside BoxDecoration
borderRadius: BorderRadius.circular( borderRadius: BorderRadius.circular(
12), // Ensure border radius is applied 5), // Ensure border radius is applied
), ),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Image.network( // Image.network(
card_logo ?? '', // card_logo ?? '',
width: 30, // width: 30,
height: 30, // height: 30,
errorBuilder: (context, error, stackTrace) { // errorBuilder: (context, error, stackTrace) {
return Icon(Icons.public, // return Icon(Icons.public,
color: Color(0xFF90B0D5), size: 30); // Fallback icon // color: Color(0xFF90B0D5), size: 30); // Fallback icon
}, // },
), // ),
const SizedBox(height: 1), // const SizedBox(height: 1),
MouseRegion( MouseRegion(
onEnter: (event) { onEnter: (event) {
// Show tooltip on hover // Show tooltip on hover
@ -3344,6 +3344,7 @@ class CardWidget extends StatelessWidget {
chart_heading ?? 'NA', chart_heading ?? 'NA',
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 13,
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
@ -3369,7 +3370,7 @@ class CardWidget extends StatelessWidget {
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
), ),
fontSize: 11, fontSize: 13,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: isDarkTheme ? Color(0xFFFFFFFF) : Colors.black87, color: isDarkTheme ? Color(0xFFFFFFFF) : Colors.black87,
), ),
@ -3433,30 +3434,30 @@ class CardWidget extends StatelessWidget {
margin: const EdgeInsets.all(10), margin: const EdgeInsets.all(10),
// width: card_full_length ? double.infinity : null, // width: card_full_length ? double.infinity : null,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12), borderRadius: BorderRadius.circular(5),
border: Border.all( border: Border.all(
color: Color(int.parse( color: Color(int.parse(
(chartScreenData['border_color'] ?? '#898C81') (chartScreenData['border_color'] ?? '#898C81')
.replaceFirst('#', '0xff'))), // Dynamic border color .replaceFirst('#', '0xff'))), // Dynamic border color
width: 1, // Adjust border thickness width: 2, // Adjust border thickness
), ),
), ),
child: Card( child: Card(
margin: const EdgeInsets.all(0), margin: const EdgeInsets.all(0),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12), borderRadius: BorderRadius.circular(5),
), ),
elevation: 0, // Remove shadow to keep only the outli elevation: 0, // Remove shadow to keep only the outli
child: Container( child: Container(
height: 158, height: 135,
padding: const EdgeInsets.all(10.0), padding: const EdgeInsets.all(10.0),
// padding: const EdgeInsets.only( // padding: const EdgeInsets.only(
// left: 10.0, right: 10.0, bottom: 5.0, top: 1.0), // left: 10.0, right: 10.0, bottom: 5.0, top: 1.0),
decoration: BoxDecoration( decoration: BoxDecoration(
color: backgroundColor, // Move color inside BoxDecoration color: backgroundColor, // Move color inside BoxDecoration
borderRadius: borderRadius:
BorderRadius.circular(12), // Ensure border radius is applied BorderRadius.circular(5), // Ensure border radius is applied
), ),
child: Column( child: Column(
mainAxisSize: mainAxisSize:
@ -3465,16 +3466,16 @@ class CardWidget extends StatelessWidget {
children: [ children: [
// const Icon(Icons.public, // const Icon(Icons.public,
// color: Color(0xFF90B0D5), size: 30), // color: Color(0xFF90B0D5), size: 30),
Image.network( // Image.network(
card_logo ?? '', // card_logo ?? '',
width: 30, // width: 30,
height: 30, // height: 30,
errorBuilder: (context, error, stackTrace) { // errorBuilder: (context, error, stackTrace) {
return Icon(Icons.public, // return Icon(Icons.public,
color: Color(0xFF90B0D5), size: 30); // Fallback icon // color: Color(0xFF90B0D5), size: 30); // Fallback icon
}, // },
), // ),
const SizedBox(height: 3), // const SizedBox(height: 3),
MouseRegion( MouseRegion(
onEnter: (event) { onEnter: (event) {
final overlay = Overlay.of(context); final overlay = Overlay.of(context);
@ -3494,7 +3495,7 @@ class CardWidget extends StatelessWidget {
chart_heading ?? 'NA', chart_heading ?? 'NA',
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 10, fontSize: 13,
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
@ -3520,7 +3521,7 @@ class CardWidget extends StatelessWidget {
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
), ),
fontSize: 11, fontSize: 13,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: isDarkTheme ? Color(0xFFFFFFFF) : Colors.black87, color: isDarkTheme ? Color(0xFFFFFFFF) : Colors.black87,
), ),

View File

@ -328,7 +328,7 @@ class ChartWidget extends StatelessWidget {
// title: '${percentage.toStringAsFixed(1)}%', // title: '${percentage.toStringAsFixed(1)}%',
// title: percentage >= 0.1 ? '${percentage.toStringAsFixed(1)}%' : '', // title: percentage >= 0.1 ? '${percentage.toStringAsFixed(1)}%' : '',
title: percentage >= 0.1 ? '$displayTitle\n${percentage.toStringAsFixed(1)}%' : '', title: percentage >= 0.1 ? '$displayTitle\n${percentage.toStringAsFixed(1)}%' : '',
radius: isTouched ? 60 : 50, radius: isTouched ? 40 : 30,
// Increase size when touched // Increase size when touched
titleStyle: TextStyle( titleStyle: TextStyle(
@ -342,7 +342,7 @@ class ChartWidget extends StatelessWidget {
// color: Colors.white, // color: Colors.white,
), ),
// titlePositionPercentageOffset: 1.4, // titlePositionPercentageOffset: 1.4,
titlePositionPercentageOffset: 1.8, titlePositionPercentageOffset: 2.1,
); );
}).toList(); }).toList();
} }

View File

@ -34,7 +34,13 @@ class InternetCheckScreen extends ConsumerWidget {
double myHeight = MediaQuery.of(context).size.height; double myHeight = MediaQuery.of(context).size.height;
return Scaffold( return PopScope(
canPop: false,
onPopInvokedWithResult: (didPop, result) {
if (didPop) return;
},
child: Scaffold(
body: Padding( body: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Center( child: Center(
@ -112,6 +118,8 @@ class InternetCheckScreen extends ConsumerWidget {
), ),
), ),
), ),
),
); );
} }
} }

View File

@ -69,6 +69,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
// To keep track of the selected date // To keep track of the selected date
DateTime? _selectedDate; DateTime? _selectedDate;
String? role; String? role;
int isOAuthLogin = 0;
// Date format for the display // Date format for the display
final DateFormat _dateFormat = DateFormat('yyyy-MM-dd'); final DateFormat _dateFormat = DateFormat('yyyy-MM-dd');
@ -181,6 +182,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
_usernameController.text = userDetailsResponse.data['uname'] ?? ''; _usernameController.text = userDetailsResponse.data['uname'] ?? '';
_emailController.text = userDetailsResponse.data['email'] ?? ''; _emailController.text = userDetailsResponse.data['email'] ?? '';
role = userDetailsResponse.data['role'] ?? ''; role = userDetailsResponse.data['role'] ?? '';
isOAuthLogin = userDetailsResponse.data['is_oauth_login'] ?? '';
}); });
} catch (e) { } catch (e) {
print('Error fetching user details: $e'); print('Error fetching user details: $e');
@ -252,8 +254,6 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
builder: (context, child) { builder: (context, child) {
return Theme( return Theme(
data: Theme.of(context).copyWith( data: Theme.of(context).copyWith(
dialogBackgroundColor:
Colors.white, // Background color of the date picker
textButtonTheme: TextButtonThemeData( textButtonTheme: TextButtonThemeData(
style: ButtonStyle( style: ButtonStyle(
shape: WidgetStateProperty.all(RoundedRectangleBorder( shape: WidgetStateProperty.all(RoundedRectangleBorder(
@ -262,9 +262,10 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
), ),
), ),
datePickerTheme: DatePickerThemeData( datePickerTheme: DatePickerThemeData(
backgroundColor: isDarkTheme ? Colors.black : Colors.white,
confirmButtonStyle: ButtonStyle( confirmButtonStyle: ButtonStyle(
backgroundColor: WidgetStateProperty.all( backgroundColor: WidgetStateProperty.all(
Color(0xFFAA8E83)), // OK button background color Color(0xFFB68A34)), // OK button background color
foregroundColor: WidgetStateProperty.all( foregroundColor: WidgetStateProperty.all(
Colors.white), // OK button text color Colors.white), // OK button text color
// minimumSize: WidgetStateProperty.all(Size(150, 50)), // minimumSize: WidgetStateProperty.all(Size(150, 50)),
@ -276,16 +277,18 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
cancelButtonStyle: ButtonStyle( cancelButtonStyle: ButtonStyle(
// backgroundColor: WidgetStateProperty.all(Colors.white), // Cancel button background color // backgroundColor: WidgetStateProperty.all(Colors.white), // Cancel button background color
foregroundColor: WidgetStateProperty.all( foregroundColor: WidgetStateProperty.all(
Color(0xFFAA8E83)), // Cancel button text color Color(0xFFB68A34)), // Cancel button text color
// minimumSize: WidgetStateProperty.all(Size(150, 50)), // minimumSize: WidgetStateProperty.all(Size(150, 50)),
minimumSize: WidgetStateProperty.all(Size(100, 40)), minimumSize: WidgetStateProperty.all(Size(100, 40)),
shape: WidgetStateProperty.all(RoundedRectangleBorder( shape: WidgetStateProperty.all(RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12.0), // Rounded corners borderRadius: BorderRadius.circular(12.0), // Rounded corners
side: const BorderSide( side: const BorderSide(
color: Color(0xFFAA8E83), width: 2), // Outline color color: Color(0xFFB68A34), width: 2), // Outline color
)), )),
), ),
), ),
dialogTheme: DialogThemeData(
backgroundColor: isDarkTheme ? Colors.black : Colors.white),
), ),
child: child!, child: child!,
); );
@ -464,6 +467,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
'تسجيل الخروج', 'تسجيل الخروج',
), ),
style: TextStyle( style: TextStyle(
// color: Color(0xFFB68A34),
color: Color(0xFF898C81), color: Color(0xFF898C81),
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
fontFamily: context.translate( fontFamily: context.translate(
@ -502,7 +506,8 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
'إلغاء', 'إلغاء',
), ),
style: TextStyle( style: TextStyle(
color: Color(0xFFAA8E83), // color: Color(0xFFAA8E83),
color: Color(0xFFB68A34),
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
@ -513,7 +518,8 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
TextButton( TextButton(
onPressed: () => logout(context), // Exit the app onPressed: () => logout(context), // Exit the app
style: TextButton.styleFrom( style: TextButton.styleFrom(
backgroundColor: Color(0xFFAA8E83), // Set background color // backgroundColor: Color(0xFFAA8E83), // Set background color
backgroundColor: Color(0xFFB68A34), // Set background color
// foregroundColor: Colors.white, // foregroundColor: Colors.white,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0), // Set text color borderRadius: BorderRadius.circular(10.0), // Set text color
@ -603,8 +609,16 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
isOn: locale?.languageCode == 'en', isOn: locale?.languageCode == 'en',
knobTextWhenOn: 'ع', knobTextWhenOn: 'ع',
knobTextWhenOff: 'EN', knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300, pathColorWhenOn: Color(0xFFD9D9D9),
pathColorWhenOff: Colors.grey.shade300, pathColorWhenOff: Color(0xFFD9D9D9),
knobTextStyleWhenOn: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
knobTextStyleWhenOff: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
onTap: () { onTap: () {
final formState = _formKey.currentState; final formState = _formKey.currentState;
ref.read(localeProvider.notifier).toggleLocale(); ref.read(localeProvider.notifier).toggleLocale();
@ -728,6 +742,13 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
controller: _usernameController, controller: _usernameController,
focusNode: _focusNodes[0], focusNode: _focusNodes[0],
decoration: InputDecoration( decoration: InputDecoration(
errorStyle: TextStyle(
color: Color(0xFFD83731), // change to any color
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
// hintText: _showHints[0] ? 'Enter the User Name' : null, // hintText: _showHints[0] ? 'Enter the User Name' : null,
hintStyle: TextStyle( hintStyle: TextStyle(
fontFamily: context.translate( fontFamily: context.translate(
@ -765,6 +786,13 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
controller: _emailController, controller: _emailController,
focusNode: _focusNodes[1], focusNode: _focusNodes[1],
decoration: InputDecoration( decoration: InputDecoration(
errorStyle: TextStyle(
color: Color(0xFFD83731), // change to any color
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
// hintText: // hintText:
// _showHints[1] ? 'mohammad.hassan@fcsc.gov.ae' : null, // _showHints[1] ? 'mohammad.hassan@fcsc.gov.ae' : null,
hintStyle: TextStyle( hintStyle: TextStyle(
@ -819,6 +847,13 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
controller: _fullNameController, controller: _fullNameController,
focusNode: _focusNodes[2], focusNode: _focusNodes[2],
decoration: InputDecoration( decoration: InputDecoration(
errorStyle: TextStyle(
color: Color(0xFFD83731), // change to any color
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
enabledBorder: OutlineInputBorder( enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
borderSide: BorderSide( borderSide: BorderSide(
@ -839,12 +874,33 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
fontSize: 14, fontSize: 14,
), ),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide( borderSide: BorderSide(
color: Color(0xFFB68A34), color: Color(0xFFB68A34),
// color: // color:
// isDarkTheme ? Colors.white : Color(0xFF7296BE), // isDarkTheme ? Colors.white : Color(0xFF7296BE),
), ),
borderRadius: BorderRadius.circular(8), ),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: const Color(0xFFB68A34),
width: 2,
),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: Color(0xFFD83731),
width: 1,
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: Color(0xFFD83731),
width: 1,
),
), ),
counterText: '', counterText: '',
), ),
@ -877,6 +933,13 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
controller: _dateController, controller: _dateController,
focusNode: _focusNodes[3], focusNode: _focusNodes[3],
decoration: InputDecoration( decoration: InputDecoration(
errorStyle: TextStyle(
color: Color(0xFFD83731), // change to any color
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
enabledBorder: OutlineInputBorder( enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
borderSide: BorderSide( borderSide: BorderSide(
@ -896,6 +959,27 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
), ),
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: const Color(0xFFB68A34),
width: 2,
),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: Color(0xFFD83731),
width: 1,
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: Color(0xFFD83731),
width: 1,
),
),
hintText: _showHints[3] ? 'DD/MM/YYYY' : null, hintText: _showHints[3] ? 'DD/MM/YYYY' : null,
//_showHints[3] ? 'Select your Date of Birth' : null, //_showHints[3] ? 'Select your Date of Birth' : null,
hintStyle: TextStyle( hintStyle: TextStyle(
@ -954,6 +1038,13 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
isExpanded: true, isExpanded: true,
value: _selectedCountry, value: _selectedCountry,
decoration: InputDecoration( decoration: InputDecoration(
errorStyle: TextStyle(
color: Color(0xFFD83731), // change to any color
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
enabledBorder: OutlineInputBorder( enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
borderSide: BorderSide( borderSide: BorderSide(
@ -972,6 +1063,27 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
), ),
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: const Color(0xFFB68A34),
width: 2,
),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: Color(0xFFD83731),
width: 1,
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: Color(0xFFD83731),
width: 1,
),
),
labelText: context.translate('Select', ' اختيار')), labelText: context.translate('Select', ' اختيار')),
icon: Icon(Icons.keyboard_arrow_down_sharp, icon: Icon(Icons.keyboard_arrow_down_sharp,
color: _isHoveringDropdown color: _isHoveringDropdown
@ -1090,6 +1202,13 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
child: DropdownButtonFormField<String>( child: DropdownButtonFormField<String>(
value: _selectedLanguage, value: _selectedLanguage,
decoration: InputDecoration( decoration: InputDecoration(
errorStyle: TextStyle(
color: Color(0xFFD83731), // change to any color
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
enabledBorder: OutlineInputBorder( enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
borderSide: BorderSide( borderSide: BorderSide(
@ -1108,6 +1227,27 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
), ),
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: const Color(0xFFB68A34),
width: 2,
),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: Color(0xFFD83731),
width: 1,
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(
color: Color(0xFFD83731),
width: 1,
),
),
labelText: context.translate('Select', ' اختيار')), labelText: context.translate('Select', ' اختيار')),
icon: Icon(Icons.keyboard_arrow_down_sharp, icon: Icon(Icons.keyboard_arrow_down_sharp,
color: _isHoveringPreferredLang color: _isHoveringPreferredLang
@ -1149,9 +1289,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
}, },
side: BorderSide( side: BorderSide(
color: showError color: showError
? isDarkTheme ? Color(0xFFD83731)
? Color(0xFFB68A34)
: Color(0xFFb22222)
: Color(0xFFB68A34), : Color(0xFFB68A34),
// : isDarkTheme // : isDarkTheme
@ -1285,7 +1423,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
), ),
color: Color(0xFFb22222), color: Color(0xFFD83731),
fontSize: 12, fontSize: 12,
), ),
), ),
@ -1293,6 +1431,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
], ],
), ),
SizedBox(height: 20), SizedBox(height: 20),
if(isOAuthLogin != 1)
Center( Center(
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {

View File

@ -32,8 +32,16 @@ class LangToggle extends ConsumerWidget {
knobTextWhenOn: 'ع', knobTextWhenOn: 'ع',
paddingWhenOn: EdgeInsets.zero, paddingWhenOn: EdgeInsets.zero,
knobTextWhenOff: 'EN', knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300, pathColorWhenOn: Color(0xFFD9D9D9),
pathColorWhenOff: Colors.grey.shade300, pathColorWhenOff: Color(0xFFD9D9D9),
knobTextStyleWhenOn: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
knobTextStyleWhenOff: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
); );
} }
} }

View File

@ -10,6 +10,8 @@ class MyToggle extends StatelessWidget {
this.knobTextWhenOff = '', this.knobTextWhenOff = '',
this.pathColorWhenOn = Colors.green, this.pathColorWhenOn = Colors.green,
this.pathColorWhenOff = const Color(0xffD9D9D9), this.pathColorWhenOff = const Color(0xffD9D9D9),
required this.knobTextStyleWhenOn,
required this.knobTextStyleWhenOff,
}); });
final bool isOn; final bool isOn;
@ -19,6 +21,8 @@ class MyToggle extends StatelessWidget {
final Color pathColorWhenOn; final Color pathColorWhenOn;
final Color pathColorWhenOff; final Color pathColorWhenOff;
final void Function()? onTap; final void Function()? onTap;
final TextStyle knobTextStyleWhenOn;
final TextStyle knobTextStyleWhenOff;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -34,6 +38,10 @@ class MyToggle extends StatelessWidget {
); );
final knobText = Text( final knobText = Text(
isOn ? knobTextWhenOn : knobTextWhenOff, isOn ? knobTextWhenOn : knobTextWhenOff,
style: TextStyle(
color: isOn ? knobTextStyleWhenOn.color : knobTextStyleWhenOff.color,
fontWeight: isOn ? knobTextStyleWhenOn.fontWeight : knobTextStyleWhenOff.fontWeight,
),
); );
final shouldShowKnobText = (isOn && knobTextWhenOn.isNotEmpty) || final shouldShowKnobText = (isOn && knobTextWhenOn.isNotEmpty) ||
(!isOn && knobTextWhenOff.isNotEmpty); (!isOn && knobTextWhenOff.isNotEmpty);
@ -42,7 +50,7 @@ class MyToggle extends StatelessWidget {
radius: 21 / 2, radius: 21 / 2,
child: CircleAvatar( child: CircleAvatar(
backgroundColor: Colors.white, backgroundColor: Colors.white,
radius: 20 / 2, radius: 18 / 2,
child: shouldShowKnobText child: shouldShowKnobText
? FittedBox( ? FittedBox(
child: Padding( child: Padding(

View File

@ -63,7 +63,7 @@ class ThemedAppBar extends ConsumerWidget {
), ),
); );
final logo = Image.asset( final logo = Image.asset(
LogoAssetPath.uaeStat, LogoAssetPath.uaeStatLight,
height: 36, height: 36,
); );
final title = titleText == null final title = titleText == null

View File

@ -205,19 +205,20 @@ class LoginRoute extends HookConsumerWidget {
} }
// Function to send the reset password request // Function to send the reset password request
Future<void> forgotPasswordMail(String email) async { Future<String> forgotPasswordMail(String email) async {
final url = final url =
Uri.parse("${pb.baseUrl}api/auth/request-password-reset?email=$email"); Uri.parse("${pb.baseUrl}api/auth/request-password-reset?email=$email");
try { try {
final response = await http.get(url); final response = await http.get(url);
final body = json.decode(response.body);
if (response.statusCode == 200) { if (response.statusCode == 200) {
return; // Success, no action needed here return body['status'] ?? 'Reset link sent successfully.';
} else { } else {
final errorResponse = json.decode(response.body); final errorResponse = json.decode(response.body);
throw Exception( throw Exception(
errorResponse['message'] ?? "Failed to send reset email."); errorResponse['status'] ?? "Failed to send reset email.");
} }
} catch (error) { } catch (error) {
throw Exception("Something went wrong. Please try again."); throw Exception("Something went wrong. Please try again.");
@ -329,7 +330,7 @@ class LoginRoute extends HookConsumerWidget {
print('themeMode $themeMode'); print('themeMode $themeMode');
} }
Future<void> googleLogin(BuildContext context, WidgetRef ref,platform) async { Future<void> oAuthGoogleAndAppleLogin(BuildContext context, WidgetRef ref,platform) async {
print(platform); print(platform);
try { try {
final authData = final authData =
@ -342,6 +343,7 @@ class LoginRoute extends HookConsumerWidget {
print("✅ Login Successful"); print("✅ Login Successful");
print(authData.record); print(authData.record);
final metaDetails = authData.meta;
final userDetails = authData.record; final userDetails = authData.record;
final userId = userDetails?.id; final userId = userDetails?.id;
final email = userDetails?.data['email'] ?? ''; final email = userDetails?.data['email'] ?? '';
@ -354,8 +356,10 @@ class LoginRoute extends HookConsumerWidget {
print("Email: ${isProfileComplete}"); print("Email: ${isProfileComplete}");
print("Email: ${loginCount}"); print("Email: ${loginCount}");
await saveUserId(userId!, loginCount); await loginCountApi(userId!);
// await getDeviceToken(context, id); await updateOAuthUserDetails(userId!, metaDetails);
// await saveUserId(userId!, loginCount);
// await getDeviceToken(context, userId);
await initializeTheme(context, ref, userId); await initializeTheme(context, ref, userId);
final session = await context.loaderWithErrorDialog( final session = await context.loaderWithErrorDialog(
@ -420,6 +424,71 @@ class LoginRoute extends HookConsumerWidget {
} }
} }
Future<void> loginCountApi(String userId) async {
if (userId.isNotEmpty) {
final url =
// Uri.parse("https://pb.venbait.in/api/login_success?id=$userId");
Uri.parse('$apiUrl/api/login_success?id=$userId');
try {
final response = await http.get(url);
if (response.statusCode == 200) {
print("Login success API call successful: ${response.body}");
final count = jsonDecode(response.body);
loginCount = count["login_count"];
print(loginCount);
} else {
print(
"Failed to call login success API. Status code: ${response.statusCode}");
}
} catch (e) {
print("Error calling login success API: $e");
}
await saveUserId(userId, loginCount);
}
}
Future<void> updateOAuthUserDetails(String userId, metaDetails) async {
final url = "${pb.baseUrl}/api/collections/users/records/$userId";
try {
// // Authenticate admin (Persist session globally instead)
// await pb.admins.authWithPassword(
// 'pb@venbainfotech.com',
// 'pb@venbainfotech.com',
// );
final userDetails = metaDetails['rawUser'];
print('oauthDetails $userDetails');
final response = await http.patch(
Uri.parse(url),
headers: {
'Content-Type': 'application/json', // Add this
'Authorization': pb.authStore.token, // Correct way to send auth token
},
body: jsonEncode({
"user_mail_verify": true,
"reviewed": true,
"role": 'user',
"uname": userDetails['name'],
"status": 'Approved',
"is_oauth_login": 1,
}),
);
if (response.statusCode == 200) {
print("✅ Device token updated successfully!");
} else {
print("❌ Failed to update device token: ${response.body}");
}
} catch (e) {
print("🚨 Error updating device token: $e");
}
}
// SessionEntity _sessionEntityFromPocketbaseRecord(RecordAuth ra) { // SessionEntity _sessionEntityFromPocketbaseRecord(RecordAuth ra) {
// final decodedToken = JwtDecoder.decode(ra.token); // final decodedToken = JwtDecoder.decode(ra.token);
// final expInSeconds = decodedToken['exp']; // final expInSeconds = decodedToken['exp'];
@ -575,7 +644,7 @@ class LoginRoute extends HookConsumerWidget {
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
), ),
color: isDarkTheme ? Color(0xFFFFA100) : Colors.red, color: Color(0xFFD83731),
), ),
labelText: context.translate( labelText: context.translate(
'Email address', 'Email address',
@ -587,42 +656,40 @@ class LoginRoute extends HookConsumerWidget {
'NotoKufi', 'NotoKufi',
), ),
fontSize: locale?.languageCode == 'ar' ? 13 : 16, fontSize: locale?.languageCode == 'ar' ? 13 : 16,
color: isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFF898C81), // For label text color color: isDarkTheme
? Color(0xFFFFFFFF)
: Color(0xFF898C81), // For label text color
// fontWeight: FontWeight.w600, // fontWeight: FontWeight.w600,
), ),
// Default Border // Default Border
// Bottom border (no outline) // Bottom border (no outline)
enabledBorder: UnderlineInputBorder( enabledBorder: UnderlineInputBorder(
borderSide: BorderSide( borderSide: BorderSide(
color: isDarkTheme ? Colors.white : const Color(0xFF898C81), color: isDarkTheme
? Colors.white
: const Color(0xFF898C81),
width: 1, width: 1,
), ),
), ),
focusedBorder: UnderlineInputBorder( focusedBorder: UnderlineInputBorder(
borderSide: BorderSide( borderSide: BorderSide(
color: isDarkTheme ? const Color(0xFF24B4FB) : Colors.deepPurple, color: Color(0xFFB68A34),
width: 2, width: 2,
), ),
), ),
errorBorder: UnderlineInputBorder( errorBorder: UnderlineInputBorder(
borderSide: BorderSide( borderSide: BorderSide(
color: isDarkTheme ? const Color(0xFFFFA100) : Colors.red, color: Color(0xFFD83731),
width: 1, width: 1,
), ),
), ),
focusedErrorBorder: UnderlineInputBorder( focusedErrorBorder: UnderlineInputBorder(
borderSide: BorderSide( borderSide: BorderSide(
color: isDarkTheme ? const Color(0xFFFFA100) : Colors.red, color: Color(0xFFD83731),
width: 2, width: 2,
), ),
), ),
), ),
), ),
), ),
@ -631,10 +698,9 @@ class LoginRoute extends HookConsumerWidget {
onPressed: Navigator.of(dialogCtx, rootNavigator: true).pop, onPressed: Navigator.of(dialogCtx, rootNavigator: true).pop,
style: TextButton.styleFrom( style: TextButton.styleFrom(
// backgroundColor: Colors.white, // Background color // backgroundColor: Colors.white, // Background color
foregroundColor: isDarkTheme ? Color(0xFF24B4FB) : Color(0xFF92722A), // Font (text) color foregroundColor: Color(0xFF92722A), // Font (text) color
side: BorderSide( side: BorderSide(
color: isDarkTheme ? Color(0xFF24B4FB) : Color(0xFF92722A) color: Color(0xFF92722A)), // Border outline color
), // Border outline color
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: borderRadius:
BorderRadius.circular(8), // Optional: Rounded corners BorderRadius.circular(8), // Optional: Rounded corners
@ -647,10 +713,13 @@ class LoginRoute extends HookConsumerWidget {
'Return', 'Return',
'يعود', 'يعود',
), ),
style: TextStyle( fontSize: context.translate(12, 10), fontFamily: context.translate( style: TextStyle(
fontSize: context.translate(12, 10),
fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
),), ),
),
), ),
), ),
ElevatedButton( ElevatedButton(
@ -662,7 +731,7 @@ class LoginRoute extends HookConsumerWidget {
); );
}, },
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
backgroundColor: isDarkTheme ? Color(0xFF24B4FB) : Color(0xFF92722A), backgroundColor: Color(0xFFB68A34),
foregroundColor: Colors.white, foregroundColor: Colors.white,
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
horizontal: 10, vertical: 10), // Optional: Adjusts size horizontal: 10, vertical: 10), // Optional: Adjusts size
@ -676,10 +745,13 @@ class LoginRoute extends HookConsumerWidget {
'Send Email', 'Send Email',
'إرسال بريد إلكتروني', 'إرسال بريد إلكتروني',
), ),
style: TextStyle( fontSize: context.translate(12, 10), fontFamily: context.translate( style: TextStyle(
fontSize: context.translate(12, 10),
fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
),), ),
),
), ),
), ),
], ],
@ -689,11 +761,15 @@ class LoginRoute extends HookConsumerWidget {
if (email == null) return; if (email == null) return;
if (!context.mounted) return; if (!context.mounted) return;
// await context.loaderWithErrorDialog(() async {
// await forgotPasswordMail(email);
// });
String status = '';
await context.loaderWithErrorDialog(() async { await context.loaderWithErrorDialog(() async {
await forgotPasswordMail(email); status = await forgotPasswordMail(email);
}); });
if (!context.mounted) return; if (!context.mounted) return;
if (status == 'success') {
context.simpleDialog( context.simpleDialog(
title: context.translate( title: context.translate(
'Success!', 'Success!',
@ -704,6 +780,19 @@ class LoginRoute extends HookConsumerWidget {
'تم إرسال بريد إلكتروني إلى $email يتضمن المزيد من التفاصيل.', 'تم إرسال بريد إلكتروني إلى $email يتضمن المزيد من التفاصيل.',
), ),
); );
} else {
context.simpleDialog(
title: context.translate(
'Failed!',
'نجاح',
),
content: context.translate(
'Password reset is not available for accounts signed in with Apple or Google.',
'لا تتوفر إمكانية إعادة تعيين كلمة المرور للحسابات التي تم تسجيل الدخول إليها باستخدام Apple أو Google.',
),
);
}
}, },
style: TextButton.styleFrom( style: TextButton.styleFrom(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
@ -892,7 +981,7 @@ class LoginRoute extends HookConsumerWidget {
), ),
), ),
padding: const WidgetStatePropertyAll( padding: const WidgetStatePropertyAll(
EdgeInsets.symmetric(vertical: 10.5), EdgeInsets.symmetric(vertical: 16.5),
), ),
textStyle: WidgetStatePropertyAll( textStyle: WidgetStatePropertyAll(
TextStyle( TextStyle(
@ -901,7 +990,7 @@ class LoginRoute extends HookConsumerWidget {
'NotoKufi', 'NotoKufi',
), ),
fontSize: locale?.languageCode == 'ar' ? 14 : 16, fontSize: locale?.languageCode == 'ar' ? 14 : 16,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w500,
), ),
), ),
backgroundColor: WidgetStatePropertyAll( backgroundColor: WidgetStatePropertyAll(
@ -929,15 +1018,15 @@ class LoginRoute extends HookConsumerWidget {
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
), ),
fontSize: locale?.languageCode == 'ar' ? 12 : 18, fontSize: locale?.languageCode == 'ar' ? 12 : 16,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: isDarkTheme ? Color(0xFF000000) : null, color: isDarkTheme ? Colors.white : Colors.white,
), ),
), ),
6.horizontalSpace, 6.horizontalSpace,
Icon( Icon(
Icons.chevron_right_outlined, Icons.chevron_right_outlined,
color: isDarkTheme ? Color(0xFF000000) : Colors.white, // Set your desired color here color: isDarkTheme ? Colors.white : Colors.white, // Set your desired color here
) )
], ],
), ),
@ -995,7 +1084,7 @@ class LoginRoute extends HookConsumerWidget {
controller: pwCtl, controller: pwCtl,
isObscurable: true, isObscurable: true,
), ),
// 6.verticalSpace, 6.verticalSpace,
Padding( Padding(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
child: Align( child: Align(
@ -1003,7 +1092,7 @@ class LoginRoute extends HookConsumerWidget {
child: forgotPwBtn, child: forgotPwBtn,
), ),
), ),
10.verticalSpace, 11.verticalSpace,
loginBtn, loginBtn,
], ],
), ),
@ -1146,14 +1235,14 @@ class LoginRoute extends HookConsumerWidget {
width: double.infinity, width: double.infinity,
child: OutlinedButton( child: OutlinedButton(
onPressed: () async { onPressed: () async {
googleLogin(context,ref,'google'); oAuthGoogleAndAppleLogin(context,ref,'google');
}, },
style: OutlinedButton.styleFrom( style: OutlinedButton.styleFrom(
side: const BorderSide(color: Color(0xFF000000)), side: const BorderSide(color: Color(0xFF000000)),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
padding: const EdgeInsets.symmetric(vertical: 12), padding: const EdgeInsets.symmetric(vertical: 16.5),
backgroundColor: Colors.white, backgroundColor: Colors.white,
foregroundColor: Colors.black, foregroundColor: Colors.black,
textStyle: TextStyle( textStyle: TextStyle(
@ -1186,14 +1275,14 @@ class LoginRoute extends HookConsumerWidget {
width: double.infinity, width: double.infinity,
child: OutlinedButton( child: OutlinedButton(
onPressed: () async { onPressed: () async {
googleLogin(context,ref,'apple'); oAuthGoogleAndAppleLogin(context,ref,'apple');
}, },
style: OutlinedButton.styleFrom( style: OutlinedButton.styleFrom(
side: const BorderSide(color: Color(0xFF000000)), side: const BorderSide(color: Color(0xFF000000)),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
padding: const EdgeInsets.symmetric(vertical: 12), padding: const EdgeInsets.symmetric(vertical: 16.5),
backgroundColor: Colors.white, backgroundColor: Colors.white,
foregroundColor: Colors.black, foregroundColor: Colors.black,
textStyle: TextStyle( textStyle: TextStyle(
@ -1231,7 +1320,7 @@ class LoginRoute extends HookConsumerWidget {
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
padding: const EdgeInsets.symmetric(vertical: 12), padding: const EdgeInsets.symmetric(vertical: 16.5),
backgroundColor: Colors.white, backgroundColor: Colors.white,
foregroundColor: Colors.black, foregroundColor: Colors.black,
textStyle: TextStyle( textStyle: TextStyle(
@ -1260,11 +1349,14 @@ class LoginRoute extends HookConsumerWidget {
), ),
), ),
); );
final fcscBanner = Image.asset( final fcscBanner = Padding(
padding: const EdgeInsets.symmetric(horizontal: 50),
child: Image.asset(
isDarkTheme isDarkTheme
? BannerAssetPath.fcscLogoDark ? BannerAssetPath.fcscLogoDark
: BannerAssetPath.fcscLogoLight, : BannerAssetPath.fcscLogoLight,
height: 40, height: 30,
),
); );
final screenWidth = MediaQuery.of(context).size.width; final screenWidth = MediaQuery.of(context).size.width;
final listViewHorizontalPadding = final listViewHorizontalPadding =
@ -1283,8 +1375,16 @@ class LoginRoute extends HookConsumerWidget {
isOn: locale?.languageCode == 'en', isOn: locale?.languageCode == 'en',
knobTextWhenOn: 'ع', knobTextWhenOn: 'ع',
knobTextWhenOff: 'EN', knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300, pathColorWhenOn: Color(0xFFD9D9D9),
pathColorWhenOff: Colors.grey.shade300, pathColorWhenOff: Color(0xFFD9D9D9),
knobTextStyleWhenOn: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
knobTextStyleWhenOff: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
onTap: () { onTap: () {
final formState = formKey.currentState; final formState = formKey.currentState;
ref.read(localeProvider.notifier).toggleLocale(); ref.read(localeProvider.notifier).toggleLocale();
@ -1297,7 +1397,7 @@ class LoginRoute extends HookConsumerWidget {
}, },
), ),
), ),
34.verticalSpace, 20.verticalSpace,
helloAndPleaseLoginTexts, helloAndPleaseLoginTexts,
40.verticalSpace, 40.verticalSpace,
form, form,

View File

@ -174,6 +174,7 @@ import 'package:uae_stat/config/theme/theme_provider.dart';
import 'package:uae_stat/config/toggle_lang_service.dart'; import 'package:uae_stat/config/toggle_lang_service.dart';
import 'package:uae_stat/domain/use_cases/language.dart'; import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/infrastructure/data/p_auth_repo.dart'; import 'package:uae_stat/infrastructure/data/p_auth_repo.dart';
import 'package:uae_stat/infrastructure/services/img_asset_paths/logo_asset_path.dart';
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart'; import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
import 'package:tutorial_coach_mark/tutorial_coach_mark.dart'; import 'package:tutorial_coach_mark/tutorial_coach_mark.dart';
import 'package:uae_stat/presentation/Screens/app_tour/Target_content.dart'; import 'package:uae_stat/presentation/Screens/app_tour/Target_content.dart';
@ -200,7 +201,7 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
context.go('/login'); // Redirect to login after logout context.go('/login'); // Redirect to login after logout
} }
void _showExitConfirmation(BuildContext context) { void _showExitConfirmation(BuildContext context,isDarkTheme) {
double myheight = MediaQuery.of(context).size.height; double myheight = MediaQuery.of(context).size.height;
showDialog( showDialog(
context: context, context: context,
@ -209,11 +210,12 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5.0), // Rounded corners borderRadius: BorderRadius.circular(5.0), // Rounded corners
), ),
backgroundColor: isDarkTheme ? Colors.black : Colors.white,
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,
title: Text( title: Text(
context.translate('Log Out Confirmation', 'تأكيد تسجيل الخروج'), context.translate('Log Out Confirmation', 'تأكيد تسجيل الخروج'),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, fontFamily: context.translate( style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: isDarkTheme ? Colors.white : Colors.black, fontFamily: context.translate(
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
),), ),),
@ -249,7 +251,7 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
borderRadius: BorderRadius.circular(10.0), borderRadius: BorderRadius.circular(10.0),
), ),
side: BorderSide( side: BorderSide(
color: Color(0xFFAA8E83), // Border color color: Color(0xFFB68A34), // Border color
width: 1, width: 1,
), ),
), ),
@ -260,7 +262,7 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
), ),
color: Color(0xFFAA8E83), color: Color(0xFFB68A34),
fontSize: 16, fontSize: 16,
), ),
), ),
@ -272,7 +274,7 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
child: TextButton( child: TextButton(
onPressed: () => logout(context), onPressed: () => logout(context),
style: TextButton.styleFrom( style: TextButton.styleFrom(
backgroundColor: Color(0xFFAA8E83), // Background color backgroundColor: Color(0xFFB68A34), // Background color
foregroundColor: Colors.white, foregroundColor: Colors.white,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0), borderRadius: BorderRadius.circular(10.0),
@ -344,18 +346,23 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
double myheight = MediaQuery.of(context).size.height; double myheight = MediaQuery.of(context).size.height;
double mywidth = MediaQuery.of(context).size.width; double mywidth = MediaQuery.of(context).size.width;
final isDarkTheme = ref.watch(themeProvider) == ThemeMode.dark ||
(ref.watch(themeProvider) == ThemeMode.system &&
MediaQuery.of(context).platformBrightness == Brightness.dark);
return PopScope( return PopScope(
canPop: false, // Allow back navigation only if not login screen canPop: false, // Allow back navigation only if not login screen
onPopInvokedWithResult: (didPop, result) { onPopInvokedWithResult: (didPop, result) {
if (didPop) return; if (didPop) return;
_showExitConfirmation(context); // Show exit confirmation dialog _showExitConfirmation(context,isDarkTheme); // Show exit confirmation dialog
}, },
child: BaseScaffold( child: BaseScaffold(
title: Center( title: Center(
child: SizedBox( child: SizedBox(
height: myheight / 5, height: myheight / 5,
width: mywidth / 3, width: mywidth / 3,
child: Image(image: AssetImage('assets/logos/uae_stat.png')))), child: Image(image: AssetImage(isDarkTheme ? LogoAssetPath.uaeStatDark : LogoAssetPath.uaeStatLight)))),
body: EconomyStatsWidget(), body: EconomyStatsWidget(),
), ),
); );
@ -1335,6 +1342,7 @@ class EconomyStatsState extends ConsumerState<EconomyStatsWidget> {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
SizedBox(height: 10),
RoundedCornerContainer( RoundedCornerContainer(
key: mainTopic['main_topic'] == firstMainTopic key: mainTopic['main_topic'] == firstMainTopic
? cardTopicKey ? cardTopicKey
@ -1596,7 +1604,7 @@ class InfoCard extends StatelessWidget {
child: Container( child: Container(
height: myheight / 10.9, height: myheight / 10.9,
width: mywidth / 4, width: mywidth / 5,
margin: const EdgeInsets.symmetric(horizontal: 8), margin: const EdgeInsets.symmetric(horizontal: 8),
// padding: const EdgeInsets.all(10), // padding: const EdgeInsets.all(10),

View File

@ -289,10 +289,11 @@ class _VersionToggle extends HookConsumerWidget {
), ),
), ),
), ),
MyToggle( // MyToggle(
isOn: version.toBool(), // isOn: version.toBool(),
onTap: null, // onTap: null,
), //
// ),
DefaultTextStyleTransition( DefaultTextStyleTransition(
style: styleTween.animate( style: styleTween.animate(
Animation.fromValueListenable( Animation.fromValueListenable(

View File

@ -551,13 +551,15 @@ class _BookMarkState extends ConsumerState<BookMark> {
child: selectedTabIndex == 0 child: selectedTabIndex == 0
? (bookmarks.isNotEmpty ? (bookmarks.isNotEmpty
? SingleChildScrollView( ? SingleChildScrollView(
child: Container(
padding: const EdgeInsets.all(13.0),
child: Column( child: Column(
children: List.generate( children: List.generate(
transformedList.length, (i) { transformedList.length, (i) {
final mainTopic = transformedList[i]; final mainTopic = transformedList[i];
print('oustside1 $mainTopic'); print('oustside1 $mainTopic');
final list = final list = List.from(
List.from(mainTopic['SubTopic'] ?? []); mainTopic['SubTopic'] ?? []);
print('oustside2 $list'); print('oustside2 $list');
return CustomExpandableTile( return CustomExpandableTile(
index: i, index: i,
@ -571,8 +573,8 @@ class _BookMarkState extends ConsumerState<BookMark> {
: index; : index;
}); });
}, },
title: title: mainTopic['main_topic'] ??
mainTopic['main_topic'] ?? 'No Topic', 'No Topic',
childWidget: Container( childWidget: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: isDarkTheme color: isDarkTheme
@ -611,6 +613,7 @@ class _BookMarkState extends ConsumerState<BookMark> {
); );
}), }),
), ),
),
) )
: Center( : Center(
child: Column( child: Column(
@ -658,6 +661,8 @@ class _BookMarkState extends ConsumerState<BookMark> {
) )
: Padding( : Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Container(
margin: const EdgeInsets.all(13.0),
child: Column( child: Column(
children: [ children: [
Container( Container(
@ -721,6 +726,7 @@ class _BookMarkState extends ConsumerState<BookMark> {
), ),
), ),
), ),
),
], ],
), ),
), ),

View File

@ -100,6 +100,7 @@ class _EditProfileState extends ConsumerState<EditProfile> {
dynamic recordId; dynamic recordId;
dynamic collectionId; dynamic collectionId;
dynamic role; dynamic role;
late int isOAuthLogin;
bool _isHoveringDropdown = false; bool _isHoveringDropdown = false;
bool _isHoveringPreferredLang = false; bool _isHoveringPreferredLang = false;
@ -203,6 +204,7 @@ class _EditProfileState extends ConsumerState<EditProfile> {
_usernameController.text = userDetailsResponse.data['uname'] ?? ''; _usernameController.text = userDetailsResponse.data['uname'] ?? '';
_emailController.text = userDetailsResponse.data['email'] ?? ''; _emailController.text = userDetailsResponse.data['email'] ?? '';
_fullNameController.text = userDetailsResponse.data['full_name'] ?? ''; _fullNameController.text = userDetailsResponse.data['full_name'] ?? '';
isOAuthLogin = userDetailsResponse.data['is_oauth_login'] ?? '';
// _selectedCountry = userDetailsResponse.data['country_region'] ?? ''; // _selectedCountry = userDetailsResponse.data['country_region'] ?? '';
final countryName = final countryName =
@ -1412,6 +1414,7 @@ class _EditProfileState extends ConsumerState<EditProfile> {
), ),
], ],
), ),
if(isOAuthLogin != 1)
Center( Center(
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {

View File

@ -666,14 +666,14 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
), ),
color: isDarkTheme ? Colors.black : Colors.white, color: Colors.white,
), ),
), ),
6.horizontalSpace, 6.horizontalSpace,
Icon( Icon(
Icons.chevron_right_outlined, Icons.chevron_right_outlined,
// color: Colors.white, // color: Colors.white,
color: isDarkTheme ? Colors.black : Colors.white, color: Colors.white,
), ),
], ],
), ),
@ -1231,8 +1231,16 @@ class LangToggle extends ConsumerWidget {
}, },
knobTextWhenOn: 'ع', knobTextWhenOn: 'ع',
knobTextWhenOff: 'EN', knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300, pathColorWhenOn: Color(0xFFD9D9D9),
pathColorWhenOff: Colors.grey.shade300, pathColorWhenOff: Color(0xFFD9D9D9),
knobTextStyleWhenOn: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
knobTextStyleWhenOff: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
); );
} }
} }

View File

@ -6,6 +6,9 @@ import 'package:intl/intl.dart';
import 'package:pocketbase/pocketbase.dart'; import 'package:pocketbase/pocketbase.dart';
import 'package:uae_stat/config/api_config.dart'; import 'package:uae_stat/config/api_config.dart';
import 'package:uae_stat/config/connectivity_provider.dart'; import 'package:uae_stat/config/connectivity_provider.dart';
import 'package:uae_stat/config/theme/app_theme.dart';
import 'package:uae_stat/config/theme/service.dart';
import 'package:uae_stat/config/theme/theme_provider.dart';
import 'package:uae_stat/config/toggle_lang_service.dart'; import 'package:uae_stat/config/toggle_lang_service.dart';
import 'package:uae_stat/domain/use_cases/language.dart'; import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart'; import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart';
@ -15,7 +18,7 @@ import 'package:uae_stat/presentation/components/my_bottom_nav_bar.dart';
import 'package:uae_stat/presentation/components/my_drawer.dart'; import 'package:uae_stat/presentation/components/my_drawer.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// import 'package:flutter_gen/gen_l10n/app_localizations.dart'; // import 'package:uae_stat/l10n/app_localizations.dart';
class ManageUserRouter extends ConsumerStatefulWidget { class ManageUserRouter extends ConsumerStatefulWidget {
late final Widget title; late final Widget title;
@ -336,10 +339,51 @@ class _ManageUserRouterState extends ConsumerState<ManageUserRouter> {
} }
}); });
// ref.listen<Locale?>(localeProvider, (previous, next) async {
// final localeCode = next?.languageCode ?? 'en'; // Default to 'en' if null
// await _userService.updateLanguage(localeCode);
// });
ref.listen<Locale?>(localeProvider, (previous, next) async { ref.listen<Locale?>(localeProvider, (previous, next) async {
final localeCode = next?.languageCode ?? 'en'; // Default to 'en' if null final localeCode = next?.languageCode ?? 'en'; // Default to 'en' if null
await _userService.updateLanguage(localeCode); setState(() {
isLoading = true;
}); });
await _userService.updateLanguage(localeCode);
final currentTheme = ref.read(themeProvider);
final isDark = currentTheme == ThemeMode.dark ||
(currentTheme == ThemeMode.system &&
MediaQuery.of(context).platformBrightness == Brightness.dark);
final themeString = isDark ? 'dark' : 'light';
fetchUnverifiedUsers();
// fetchBookmarks(localeCode, themeString);
});
ref.listen<ThemeMode>(themeProvider, (previous, next) async {
final localeCode = ref.watch(localeProvider)?.languageCode ?? 'en';
print(localeCode);
// Default to 'en' if null
setState(() {
isLoading = true;
print('isLoadingref $isLoading');
});
final currentTheme = ref.read(themeProvider);
final isDark = currentTheme == ThemeMode.dark ||
(currentTheme == ThemeMode.system &&
MediaQuery.of(context).platformBrightness == Brightness.dark);
final themeString = isDark ? 'dark' : 'light';
fetchUnverifiedUsers();
// fetchBookmarks(localeCode, themeString);
});
final isDarkTheme = ref.watch(themeProvider) == ThemeMode.dark ||
(ref.watch(themeProvider) == ThemeMode.system &&
MediaQuery.of(context).platformBrightness == Brightness.dark);
final Map<String, String> statusOptions = { final Map<String, String> statusOptions = {
'Approved': AppLocalizations.of(context)!.approved, 'Approved': AppLocalizations.of(context)!.approved,
@ -356,6 +400,8 @@ class _ManageUserRouterState extends ConsumerState<ManageUserRouter> {
context.go('/myhomepage'); // Show exit confirmation dialog context.go('/myhomepage'); // Show exit confirmation dialog
}, },
child: BaseScaffold( child: BaseScaffold(
backgroundColor: isDarkTheme ? Colors.black : Colors.white,
appbarColor: isDarkTheme ? Color(0xFF111111) : Colors.white,
// title: Text("Manage User"), // title: Text("Manage User"),
title: Text( title: Text(
AppLocalizations.of(context)!.manage_user, AppLocalizations.of(context)!.manage_user,
@ -391,81 +437,41 @@ class _ManageUserRouterState extends ConsumerState<ManageUserRouter> {
const EdgeInsets.only(left: 10.0, right: 10.0, top: 3.0), const EdgeInsets.only(left: 10.0, right: 10.0, top: 3.0),
child: Column( child: Column(
children: [ children: [
// TextField(
// decoration: InputDecoration(
// prefixIcon: const Icon(Icons.search),
// hintText: 'Search',
// border: OutlineInputBorder(
// borderRadius: BorderRadius.all(Radius.circular(20)),
// ),
// ),
// onChanged: filterUsers,
// ),
// Container(
// height: 40,
// decoration: BoxDecoration(
// color: Colors.white,
// borderRadius: BorderRadius.circular(30.0),
// border: Border.all(width: 2, color: Color(0xFFAA8E83)),
// ),
// child: TextField(
// decoration: InputDecoration(
// hintText: AppLocalizations.of(context)!.search,
// hintStyle: TextStyle(color: Color(0xFFC3C6CB)),
// prefixIcon: Image.asset(
// MiscIconAssetPath.search,
// width: 20,
// height: 20,
// ),
// // ,prefixIcon: Icon(
// // Icons.search,
// // color: Color(0xFFAA8E83),
// // ),
// border: InputBorder.none,
// contentPadding: EdgeInsets.symmetric(
// vertical: 15.0, horizontal: 20.0),
// ),
// onChanged: filterUsers,
// ),
// ),
Container( Container(
height: 40, height: 40,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: isDarkTheme ? Color(0xFF000000) : Colors.white,
borderRadius: BorderRadius.circular(30.0), borderRadius: BorderRadius.circular(5.0),
border: border: Border.all(width: 2, color: Color(0xFFA0A0A0)),
Border.all(width: 1, color: Color(0xFFAA8E83)),
), ),
child: Padding( child: Padding(
padding: EdgeInsets.only(left: 12.0), padding: EdgeInsets.only(left: 5.0),
child: TextField( child: TextField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.search, hintText: AppLocalizations.of(context)!.search,
hintStyle: TextStyle( hintStyle: TextStyle(
color: Color(0xFFAA8E83), color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
fontFamily: fontFamily: context.translate('Roboto', 'NotoKufi'),
context.translate('Roboto', 'NotoKufi'), fontSize: 18,
fontSize: 14, // height: 1.8,
height: 2.5, // Helps with vertical alignment
), ),
prefixIconConstraints: BoxConstraints( prefixIconConstraints: BoxConstraints(
maxWidth: 42, maxWidth: 42,
maxHeight: 42, maxHeight: 42,
), ),
prefixIcon: Container( prefixIcon: Container(
padding: EdgeInsets.only(right: 5, left: 5),
alignment: Alignment.center, alignment: Alignment.center,
padding: EdgeInsets.only(left: 10, right: 5),
child: SvgPicture.asset( child: SvgPicture.asset(
MiscIconAssetPath.Search, MiscIconAssetPath.Search,
semanticsLabel: 'Search', semanticsLabel: 'Search',
colorFilter: ColorFilter.mode(Color(0xFFAA8E83), BlendMode.srcIn),
height: 18, height: 18,
width: 18, width: 18,
colorFilter: ColorFilter.mode(
Color(0xFFAA8E83), BlendMode.srcIn),
), ),
), ),
contentPadding: EdgeInsets.only( // contentPadding: EdgeInsets.symmetric(vertical: 12, horizontal: 18.0),
top: 14), // Aligns hint text with icon
border: InputBorder.none, border: InputBorder.none,
), ),
onChanged: filterUsers, onChanged: filterUsers,

View File

@ -286,6 +286,34 @@ class _NotificationPageState extends ConsumerState<NotificationPage> {
{'title': AppLocalizations.of(context)!.notificationFavourites}, {'title': AppLocalizations.of(context)!.notificationFavourites},
]; ];
// final List<Map<String, dynamic>> tabs = [
// {
// 'title': AppLocalizations.of(context)!.all_updates,
// 'color': Colors.blue,
// },
// {
// 'title': AppLocalizations.of(context)!.app_updates,
// 'color': Colors.green,
// },
// {
// 'title': AppLocalizations.of(context)!.notificationSocial,
// 'color': Color(0xFF675863),
// },
// {
// 'title': AppLocalizations.of(context)!.notificationEconomy,
// 'color': Color(0xFF89AFD8),
// },
// {
// 'title': AppLocalizations.of(context)!.notificationEnvironment,
// 'color': Color(0xFFB3CF99),
// },
// {
// 'title': AppLocalizations.of(context)!.notificationFavourites,
// 'color': Colors.red,
// },
// ];
// Filter notifications based on the selected tab // Filter notifications based on the selected tab
List<Map<String, dynamic>> filteredNotifications = selectedTabIndex == 0 List<Map<String, dynamic>> filteredNotifications = selectedTabIndex == 0
? notifications ? notifications
@ -423,7 +451,7 @@ class TabBarHeader extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
color: isDarkTheme ? Color(0xFF111111) : Colors.grey[200], color: isDarkTheme ? Color(0xFF111111) : Colors.white,
padding: const EdgeInsets.symmetric(vertical: 8), padding: const EdgeInsets.symmetric(vertical: 8),
child: SingleChildScrollView( child: SingleChildScrollView(
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
@ -440,8 +468,8 @@ class TabBarHeader extends StatelessWidget {
foregroundColor: foregroundColor:
MaterialStateProperty.resolveWith((states) { MaterialStateProperty.resolveWith((states) {
return selectedIndex == index return selectedIndex == index
? Color(0xFF985400) ? isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFFB68A34)
: Colors.grey[700]; : isDarkTheme ? Color(0xFFBBBBBB) : Color(0xFF898C81);
}), }),
), ),
child: Text( child: Text(

View File

@ -179,7 +179,7 @@ class _GetStartedState extends ConsumerState<GetStarted> {
), ),
), ),
), ),
SizedBox(height: 10), // SizedBox(height: 10),
// SizedBox( // SizedBox(
// width: MediaQuery.of(context).size.width, // width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.height * 0.36, // height: MediaQuery.of(context).size.height * 0.36,
@ -188,7 +188,8 @@ class _GetStartedState extends ConsumerState<GetStarted> {
// fit: BoxFit.contain, // fit: BoxFit.contain,
// ), // ),
// ), // ),
Padding(padding: const EdgeInsets.all(30.0), Padding(
padding: const EdgeInsets.all(30.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -232,7 +233,8 @@ class _GetStartedState extends ConsumerState<GetStarted> {
), ),
), ),
], ],
),) ),
)
// SizedBox( // SizedBox(
// height: MediaQuery.of(context).size.height * 0.12, // height: MediaQuery.of(context).size.height * 0.12,
// ), // ),

View File

@ -13,7 +13,6 @@ import 'package:uae_stat/presentation/components/indicators/locale_provider.dart
import '../../../../../../infrastructure/services/img_asset_paths/banner_asset_path.dart'; import '../../../../../../infrastructure/services/img_asset_paths/banner_asset_path.dart';
import '../../../custom_drawer_routes.dart'; import '../../../custom_drawer_routes.dart';
class AppFeatures extends ConsumerStatefulWidget { class AppFeatures extends ConsumerStatefulWidget {
const AppFeatures({super.key}); const AppFeatures({super.key});
@ -176,7 +175,7 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
), ),
), ),
), ),
SizedBox(height: 20,), // SizedBox(height: 20,),
// SizedBox( // SizedBox(
// width: MediaQuery.of(context).size.width, // width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.height * 0.36, // height: MediaQuery.of(context).size.height * 0.36,
@ -185,7 +184,8 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
// fit: BoxFit.contain, // fit: BoxFit.contain,
// ), // ),
// ), // ),
Padding(padding: const EdgeInsets.all(30.0), Padding(
padding: const EdgeInsets.all(30.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -215,10 +215,13 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Colors.black, color: isDarkTheme
? Colors.white
: Colors.black,
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
@ -239,7 +242,8 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
children: <TextSpan>[ children: <TextSpan>[
TextSpan( TextSpan(
text: context.translate( text: context.translate(
'Economy, Environment, Social, ', ''), 'Economy, Environment, Social, ',
''),
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: isDarkTheme color: isDarkTheme
@ -252,7 +256,8 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
), ),
), ),
TextSpan( TextSpan(
text: context.translate('and more.', ''), text: context.translate(
'and more.', ''),
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
? Colors.white ? Colors.white
@ -283,14 +288,16 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
'Explore statistics presented as smart metrics, graphs, and charts for better understanding.', 'Explore statistics presented as smart metrics, graphs, and charts for better understanding.',
'استكشاف الإحصائيات المقدمة على هيئة مقاييس ذكية ورسوم بيانية ومخططات لتعزيز الفهم.', 'استكشاف الإحصائيات المقدمة على هيئة مقاييس ذكية ورسوم بيانية ومخططات لتعزيز الفهم.',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -336,14 +343,16 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
'Start with high-level categories and drill down to specific KPIs and metrics for deeper insights.', 'Start with high-level categories and drill down to specific KPIs and metrics for deeper insights.',
'البدء بالفئات العامة والتنقل وصولًا إلى مؤشرات الأداء الرئيسية (KPIs) والمقاييس المحددة للحصول على رؤى أعمق.', 'البدء بالفئات العامة والتنقل وصولًا إلى مؤشرات الأداء الرئيسية (KPIs) والمقاييس المحددة للحصول على رؤى أعمق.',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -389,14 +398,16 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
'View trends and relationships with interactive graphs and charts, including bar graphs, line charts, and more.', 'View trends and relationships with interactive graphs and charts, including bar graphs, line charts, and more.',
'عرض الاتجاهات والعلاقات باستخدام الرسوم البيانية التفاعلية مثل المخططات الشريطية، المخططات الخطية، وغيرها.', 'عرض الاتجاهات والعلاقات باستخدام الرسوم البيانية التفاعلية مثل المخططات الشريطية، المخططات الخطية، وغيرها.',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -451,7 +462,8 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
'Available only to registered users whose accounts have been approved by an admin.', 'Available only to registered users whose accounts have been approved by an admin.',
'متاح فقط للمستخدمين المسجلين الذين تمت الموافقة على حساباتهم من قبل المسؤول.', 'متاح فقط للمستخدمين المسجلين الذين تمت الموافقة على حساباتهم من قبل المسؤول.',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -460,8 +472,6 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
), ),
), ),
), // Space between bullet and text ), // Space between bullet and text
], ],
), ),
Row( Row(
@ -477,14 +487,16 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
'Login ensures secure access to sensitive statistical information.', 'Login ensures secure access to sensitive statistical information.',
'يضمن تسجيل الدخول الوصول الآمن إلى المعلومات الإحصائية الحساسة.', 'يضمن تسجيل الدخول الوصول الآمن إلى المعلومات الإحصائية الحساسة.',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -539,7 +551,8 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
'Update your profile details, such as name, password, and region, to personalize your experience.', 'Update your profile details, such as name, password, and region, to personalize your experience.',
'قم بتحديث تفاصيل ملفك الشخصي، مثل الاسم وكلمة المرور والمنطقة، لتخصيص تجربتك.', 'قم بتحديث تفاصيل ملفك الشخصي، مثل الاسم وكلمة المرور والمنطقة، لتخصيص تجربتك.',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -554,7 +567,8 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
), ),
), ),
], ],
),) ),
)
], ],
), ),
), ),

View File

@ -182,16 +182,12 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
), ),
), ),
), ),
SizedBox( // SizedBox(
height: 20, // height: 20,
// width: MediaQuery.of(context).size.width, //
// height: MediaQuery.of(context).size.height * 0.36,
// child: Image.asset(
// 'assets/user_guide/changePassword.png',
// fit: BoxFit.contain,
// ), // ),
), Padding(
Padding(padding: const EdgeInsets.all(30.0), padding: const EdgeInsets.all(30.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -201,12 +197,13 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
'يُساعد تغيير كلمة المرور في الحفاظ على أمان حسابك. اتبع هذه الخطوات لتحديث كلمة مرور', 'يُساعد تغيير كلمة المرور في الحفاظ على أمان حسابك. اتبع هذه الخطوات لتحديث كلمة مرور',
), ),
style: TextStyle( style: TextStyle(
color: isDarkTheme ? Colors.white : Color(0xFF898C81)), color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
), ),
SizedBox(height: 12), SizedBox(height: 12),
Text( Text(
context.translate( context.translate('Steps to Change Password',
'Steps to Change Password', 'خطوات تغيير كلمة المرور '), 'خطوات تغيير كلمة المرور '),
style: TextStyle( style: TextStyle(
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
@ -251,7 +248,8 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
@ -340,7 +338,8 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
@ -352,7 +351,8 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
? Colors.white ? Colors.white
: Color(0xFF898C81), : Color(0xFF898C81),
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
), ),
), ),
@ -395,14 +395,16 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
'Enter your new password in the second field.', 'Enter your new password in the second field.',
'أدخل كلمة المرور الجديدة في الحقل الثاني.', 'أدخل كلمة المرور الجديدة في الحقل الثاني.',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -426,14 +428,16 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
'Re-enter the new password in the third field for confirmation.', 'Re-enter the new password in the third field for confirmation.',
'أعد إدخال كلمة المرور الجديدة في الحقل الثالث للتأكيد.', 'أعد إدخال كلمة المرور الجديدة في الحقل الثالث للتأكيد.',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -481,14 +485,16 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
'Your new password must be different from the previously used password.', 'Your new password must be different from the previously used password.',
'جب أن تكون كلمة المرور الجديدة مختلفة عن كلمة المرور المستخدمة سابقًا', 'جب أن تكون كلمة المرور الجديدة مختلفة عن كلمة المرور المستخدمة سابقًا',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -534,7 +540,8 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
@ -553,7 +560,8 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
), ),
children: <TextSpan>[ children: <TextSpan>[
TextSpan( TextSpan(
text: context.translate('Save ', '"حفظ".'), text: context.translate(
'Save ', '"حفظ".'),
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: isDarkTheme color: isDarkTheme
@ -592,14 +600,16 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
'A confirmation message will appear: “Password has been successfully updated.”', 'A confirmation message will appear: “Password has been successfully updated.”',
'ستظهر رسالة تأكيد: "تم تحديث كلمة المرور بنجاح".', 'ستظهر رسالة تأكيد: "تم تحديث كلمة المرور بنجاح".',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -615,7 +625,8 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
), ),
SizedBox(height: 8), SizedBox(height: 8),
Text( Text(
context.translate('6. Re-Login:', '6. إعادة تسجيل الدخول'), context.translate(
'6. Re-Login:', '6. إعادة تسجيل الدخول'),
style: TextStyle( style: TextStyle(
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
@ -644,14 +655,16 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
'Log in again using your new password to continue using the app', 'Log in again using your new password to continue using the app',
'قم بتسجيل الدخول مرة أخرى باستخدام كلمة المرور الجديدة للاستمرار في استخدام التطبيق.', 'قم بتسجيل الدخول مرة أخرى باستخدام كلمة المرور الجديدة للاستمرار في استخدام التطبيق.',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -666,7 +679,8 @@ class _ChangeMyPasswordState extends ConsumerState<ChangeMyPassword> {
), ),
), ),
], ],
),) ),
)
], ],
), ),
), ),

View File

@ -180,16 +180,11 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
), ),
), ),
), ),
SizedBox( // SizedBox(
height: 10, // height: 10,
// width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.height * 0.36,
// child: Image.asset(
// 'assets/user_guide/editProfile.png',
// fit: BoxFit.contain,
// ), // ),
), Padding(
Padding(padding: const EdgeInsets.all(30.0), padding: const EdgeInsets.all(30.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -199,12 +194,13 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
'يتيح لك تعديل ملف التعريف الخاص بك بتحديث معلومات معينة مع ضمان أن تبقى البيانات الحساسة آمنة. اتبع الخطوات التالية لتحديث ملفك الشخصي:', 'يتيح لك تعديل ملف التعريف الخاص بك بتحديث معلومات معينة مع ضمان أن تبقى البيانات الحساسة آمنة. اتبع الخطوات التالية لتحديث ملفك الشخصي:',
), ),
style: TextStyle( style: TextStyle(
color: isDarkTheme ? Colors.white : Color(0xFF898C81)), color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
), ),
SizedBox(height: 12), SizedBox(height: 12),
Text( Text(
context.translate( context.translate('Steps to Edit Profile',
'Steps to Edit Profile', 'خطوات تعديل الملف الشخصي '), 'خطوات تعديل الملف الشخصي '),
style: TextStyle( style: TextStyle(
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
@ -249,7 +245,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
@ -267,7 +264,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
), ),
children: <TextSpan>[ children: <TextSpan>[
TextSpan( TextSpan(
text: context.translate('"Profile"', ''), text:
context.translate('"Profile"', ''),
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: isDarkTheme color: isDarkTheme
@ -293,8 +291,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
), ),
SizedBox(height: 8), SizedBox(height: 8),
Text( Text(
context.translate( context.translate('2. Editable Fields:',
'2. Editable Fields:', '2. الحقول القابلة للتعديل:'), '2. الحقول القابلة للتعديل:'),
style: TextStyle( style: TextStyle(
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
@ -318,10 +316,13 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Colors.black, color: isDarkTheme
? Colors.white
: Colors.black,
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
@ -373,10 +374,13 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Colors.black, color: isDarkTheme
? Colors.white
: Colors.black,
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
@ -393,7 +397,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
children: <TextSpan>[ children: <TextSpan>[
TextSpan( TextSpan(
text: context.translate( text: context.translate(
'Date of Birth: ', 'تاريخ الميلاد: '), 'Date of Birth: ',
'تاريخ الميلاد: '),
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: isDarkTheme color: isDarkTheme
@ -429,10 +434,13 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Colors.black, color: isDarkTheme
? Colors.white
: Colors.black,
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
@ -486,10 +494,12 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
padding: const EdgeInsets.only(top: 8.0), padding: const EdgeInsets.only(top: 8.0),
child: Icon(Icons.brightness_1, child: Icon(Icons.brightness_1,
size: 5, size: 5,
color: color: isDarkTheme
isDarkTheme ? Colors.white : Colors.black), ? Colors.white
: Colors.black),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
@ -562,10 +572,12 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
padding: const EdgeInsets.only(top: 8.0), padding: const EdgeInsets.only(top: 8.0),
child: Icon(Icons.brightness_1, child: Icon(Icons.brightness_1,
size: 5, size: 5,
color: color: isDarkTheme
isDarkTheme ? Colors.white : Colors.black), ? Colors.white
: Colors.black),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
@ -604,7 +616,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
), ),
), ),
TextSpan( TextSpan(
text: context.translate('Email Id: ', ''), text: context.translate(
'Email Id: ', ''),
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: isDarkTheme color: isDarkTheme
@ -661,17 +674,21 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Colors.black, color: isDarkTheme
? Colors.white
: Colors.black,
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
'Ensure that the checkbox for "I agree to Terms & Conditions and Privacy Policy" is selected before saving changes.', 'Ensure that the checkbox for "I agree to Terms & Conditions and Privacy Policy" is selected before saving changes.',
'تأكد من تحديد خانة "أوافق على الشروط والأحكام وسياسة الخصوصية" قبل حفظ التغييرات.', 'تأكد من تحديد خانة "أوافق على الشروط والأحكام وسياسة الخصوصية" قبل حفظ التغييرات.',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -716,7 +733,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
@ -734,7 +752,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
), ),
children: <TextSpan>[ children: <TextSpan>[
TextSpan( TextSpan(
text: context.translate('Save', '"حفظ" '), text: context.translate(
'Save', '"حفظ" '),
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: isDarkTheme color: isDarkTheme
@ -776,14 +795,16 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: Text( child: Text(
context.translate( context.translate(
'A confirmation dialog will appear with the message: “Are you sure you want to save this page? Once saved, you will not be able to change your name or date of birth.”', 'A confirmation dialog will appear with the message: “Are you sure you want to save this page? Once saved, you will not be able to change your name or date of birth.”',
'ستظهر نافذة تأكيد برسالة:"هل أنت متأكد أنك تريد حفظ هذه الصفحة؟ بمجرد الحفظ، لن تتمكن من تغيير اسمك أو تاريخ ميلادك."', 'ستظهر نافذة تأكيد برسالة:"هل أنت متأكد أنك تريد حفظ هذه الصفحة؟ بمجرد الحفظ، لن تتمكن من تغيير اسمك أو تاريخ ميلادك."',
), ),
textAlign: TextAlign.justify, // Align the text textAlign:
TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
@ -807,7 +828,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
: Color(0xFF414042), : Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(
width: 8), // Space between bullet and text
Expanded( Expanded(
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
@ -825,7 +847,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
), ),
children: <TextSpan>[ children: <TextSpan>[
TextSpan( TextSpan(
text: context.translate('Confirm', ''), text:
context.translate('Confirm', ''),
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: isDarkTheme color: isDarkTheme
@ -852,7 +875,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
), ),
), ),
TextSpan( TextSpan(
text: context.translate(' Cancel', ''), text:
context.translate(' Cancel', ''),
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: isDarkTheme color: isDarkTheme
@ -865,7 +889,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
), ),
), ),
TextSpan( TextSpan(
text: context.translate(' to go back.', ''), text: context.translate(
' to go back.', ''),
style: TextStyle( style: TextStyle(
fontSize: 16, fontSize: 16,
color: isDarkTheme color: isDarkTheme
@ -887,8 +912,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
), ),
), ),
], ],
),) ),
)
], ],
), ),
), ),

View File

@ -8,7 +8,8 @@ import 'package:uae_stat/config/theme/theme_provider.dart';
import 'package:uae_stat/config/toggle_lang_service.dart'; import 'package:uae_stat/config/toggle_lang_service.dart';
import 'package:uae_stat/domain/use_cases/language.dart'; import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart'; import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; // import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// import 'package:uae_stat/l10n/app_localizations.dart';
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart'; import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
@ -182,15 +183,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
), ),
), ),
), ),
SizedBox( // SizedBox(
height:10, // height: 10,
// width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.height * 0.36,
// child: Image.asset(
// 'assets/user_guide/howUse.png',
// fit: BoxFit.contain,
// ), // ),
),
Padding( Padding(
padding: const EdgeInsets.all(30.0), padding: const EdgeInsets.all(30.0),
child: Column( child: Column(
@ -220,7 +215,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme
? Colors.white
: Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(width: 8), // Space between bullet and text
@ -233,8 +230,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
textAlign: TextAlign.justify, // Align the text textAlign: TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: color: isDarkTheme
isDarkTheme ? Colors.white : Color(0xFF898C81)), ? Colors.white
: Color(0xFF898C81)),
), ),
), ),
], ],
@ -264,7 +262,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme
? Colors.white
: Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(width: 8), // Space between bullet and text
@ -277,8 +277,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
textAlign: TextAlign.justify, // Align the text textAlign: TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: color: isDarkTheme
isDarkTheme ? Colors.white : Color(0xFF898C81)), ? Colors.white
: Color(0xFF898C81)),
), ),
), ),
], ],
@ -308,7 +309,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme
? Colors.white
: Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(width: 8), // Space between bullet and text
@ -321,8 +324,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
textAlign: TextAlign.justify, // Align the text textAlign: TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: color: isDarkTheme
isDarkTheme ? Colors.white : Color(0xFF898C81)), ? Colors.white
: Color(0xFF898C81)),
), ),
), ),
], ],
@ -352,7 +356,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme
? Colors.white
: Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(width: 8), // Space between bullet and text
@ -365,14 +371,16 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
textAlign: TextAlign.justify, // Align the text textAlign: TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: color: isDarkTheme
isDarkTheme ? Colors.white : Color(0xFF898C81)), ? Colors.white
: Color(0xFF898C81)),
), ),
), ),
], ],
), ),
], ],
),) ),
)
], ],
), ),
), ),

View File

@ -11,7 +11,8 @@ import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Countr
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart'; import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; // import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// import 'package:uae_stat/l10n/app_localizations.dart';
class Purpose extends ConsumerStatefulWidget { class Purpose extends ConsumerStatefulWidget {
const Purpose({super.key}); const Purpose({super.key});
@ -182,16 +183,12 @@ class _PurposeState extends ConsumerState<Purpose> {
), ),
), ),
), ),
SizedBox( // SizedBox(
height: 10, // height: 10,
// width: MediaQuery.of(context).size.width, //
// height: MediaQuery.of(context).size.height * 0.36,
// child: Image.asset(
// 'assets/user_guide/purpose.png',
// fit: BoxFit.contain,
// ), // ),
), Padding(
Padding(padding: const EdgeInsets.all(30.0), padding: const EdgeInsets.all(30.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -203,7 +200,9 @@ class _PurposeState extends ConsumerState<Purpose> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme
? Colors.white
: Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(width: 8), // Space between bullet and text
@ -215,8 +214,9 @@ class _PurposeState extends ConsumerState<Purpose> {
'توفير الإحصائيات الرسمية لدولة الإمارات بشكل سهل الوصول.', 'توفير الإحصائيات الرسمية لدولة الإمارات بشكل سهل الوصول.',
), ),
style: TextStyle( style: TextStyle(
color: color: isDarkTheme
isDarkTheme ? Colors.white : Color(0xFF898C81), ? Colors.white
: Color(0xFF898C81),
fontSize: 16, fontSize: 16,
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
@ -225,8 +225,8 @@ class _PurposeState extends ConsumerState<Purpose> {
), ),
children: <TextSpan>[ children: <TextSpan>[
TextSpan( TextSpan(
text: text: context.translate(
context.translate('official statistics ', ''), 'official statistics ', ''),
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: isDarkTheme color: isDarkTheme
@ -240,7 +240,8 @@ class _PurposeState extends ConsumerState<Purpose> {
), ),
TextSpan( TextSpan(
text: context.translate( text: context.translate(
'on the UAE in an accessible format.', ''), 'on the UAE in an accessible format.',
''),
style: TextStyle( style: TextStyle(
color: isDarkTheme color: isDarkTheme
? Colors.white ? Colors.white
@ -260,7 +261,9 @@ class _PurposeState extends ConsumerState<Purpose> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme
? Colors.white
: Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(width: 8), // Space between bullet and text
@ -273,8 +276,9 @@ class _PurposeState extends ConsumerState<Purpose> {
textAlign: TextAlign.justify, // Align the text textAlign: TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: color: isDarkTheme
isDarkTheme ? Colors.white : Color(0xFF898C81)), ? Colors.white
: Color(0xFF898C81)),
), ),
), ),
], ],
@ -287,7 +291,9 @@ class _PurposeState extends ConsumerState<Purpose> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme
? Colors.white
: Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(width: 8), // Space between bullet and text
@ -300,15 +306,16 @@ class _PurposeState extends ConsumerState<Purpose> {
textAlign: TextAlign.justify, // Align the text textAlign: TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: color: isDarkTheme
isDarkTheme ? Colors.white : Color(0xFF898C81)), ? Colors.white
: Color(0xFF898C81)),
), ),
), ),
], ],
), ),
], ],
),) ),
)
], ],
), ),
), ),

View File

@ -10,7 +10,8 @@ import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart'; import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; // import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// import 'package:uae_stat/l10n/app_localizations.dart';
class StayUpdate extends ConsumerStatefulWidget { class StayUpdate extends ConsumerStatefulWidget {
const StayUpdate({super.key}); const StayUpdate({super.key});
@ -179,15 +180,9 @@ class _StayUpdateState extends ConsumerState<StayUpdate> {
), ),
), ),
), ),
SizedBox( // SizedBox(
height: 10, // height: 10,
// width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.height * 0.36,
// child: Image.asset(
// 'assets/user_guide/stayUpdate.png',
// fit: BoxFit.contain,
// ), // ),
),
Padding( Padding(
padding: const EdgeInsets.all(30), padding: const EdgeInsets.all(30),
child: Row( child: Row(
@ -211,14 +206,14 @@ class _StayUpdateState extends ConsumerState<StayUpdate> {
textAlign: TextAlign.justify, // Align the text textAlign: TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: color: isDarkTheme
isDarkTheme ? Colors.white : Color(0xFF898C81)), ? Colors.white
: Color(0xFF898C81)),
), ),
), ),
], ],
), ),
), ),
], ],
), ),
), ),

View File

@ -10,7 +10,8 @@ import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart'; import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart';
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart'; import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; // import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// import 'package:uae_stat/l10n/app_localizations.dart';
class WhoUseTheApp extends ConsumerStatefulWidget { class WhoUseTheApp extends ConsumerStatefulWidget {
const WhoUseTheApp({super.key}); const WhoUseTheApp({super.key});
@ -181,7 +182,7 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
), ),
), ),
), ),
SizedBox(height: 10), // SizedBox(height: 10),
// SizedBox( // SizedBox(
// width: MediaQuery.of(context).size.width, // width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.height * 0.36, // height: MediaQuery.of(context).size.height * 0.36,
@ -217,7 +218,9 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme
? Colors.white
: Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(width: 8), // Space between bullet and text
@ -230,8 +233,9 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
textAlign: TextAlign.justify, // Align the text textAlign: TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: color: isDarkTheme
isDarkTheme ? Colors.white : Color(0xFF898C81)), ? Colors.white
: Color(0xFF898C81)),
), ),
), ),
], ],
@ -244,7 +248,9 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme
? Colors.white
: Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(width: 8), // Space between bullet and text
@ -257,8 +263,9 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
textAlign: TextAlign.justify, // Align the text textAlign: TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: color: isDarkTheme
isDarkTheme ? Colors.white : Color(0xFF898C81)), ? Colors.white
: Color(0xFF898C81)),
), ),
), ),
], ],
@ -271,7 +278,9 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
child: Icon( child: Icon(
Icons.brightness_1, Icons.brightness_1,
size: 5, size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme
? Colors.white
: Color(0xFF414042),
), ),
), // Bullet point ), // Bullet point
SizedBox(width: 8), // Space between bullet and text SizedBox(width: 8), // Space between bullet and text
@ -284,15 +293,16 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
textAlign: TextAlign.justify, // Align the text textAlign: TextAlign.justify, // Align the text
softWrap: true, softWrap: true,
style: TextStyle( style: TextStyle(
color: color: isDarkTheme
isDarkTheme ? Colors.white : Color(0xFF898C81)), ? Colors.white
: Color(0xFF898C81)),
), ),
), ),
], ],
), ),
], ],
),) ),
)
], ],
), ),
), ),

View File

@ -11,8 +11,8 @@ import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart'; import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart';
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart'; import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; // import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// import 'package:uae_stat/l10n/app_localizations.dart';
class aboutTheApp extends ConsumerStatefulWidget { class aboutTheApp extends ConsumerStatefulWidget {
const aboutTheApp({super.key}); const aboutTheApp({super.key});
@ -149,7 +149,7 @@ class _aboutTheAppState extends ConsumerState<aboutTheApp> {
decoration: BoxDecoration( decoration: BoxDecoration(
border: Border( border: Border(
bottom: BorderSide( bottom: BorderSide(
color: Colors.grey.shade300, color: isDarkTheme ? Color(0xFF898C81) : Color(0xFFDEDEDE),
width: 0.5, width: 0.5,
), // Grey bottom line ), // Grey bottom line
), ),
@ -173,7 +173,13 @@ class _aboutTheAppState extends ConsumerState<aboutTheApp> {
), ),
trailing: Icon( trailing: Icon(
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
),
shape: Border(
bottom: BorderSide(
color: Color(0xFFDEDEDE),
width: 1,
), // Grey bottom line
), ),
), ),
), ),
@ -181,7 +187,7 @@ class _aboutTheAppState extends ConsumerState<aboutTheApp> {
decoration: BoxDecoration( decoration: BoxDecoration(
border: Border( border: Border(
bottom: BorderSide( bottom: BorderSide(
color: Colors.grey.shade300, color: isDarkTheme ? Color(0xFF898C81) : Color(0xFFDEDEDE),
width: 0.5, width: 0.5,
), // Grey bottom line ), // Grey bottom line
), ),
@ -205,12 +211,12 @@ class _aboutTheAppState extends ConsumerState<aboutTheApp> {
), ),
trailing: Icon( trailing: Icon(
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
), ),
shape: Border( shape: Border(
bottom: BorderSide( bottom: BorderSide(
color: Colors.black, color: Color(0xFFDEDEDE),
width: 3, width: 1,
), // Grey bottom line ), // Grey bottom line
), ),
), ),

View File

@ -10,8 +10,8 @@ import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart'; import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart';
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart'; import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; // import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// import 'package:uae_stat/l10n/app_localizations.dart';
class FAQPage extends ConsumerStatefulWidget { class FAQPage extends ConsumerStatefulWidget {
const FAQPage({super.key}); const FAQPage({super.key});
@ -119,6 +119,7 @@ class _FAQPageState extends ConsumerState<FAQPage> {
return BaseScaffold( return BaseScaffold(
dividerColor: Colors.grey[300], dividerColor: Colors.grey[300],
showDivider: true,
showBackButton: true, showBackButton: true,
// appbarColor: Colors.white, // appbarColor: Colors.white,
backgroundColor: isDarkTheme ? Colors.black : Colors.white, backgroundColor: isDarkTheme ? Colors.black : Colors.white,
@ -935,7 +936,8 @@ class _QuestionAnswerCardState extends State<QuestionAnswerCard> {
trailing: Icon(isExpanded trailing: Icon(isExpanded
? Icons.keyboard_arrow_up ? Icons.keyboard_arrow_up
: Icons.keyboard_arrow_down), : Icons.keyboard_arrow_down),
iconColor: widget.isDarkTheme ? Colors.white : Color(0xFF898C81), iconColor:
widget.isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
onTap: () { onTap: () {
setState(() { setState(() {
isExpanded = !isExpanded; isExpanded = !isExpanded;

View File

@ -11,7 +11,8 @@ import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart'; import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart';
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart'; import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; // import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// import 'package:uae_stat/l10n/app_localizations.dart';
import 'package:uae_stat/infrastructure/services/img_asset_paths/banner_asset_path.dart'; import 'package:uae_stat/infrastructure/services/img_asset_paths/banner_asset_path.dart';
class UsingFeatures extends ConsumerStatefulWidget { class UsingFeatures extends ConsumerStatefulWidget {
@ -173,7 +174,13 @@ class _UsingFeaturesState extends ConsumerState<UsingFeatures> {
), ),
trailing: Icon( trailing: Icon(
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
),
shape: Border(
bottom: BorderSide(
color: Color(0xFFDEDEDE),
width: 1,
), // Grey bottom line
), ),
), ),
), ),
@ -205,11 +212,13 @@ class _UsingFeaturesState extends ConsumerState<UsingFeatures> {
), ),
trailing: Icon( trailing: Icon(
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
), ),
shape: Border( shape: Border(
bottom: BorderSide( bottom: BorderSide(
color: Colors.black, width: 3), // Grey bottom line color: Color(0xFFDEDEDE),
width: 1,
), // Grey bottom line
), ),
), ),
), ),
@ -240,11 +249,13 @@ class _UsingFeaturesState extends ConsumerState<UsingFeatures> {
), ),
trailing: Icon( trailing: Icon(
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
), ),
shape: Border( shape: Border(
bottom: BorderSide( bottom: BorderSide(
color: Colors.black, width: 3), // Grey bottom line color: Color(0xFFDEDEDE),
width: 1,
), // Grey bottom line
), ),
), ),
), ),
@ -276,11 +287,13 @@ class _UsingFeaturesState extends ConsumerState<UsingFeatures> {
), ),
trailing: Icon( trailing: Icon(
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
), ),
shape: Border( shape: Border(
bottom: BorderSide( bottom: BorderSide(
color: Colors.black, width: 3), // Grey bottom line color: Color(0xFFDEDEDE),
width: 1,
), // Grey bottom line
), ),
), ),
), ),
@ -311,11 +324,13 @@ class _UsingFeaturesState extends ConsumerState<UsingFeatures> {
), ),
trailing: Icon( trailing: Icon(
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
), ),
shape: Border( shape: Border(
bottom: BorderSide( bottom: BorderSide(
color: Colors.black, width: 3), // Grey bottom line color: Color(0xFFDEDEDE),
width: 1,
), // Grey bottom line
), ),
), ),
), ),
@ -347,11 +362,13 @@ class _UsingFeaturesState extends ConsumerState<UsingFeatures> {
), ),
trailing: Icon( trailing: Icon(
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
), ),
shape: Border( shape: Border(
bottom: BorderSide( bottom: BorderSide(
color: Colors.black, width: 3), // Grey bottom line color: Color(0xFFDEDEDE),
width: 1,
), // Grey bottom line
), ),
), ),
), ),
@ -383,11 +400,13 @@ class _UsingFeaturesState extends ConsumerState<UsingFeatures> {
), ),
trailing: Icon( trailing: Icon(
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042), color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
), ),
shape: Border( shape: Border(
bottom: BorderSide( bottom: BorderSide(
color: Colors.black, width: 3), // Grey bottom line color: Color(0xFFDEDEDE),
width: 1,
), // Grey bottom line
), ),
), ),
), ),

View File

@ -4,12 +4,13 @@ import 'package:go_router/go_router.dart';
import 'package:uae_stat/config/theme/theme_provider.dart'; import 'package:uae_stat/config/theme/theme_provider.dart';
import 'package:uae_stat/config/toggle_lang_service.dart'; import 'package:uae_stat/config/toggle_lang_service.dart';
import 'package:uae_stat/domain/use_cases/language.dart'; import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; // import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// import 'package:uae_stat/l10n/app_localizations.dart';
import 'package:uae_stat/presentation/components/indicators/locale_provider.dart'; import 'package:uae_stat/presentation/components/indicators/locale_provider.dart';
// import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart'; // import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
import 'package:iconify_design/iconify_design.dart'; import 'package:iconify_design/iconify_design.dart';
// import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// import 'package:uae_stat/l10n/app_localizations.dart'; // import 'package:uae_stat/l10n/app_localizations.dart';
class Userguide extends ConsumerStatefulWidget { class Userguide extends ConsumerStatefulWidget {
@ -34,9 +35,9 @@ class _UserguideState extends ConsumerState<Userguide> {
{ {
'routePath': 'features', 'routePath': 'features',
'color': Color(0xFFAA8E83), 'color': Color(0xFFAA8E83),
'text': 'Features', 'text': 'Key Features',
'icon': 'pajamas:issue-type-feature', 'icon': 'pajamas:issue-type-feature',
'text-ar': 'الميزات' 'text-ar': 'الميزات الرئيسية'
}, },
{ {
'routePath': 'faq', 'routePath': 'faq',
@ -52,7 +53,6 @@ class _UserguideState extends ConsumerState<Userguide> {
initState() { initState() {
super.initState(); super.initState();
print('123456789'); print('123456789');
} }
@override @override
@ -107,14 +107,12 @@ class _UserguideState extends ConsumerState<Userguide> {
child: BaseScaffold( child: BaseScaffold(
showDivider: true, showDivider: true,
bottomColor: isDarkTheme ? Color(0xFF111111) : Colors.white, bottomColor: isDarkTheme ? Color(0xFF111111) : Colors.white,
dividerColor: isDarkTheme ? Color(0xFF111111) : Colors.grey[300], // dividerColor: isDarkTheme ? Color(0xFF111111) : Colors.grey[300],
dividerColor: isDarkTheme ? Colors.grey : Colors.grey[300],
appbarColor: isDarkTheme ? Color(0xFF111111) : Colors.white, appbarColor: isDarkTheme ? Color(0xFF111111) : Colors.white,
title: Text( title: Text(AppLocalizations.of(context)!.guide_title,
AppLocalizations.of(context)!.guide_title,
style: TextStyle( style: TextStyle(
color: isDarkTheme ? Colors.white : Color(0xFF414042) color: isDarkTheme ? Colors.white : Color(0xFF414042))),
)
),
body: Container( body: Container(
color: isDarkTheme ? Color(0xFF111111) : Colors.white, color: isDarkTheme ? Color(0xFF111111) : Colors.white,
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20), padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20),

View File

@ -713,7 +713,7 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
print('NAVuserDetails: $userDetailsResponse'); print('NAVuserDetails: $userDetailsResponse');
setState(() { setState(() {
userName = userDetailsResponse.data['uname'] ?? ''; userName = userDetailsResponse.data['full_name'] ?? '';
userEmail = userDetailsResponse.data['email'] ?? ''; userEmail = userDetailsResponse.data['email'] ?? '';
userAvatar = userDetailsResponse.data['avatar'] ?? ''; userAvatar = userDetailsResponse.data['avatar'] ?? '';
role = userDetailsResponse.data['role'] ?? ''; role = userDetailsResponse.data['role'] ?? '';
@ -973,7 +973,8 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
: Alignment.centerLeft, : Alignment.centerLeft,
child: DefaultTextStyle( child: DefaultTextStyle(
style: TextStyle( style: TextStyle(
color: widget.colorChange ? Colors.white : Color(0xFFFFFFFF), color: isDarkTheme ? Colors.white : Colors.black,
// color: widget.colorChange ? Colors.white : Color(0xFFFFFFFF),
fontSize: 22, fontSize: 22,
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
@ -1041,8 +1042,16 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
isOn: locale?.languageCode == 'en', isOn: locale?.languageCode == 'en',
knobTextWhenOn: 'ع', knobTextWhenOn: 'ع',
knobTextWhenOff: 'EN', knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300, pathColorWhenOn: Color(0xFFD9D9D9),
pathColorWhenOff: Colors.grey.shade300, pathColorWhenOff: Color(0xFFD9D9D9),
knobTextStyleWhenOn: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
knobTextStyleWhenOff: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
onTap: () { onTap: () {
ref.read(localeProvider.notifier).toggleLocale(); ref.read(localeProvider.notifier).toggleLocale();
}, },
@ -1068,7 +1077,7 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
// : widget.colorChange // : widget.colorChange
// ? Colors.white // ? Colors.white
// : Colors.black, // : Colors.black,
color: Colors.grey, color: isDarkTheme ? Colors.white : Colors.black,
icon: const Icon(Icons.arrow_back_ios_new, size: 24), icon: const Icon(Icons.arrow_back_ios_new, size: 24),
onPressed: () { onPressed: () {
if (widget.navBackArrow is Text && if (widget.navBackArrow is Text &&
@ -1093,7 +1102,7 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
constraints: BoxConstraints(), constraints: BoxConstraints(),
key: drawerKey, key: drawerKey,
color: isDarkTheme ? Colors.white : Colors.black, color: isDarkTheme ? Colors.white : Color(0xFF000000),
icon: const Icon(Icons.menu, size: 30), icon: const Icon(Icons.menu, size: 30),
onPressed: () { onPressed: () {
Scaffold.of(context).openDrawer(); Scaffold.of(context).openDrawer();
@ -1387,7 +1396,7 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
), ),
), ),
), ),
onTap: () => _showLogoutConfirmationDialog(context), onTap: () => _showLogoutConfirmationDialog(context,isDarkTheme),
), ),
if (userId == 'guest') if (userId == 'guest')
ListTile( ListTile(
@ -1477,22 +1486,22 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
])), ])),
bottomNavigationBar: Stack( bottomNavigationBar: Stack(
children: [ children: [
if (isDarkTheme) // if (isDarkTheme)
Positioned( // Positioned(
bottom: 0, // bottom: 0,
left: 0, // left: 0,
right: 0, // right: 0,
child: Container( // child: Container(
height: kBottomNavigationBarHeight + 0, // Adjust as needed // height: kBottomNavigationBarHeight + 0, // Adjust as needed
decoration: BoxDecoration( // decoration: BoxDecoration(
image: DecorationImage( // image: DecorationImage(
image: AssetImage( // image: AssetImage(
'assets/dark_bg.png'), // your dark mode image // 'assets/dark_bg.png'), // your dark mode image
fit: BoxFit.cover, // fit: BoxFit.cover,
), // ),
), // ),
), // ),
), // ),
BottomNavigationBar( BottomNavigationBar(
backgroundColor: isDarkTheme ? Color(0xFF000000) : Colors.white, backgroundColor: isDarkTheme ? Color(0xFF000000) : Colors.white,
currentIndex: _getSelectedIndex(currentRoute), currentIndex: _getSelectedIndex(currentRoute),
@ -1506,7 +1515,7 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
child: Image.asset( child: Image.asset(
BottomBarAssetIconPath.home, BottomBarAssetIconPath.home,
color: _getSelectedIndex(currentRoute) == 0 color: _getSelectedIndex(currentRoute) == 0
? (isDarkTheme ? Color(0xFF24B4FB) : Colors.black) ? (isDarkTheme ? Color(0xFFFFFFFF) : Colors.black)
: Color(0xFF989898), : Color(0xFF989898),
width: 23.98, width: 23.98,
height: 25, height: 25,
@ -1523,7 +1532,7 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
child: Image.asset( child: Image.asset(
BottomBarAssetIconPath.uaeMap, BottomBarAssetIconPath.uaeMap,
color: _getSelectedIndex(currentRoute) == 1 color: _getSelectedIndex(currentRoute) == 1
? (isDarkTheme ? Color(0xFF24B4FB) : Colors.black) ? (isDarkTheme ? Color(0xFFFFFFFF) : Colors.black)
: Color(0xFF989898), : Color(0xFF989898),
width: 23.98, width: 23.98,
height: 25, height: 25,
@ -1539,7 +1548,7 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
child: Image.asset( child: Image.asset(
BottomBarAssetIconPath.ranking, BottomBarAssetIconPath.ranking,
color: _getSelectedIndex(currentRoute) == 2 color: _getSelectedIndex(currentRoute) == 2
? (isDarkTheme ? Color(0xFF24B4FB) : Colors.black) ? (isDarkTheme ? Color(0xFFFFFFFF) : Colors.black)
: Color(0xFF989898), : Color(0xFF989898),
width: 23.98, width: 23.98,
height: 25, height: 25,
@ -1555,7 +1564,7 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
child: Image.asset( child: Image.asset(
BottomBarAssetIconPath.globe, BottomBarAssetIconPath.globe,
color: _getSelectedIndex(currentRoute) == 3 color: _getSelectedIndex(currentRoute) == 3
? (isDarkTheme ? Color(0xFF24B4FB) : Colors.black) ? (isDarkTheme ? Color(0xFFFFFFFF) : Colors.black)
: Color(0xFF989898), : Color(0xFF989898),
width: 23.98, width: 23.98,
height: 25, height: 25,
@ -1566,8 +1575,8 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
), ),
], ],
key: bottomNavKey, key: bottomNavKey,
selectedItemColor: isDarkTheme ? Color(0xFF24B4FB) : Colors.black, selectedItemColor: isDarkTheme ? Color(0xFFFFFFFF) : Colors.black,
unselectedItemColor: Colors.grey, unselectedItemColor: Color(0xFF989898),
selectedLabelStyle: TextStyle( selectedLabelStyle: TextStyle(
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
@ -1732,7 +1741,7 @@ Future<void> logout(BuildContext context) async {
context.go('/login'); // Redirect to login after logout context.go('/login'); // Redirect to login after logout
} }
void _showLogoutConfirmationDialog(BuildContext context) { void _showLogoutConfirmationDialog(BuildContext context,isDarkTheme) {
double myheight = MediaQuery.of(context).size.height; double myheight = MediaQuery.of(context).size.height;
showDialog( showDialog(
context: context, context: context,
@ -1741,6 +1750,7 @@ void _showLogoutConfirmationDialog(BuildContext context) {
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5.0), // Rounded corners borderRadius: BorderRadius.circular(5.0), // Rounded corners
), ),
backgroundColor: isDarkTheme ? Colors.black : Colors.white,
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,
title: Text( title: Text(
context.translate('Log Out Confirmation', 'تأكيد تسجيل الخروج'), context.translate('Log Out Confirmation', 'تأكيد تسجيل الخروج'),
@ -1752,6 +1762,7 @@ void _showLogoutConfirmationDialog(BuildContext context) {
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
), ),
color: isDarkTheme ? Colors.white : Colors.black,
), ),
), ),
content: Padding( content: Padding(
@ -1785,7 +1796,7 @@ void _showLogoutConfirmationDialog(BuildContext context) {
borderRadius: BorderRadius.circular(10.0), borderRadius: BorderRadius.circular(10.0),
), ),
side: BorderSide( side: BorderSide(
color: Color(0xFFAA8E83), // Border color color: Color(0xFFB68A34), // Border color
width: 1, width: 1,
), ),
), ),
@ -1796,7 +1807,7 @@ void _showLogoutConfirmationDialog(BuildContext context) {
'Roboto', 'Roboto',
'NotoKufi', 'NotoKufi',
), ),
color: Color(0xFFAA8E83), color: Color(0xFFB68A34),
fontSize: 16, fontSize: 16,
), ),
), ),
@ -1809,7 +1820,7 @@ void _showLogoutConfirmationDialog(BuildContext context) {
child: TextButton( child: TextButton(
onPressed: () => logout(context), onPressed: () => logout(context),
style: TextButton.styleFrom( style: TextButton.styleFrom(
backgroundColor: Color(0xFFAA8E83), // Background color backgroundColor: Color(0xFFB68A34), // Background color
foregroundColor: Colors.white, foregroundColor: Colors.white,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0), borderRadius: BorderRadius.circular(10.0),

View File

@ -770,8 +770,16 @@ class LangToggle extends ConsumerWidget {
}, },
knobTextWhenOn: 'ع', knobTextWhenOn: 'ع',
knobTextWhenOff: 'EN', knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300, pathColorWhenOn: Color(0xFFD9D9D9),
pathColorWhenOff: Colors.grey.shade300, pathColorWhenOff: Color(0xFFD9D9D9),
knobTextStyleWhenOn: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
knobTextStyleWhenOff: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
); );
} }
} }

View File

@ -106,7 +106,6 @@ flutter:
generate: true generate: true
uses-material-design: true uses-material-design: true
assets: assets:
- assets/dark_bg.png
- assets/user_guide_videos/ - assets/user_guide_videos/
- assets/logos/ - assets/logos/
- assets/logos/from_alsaray/ - assets/logos/from_alsaray/
@ -166,6 +165,7 @@ flutter:
- assets/competitiveness/ - assets/competitiveness/
- assets/icons/uae_numbers/ShareDark.png - assets/icons/uae_numbers/ShareDark.png
- assets/icons/uae_numbers/ShareLight.png - assets/icons/uae_numbers/ShareLight.png
- assets/icons/misc/successMsg.png
fonts: fonts:
- family: Segoe - family: Segoe