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
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  <EFBFBD>àÕ€„3  ¡¹ñÀ÷2z
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ¿ŒÍLJ3  ¡¹ñÀ÷2z
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
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
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
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
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
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
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
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
_/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
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ±àÕ€„3  ¸ïòÀ÷2|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÆŒÍLJ3  ¸ïòÀ÷2|
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
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
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
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
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
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
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
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
_/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
s/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86/additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ¿àÕ€„3  „òòÀ÷2t
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÉŒÍLJ3  „òòÀ÷2t
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
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
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
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
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
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
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
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
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
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
_/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
v/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÊàÕ€„3  •ôòÀ÷2w
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÌŒÍLJ3  •ôòÀ÷2w
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
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
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
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
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
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
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
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
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
_/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
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/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
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
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>
/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|
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
_/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
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
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
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~
|
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>
/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
_/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
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
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
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
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
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>
/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
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
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
_/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>
/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/additional_project_files.txtC
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
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
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
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
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
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
_/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 {
@override
Widget build(BuildContext context) {
final isDark = Theme.of(context).brightness == Brightness.dark;
return Scaffold(
backgroundColor: Colors.white,
body: Center(
backgroundColor: isDark ? null : Colors.white,
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(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset('assets/images/logo.png', width: 150), // App Logo
// SizedBox(height: 20),
// CircularProgressIndicator(), // Loading indicator
// 🔄 White or normal logo depending on theme
Spacer(),
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 'package:flutter/material.dart';

View File

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

View File

@ -1,5 +1,6 @@
abstract class LogoAssetPath {
static const _basePath = 'assets/logos';
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',
'NotoKufi',
),
color: isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFF414042),
color: isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFF000000),
),
),
body: uaenumberWidget(),
@ -320,7 +320,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
},
)
: null,
contentPadding: EdgeInsets.symmetric(vertical: 12, horizontal: 18.0),
// contentPadding: EdgeInsets.symmetric(vertical: 12, horizontal: 18.0),
border: InputBorder.none,
// contentPadding:
// EdgeInsets.symmetric(vertical: 9, horizontal: 18.0),
@ -358,7 +358,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
myheight,
borderColor,
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,
Color borderColor, String colorPattern, mainTopic) {
Color borderColor, String colorPattern, mainTopic,isDarkTheme) {
subTopics.sort((a, b) =>
(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(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
buildCategoryTitle(subTopic['sub_topic'], borderColor),
buildCategoryTitle(subTopic['sub_topic'], isDarkTheme),
..._buildDataSetCards(subTopic['tile_data'] ?? [], myWidth,
borderColor, colorPattern, mainTopic),
],
@ -430,7 +430,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
return rows;
}
Widget buildCategoryTitle(String title, Color color) {
Widget buildCategoryTitle(String title, isDarkTheme) {
return Padding(
padding: const EdgeInsets.only(top: 1.2, bottom: 1.2),
child: Center(
@ -443,7 +443,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
),
fontSize: 16,
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) {
double myheight = MediaQuery.of(context).size.height;
double mywidth = MediaQuery.of(context).size.width;
final fcscBanner = Image.asset(
BannerAssetPath.fcscLogoLight,
height: 40,
);
final uaestat = Image.asset(
LogoAssetPath.uaeStat,
LogoAssetPath.uaeStatLight,
height: 50,
);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -205,19 +205,20 @@ class LoginRoute extends HookConsumerWidget {
}
// Function to send the reset password request
Future<void> forgotPasswordMail(String email) async {
Future<String> forgotPasswordMail(String email) async {
final url =
Uri.parse("${pb.baseUrl}api/auth/request-password-reset?email=$email");
try {
final response = await http.get(url);
final body = json.decode(response.body);
if (response.statusCode == 200) {
return; // Success, no action needed here
return body['status'] ?? 'Reset link sent successfully.';
} else {
final errorResponse = json.decode(response.body);
throw Exception(
errorResponse['message'] ?? "Failed to send reset email.");
errorResponse['status'] ?? "Failed to send reset email.");
}
} catch (error) {
throw Exception("Something went wrong. Please try again.");
@ -329,7 +330,7 @@ class LoginRoute extends HookConsumerWidget {
print('themeMode $themeMode');
}
Future<void> googleLogin(BuildContext context, WidgetRef ref,platform) async {
Future<void> oAuthGoogleAndAppleLogin(BuildContext context, WidgetRef ref,platform) async {
print(platform);
try {
final authData =
@ -342,6 +343,7 @@ class LoginRoute extends HookConsumerWidget {
print("✅ Login Successful");
print(authData.record);
final metaDetails = authData.meta;
final userDetails = authData.record;
final userId = userDetails?.id;
final email = userDetails?.data['email'] ?? '';
@ -354,8 +356,10 @@ class LoginRoute extends HookConsumerWidget {
print("Email: ${isProfileComplete}");
print("Email: ${loginCount}");
await saveUserId(userId!, loginCount);
// await getDeviceToken(context, id);
await loginCountApi(userId!);
await updateOAuthUserDetails(userId!, metaDetails);
// await saveUserId(userId!, loginCount);
// await getDeviceToken(context, userId);
await initializeTheme(context, ref, userId);
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) {
// final decodedToken = JwtDecoder.decode(ra.token);
// final expInSeconds = decodedToken['exp'];
@ -575,7 +644,7 @@ class LoginRoute extends HookConsumerWidget {
'Roboto',
'NotoKufi',
),
color: isDarkTheme ? Color(0xFFFFA100) : Colors.red,
color: Color(0xFFD83731),
),
labelText: context.translate(
'Email address',
@ -587,42 +656,40 @@ class LoginRoute extends HookConsumerWidget {
'NotoKufi',
),
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,
),
// Default Border
// Bottom border (no outline)
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: isDarkTheme ? Colors.white : const Color(0xFF898C81),
color: isDarkTheme
? Colors.white
: const Color(0xFF898C81),
width: 1,
),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: isDarkTheme ? const Color(0xFF24B4FB) : Colors.deepPurple,
color: Color(0xFFB68A34),
width: 2,
),
),
errorBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: isDarkTheme ? const Color(0xFFFFA100) : Colors.red,
color: Color(0xFFD83731),
width: 1,
),
),
focusedErrorBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: isDarkTheme ? const Color(0xFFFFA100) : Colors.red,
color: Color(0xFFD83731),
width: 2,
),
),
),
),
),
@ -631,10 +698,9 @@ class LoginRoute extends HookConsumerWidget {
onPressed: Navigator.of(dialogCtx, rootNavigator: true).pop,
style: TextButton.styleFrom(
// backgroundColor: Colors.white, // Background color
foregroundColor: isDarkTheme ? Color(0xFF24B4FB) : Color(0xFF92722A), // Font (text) color
foregroundColor: Color(0xFF92722A), // Font (text) color
side: BorderSide(
color: isDarkTheme ? Color(0xFF24B4FB) : Color(0xFF92722A)
), // Border outline color
color: Color(0xFF92722A)), // Border outline color
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(8), // Optional: Rounded corners
@ -647,10 +713,13 @@ class LoginRoute extends HookConsumerWidget {
'Return',
'يعود',
),
style: TextStyle( fontSize: context.translate(12, 10), fontFamily: context.translate(
style: TextStyle(
fontSize: context.translate(12, 10),
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
),
),
),
),
ElevatedButton(
@ -662,10 +731,10 @@ class LoginRoute extends HookConsumerWidget {
);
},
style: ElevatedButton.styleFrom(
backgroundColor: isDarkTheme ? Color(0xFF24B4FB) : Color(0xFF92722A),
backgroundColor: Color(0xFFB68A34),
foregroundColor: Colors.white,
padding: EdgeInsets.symmetric(
horizontal: 10 , vertical: 10), // Optional: Adjusts size
horizontal: 10, vertical: 10), // Optional: Adjusts size
shape: RoundedRectangleBorder(
// Optional: Adds rounded corners
borderRadius: BorderRadius.circular(12),
@ -676,10 +745,13 @@ class LoginRoute extends HookConsumerWidget {
'Send Email',
'إرسال بريد إلكتروني',
),
style: TextStyle( fontSize: context.translate(12, 10), fontFamily: context.translate(
style: TextStyle(
fontSize: context.translate(12, 10),
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
),
),
),
),
],
@ -689,11 +761,15 @@ class LoginRoute extends HookConsumerWidget {
if (email == null) return;
if (!context.mounted) return;
// await context.loaderWithErrorDialog(() async {
// await forgotPasswordMail(email);
// });
String status = '';
await context.loaderWithErrorDialog(() async {
await forgotPasswordMail(email);
status = await forgotPasswordMail(email);
});
if (!context.mounted) return;
if (status == 'success') {
context.simpleDialog(
title: context.translate(
'Success!',
@ -704,6 +780,19 @@ class LoginRoute extends HookConsumerWidget {
'تم إرسال بريد إلكتروني إلى $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(
padding: EdgeInsets.zero,
@ -892,7 +981,7 @@ class LoginRoute extends HookConsumerWidget {
),
),
padding: const WidgetStatePropertyAll(
EdgeInsets.symmetric(vertical: 10.5),
EdgeInsets.symmetric(vertical: 16.5),
),
textStyle: WidgetStatePropertyAll(
TextStyle(
@ -901,7 +990,7 @@ class LoginRoute extends HookConsumerWidget {
'NotoKufi',
),
fontSize: locale?.languageCode == 'ar' ? 14 : 16,
fontWeight: FontWeight.w600,
fontWeight: FontWeight.w500,
),
),
backgroundColor: WidgetStatePropertyAll(
@ -929,15 +1018,15 @@ class LoginRoute extends HookConsumerWidget {
'Roboto',
'NotoKufi',
),
fontSize: locale?.languageCode == 'ar' ? 12 : 18,
fontSize: locale?.languageCode == 'ar' ? 12 : 16,
fontWeight: FontWeight.w500,
color: isDarkTheme ? Color(0xFF000000) : null,
color: isDarkTheme ? Colors.white : Colors.white,
),
),
6.horizontalSpace,
Icon(
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,
isObscurable: true,
),
// 6.verticalSpace,
6.verticalSpace,
Padding(
padding: EdgeInsets.zero,
child: Align(
@ -1003,7 +1092,7 @@ class LoginRoute extends HookConsumerWidget {
child: forgotPwBtn,
),
),
10.verticalSpace,
11.verticalSpace,
loginBtn,
],
),
@ -1146,14 +1235,14 @@ class LoginRoute extends HookConsumerWidget {
width: double.infinity,
child: OutlinedButton(
onPressed: () async {
googleLogin(context,ref,'google');
oAuthGoogleAndAppleLogin(context,ref,'google');
},
style: OutlinedButton.styleFrom(
side: const BorderSide(color: Color(0xFF000000)),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
padding: const EdgeInsets.symmetric(vertical: 12),
padding: const EdgeInsets.symmetric(vertical: 16.5),
backgroundColor: Colors.white,
foregroundColor: Colors.black,
textStyle: TextStyle(
@ -1186,14 +1275,14 @@ class LoginRoute extends HookConsumerWidget {
width: double.infinity,
child: OutlinedButton(
onPressed: () async {
googleLogin(context,ref,'apple');
oAuthGoogleAndAppleLogin(context,ref,'apple');
},
style: OutlinedButton.styleFrom(
side: const BorderSide(color: Color(0xFF000000)),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
padding: const EdgeInsets.symmetric(vertical: 12),
padding: const EdgeInsets.symmetric(vertical: 16.5),
backgroundColor: Colors.white,
foregroundColor: Colors.black,
textStyle: TextStyle(
@ -1231,7 +1320,7 @@ class LoginRoute extends HookConsumerWidget {
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
padding: const EdgeInsets.symmetric(vertical: 12),
padding: const EdgeInsets.symmetric(vertical: 16.5),
backgroundColor: Colors.white,
foregroundColor: Colors.black,
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
? BannerAssetPath.fcscLogoDark
: BannerAssetPath.fcscLogoLight,
height: 40,
height: 30,
),
);
final screenWidth = MediaQuery.of(context).size.width;
final listViewHorizontalPadding =
@ -1283,8 +1375,16 @@ class LoginRoute extends HookConsumerWidget {
isOn: locale?.languageCode == 'en',
knobTextWhenOn: 'ع',
knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300,
pathColorWhenOff: Colors.grey.shade300,
pathColorWhenOn: Color(0xFFD9D9D9),
pathColorWhenOff: Color(0xFFD9D9D9),
knobTextStyleWhenOn: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
knobTextStyleWhenOff: TextStyle(
color: Color(0xFF010101),
fontWeight: FontWeight.bold,
),
onTap: () {
final formState = formKey.currentState;
ref.read(localeProvider.notifier).toggleLocale();
@ -1297,7 +1397,7 @@ class LoginRoute extends HookConsumerWidget {
},
),
),
34.verticalSpace,
20.verticalSpace,
helloAndPleaseLoginTexts,
40.verticalSpace,
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/domain/use_cases/language.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:tutorial_coach_mark/tutorial_coach_mark.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
}
void _showExitConfirmation(BuildContext context) {
void _showExitConfirmation(BuildContext context,isDarkTheme) {
double myheight = MediaQuery.of(context).size.height;
showDialog(
context: context,
@ -209,11 +210,12 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5.0), // Rounded corners
),
backgroundColor: isDarkTheme ? Colors.black : Colors.white,
contentPadding: EdgeInsets.zero,
title: Text(
context.translate('Log Out Confirmation', 'تأكيد تسجيل الخروج'),
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',
'NotoKufi',
),),
@ -249,7 +251,7 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
borderRadius: BorderRadius.circular(10.0),
),
side: BorderSide(
color: Color(0xFFAA8E83), // Border color
color: Color(0xFFB68A34), // Border color
width: 1,
),
),
@ -260,7 +262,7 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
'Roboto',
'NotoKufi',
),
color: Color(0xFFAA8E83),
color: Color(0xFFB68A34),
fontSize: 16,
),
),
@ -272,7 +274,7 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
child: TextButton(
onPressed: () => logout(context),
style: TextButton.styleFrom(
backgroundColor: Color(0xFFAA8E83), // Background color
backgroundColor: Color(0xFFB68A34), // Background color
foregroundColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
@ -344,18 +346,23 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
Widget build(BuildContext context) {
double myheight = MediaQuery.of(context).size.height;
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(
canPop: false, // Allow back navigation only if not login screen
onPopInvokedWithResult: (didPop, result) {
if (didPop) return;
_showExitConfirmation(context); // Show exit confirmation dialog
_showExitConfirmation(context,isDarkTheme); // Show exit confirmation dialog
},
child: BaseScaffold(
title: Center(
child: SizedBox(
height: myheight / 5,
width: mywidth / 3,
child: Image(image: AssetImage('assets/logos/uae_stat.png')))),
child: Image(image: AssetImage(isDarkTheme ? LogoAssetPath.uaeStatDark : LogoAssetPath.uaeStatLight)))),
body: EconomyStatsWidget(),
),
);
@ -1335,6 +1342,7 @@ class EconomyStatsState extends ConsumerState<EconomyStatsWidget> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(height: 10),
RoundedCornerContainer(
key: mainTopic['main_topic'] == firstMainTopic
? cardTopicKey
@ -1596,7 +1604,7 @@ class InfoCard extends StatelessWidget {
child: Container(
height: myheight / 10.9,
width: mywidth / 4,
width: mywidth / 5,
margin: const EdgeInsets.symmetric(horizontal: 8),
// padding: const EdgeInsets.all(10),

View File

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

View File

@ -551,19 +551,21 @@ class _BookMarkState extends ConsumerState<BookMark> {
child: selectedTabIndex == 0
? (bookmarks.isNotEmpty
? SingleChildScrollView(
child: Container(
padding: const EdgeInsets.all(13.0),
child: Column(
children: List.generate(
transformedList.length, (i) {
final mainTopic = transformedList[i];
print('oustside1 $mainTopic');
final list =
List.from(mainTopic['SubTopic'] ?? []);
final list = List.from(
mainTopic['SubTopic'] ?? []);
print('oustside2 $list');
return CustomExpandableTile(
index: i,
isExpanded: expandedIndex == i,
onTap: (int index) {
// 🔹 Expecting an index
// 🔹 Expecting an index
setState(() {
expandedIndex =
(expandedIndex == index)
@ -571,14 +573,14 @@ class _BookMarkState extends ConsumerState<BookMark> {
: index;
});
},
title:
mainTopic['main_topic'] ?? 'No Topic',
title: mainTopic['main_topic'] ??
'No Topic',
childWidget: Container(
decoration: BoxDecoration(
color: isDarkTheme
? Color(0xFF111111)
: Colors.white,
// borderRadius: BorderRadius.all(Radius.circular(20))
// borderRadius: BorderRadius.all(Radius.circular(20))
),
padding: const EdgeInsets.all(16),
child: GridView.builder(
@ -606,11 +608,12 @@ class _BookMarkState extends ConsumerState<BookMark> {
mainTopic['SubTopic'] ?? []),
titleBackgroundColor:
mainTopic['valueColor'],
// Ensure it's a new list
// Ensure it's a new list
isDarkTheme: isDarkTheme,
);
}),
),
),
)
: Center(
child: Column(
@ -658,6 +661,8 @@ class _BookMarkState extends ConsumerState<BookMark> {
)
: Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
margin: const EdgeInsets.all(13.0),
child: Column(
children: [
Container(
@ -721,6 +726,7 @@ class _BookMarkState extends ConsumerState<BookMark> {
),
),
),
),
],
),
),

View File

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

View File

@ -666,14 +666,14 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
'Roboto',
'NotoKufi',
),
color: isDarkTheme ? Colors.black : Colors.white,
color: Colors.white,
),
),
6.horizontalSpace,
Icon(
Icons.chevron_right_outlined,
// color: Colors.white,
color: isDarkTheme ? Colors.black : Colors.white,
color: Colors.white,
),
],
),
@ -1231,8 +1231,16 @@ class LangToggle extends ConsumerWidget {
},
knobTextWhenOn: 'ع',
knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300,
pathColorWhenOff: Colors.grey.shade300,
pathColorWhenOn: Color(0xFFD9D9D9),
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:uae_stat/config/api_config.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/domain/use_cases/language.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/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 ManageUserRouter extends ConsumerStatefulWidget {
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 {
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 = {
'Approved': AppLocalizations.of(context)!.approved,
@ -356,6 +400,8 @@ class _ManageUserRouterState extends ConsumerState<ManageUserRouter> {
context.go('/myhomepage'); // Show exit confirmation dialog
},
child: BaseScaffold(
backgroundColor: isDarkTheme ? Colors.black : Colors.white,
appbarColor: isDarkTheme ? Color(0xFF111111) : Colors.white,
// title: Text("Manage User"),
title: Text(
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),
child: Column(
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(
height: 40,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(30.0),
border:
Border.all(width: 1, color: Color(0xFFAA8E83)),
color: isDarkTheme ? Color(0xFF000000) : Colors.white,
borderRadius: BorderRadius.circular(5.0),
border: Border.all(width: 2, color: Color(0xFFA0A0A0)),
),
child: Padding(
padding: EdgeInsets.only(left: 12.0),
padding: EdgeInsets.only(left: 5.0),
child: TextField(
decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.search,
hintStyle: TextStyle(
color: Color(0xFFAA8E83),
fontFamily:
context.translate('Roboto', 'NotoKufi'),
fontSize: 14,
height: 2.5, // Helps with vertical alignment
color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
fontFamily: context.translate('Roboto', 'NotoKufi'),
fontSize: 18,
// height: 1.8,
),
prefixIconConstraints: BoxConstraints(
maxWidth: 42,
maxHeight: 42,
),
prefixIcon: Container(
padding: EdgeInsets.only(right: 5, left: 5),
alignment: Alignment.center,
padding: EdgeInsets.only(left: 10, right: 5),
child: SvgPicture.asset(
MiscIconAssetPath.Search,
semanticsLabel: 'Search',
colorFilter: ColorFilter.mode(Color(0xFFAA8E83), BlendMode.srcIn),
height: 18,
width: 18,
colorFilter: ColorFilter.mode(
Color(0xFFAA8E83), BlendMode.srcIn),
),
),
contentPadding: EdgeInsets.only(
top: 14), // Aligns hint text with icon
// contentPadding: EdgeInsets.symmetric(vertical: 12, horizontal: 18.0),
border: InputBorder.none,
),
onChanged: filterUsers,

View File

@ -286,6 +286,34 @@ class _NotificationPageState extends ConsumerState<NotificationPage> {
{'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
List<Map<String, dynamic>> filteredNotifications = selectedTabIndex == 0
? notifications
@ -423,7 +451,7 @@ class TabBarHeader extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: isDarkTheme ? Color(0xFF111111) : Colors.grey[200],
color: isDarkTheme ? Color(0xFF111111) : Colors.white,
padding: const EdgeInsets.symmetric(vertical: 8),
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
@ -440,8 +468,8 @@ class TabBarHeader extends StatelessWidget {
foregroundColor:
MaterialStateProperty.resolveWith((states) {
return selectedIndex == index
? Color(0xFF985400)
: Colors.grey[700];
? isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFFB68A34)
: isDarkTheme ? Color(0xFFBBBBBB) : Color(0xFF898C81);
}),
),
child: Text(

View File

@ -179,7 +179,7 @@ class _GetStartedState extends ConsumerState<GetStarted> {
),
),
),
SizedBox(height: 10),
// SizedBox(height: 10),
// SizedBox(
// width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.height * 0.36,
@ -188,7 +188,8 @@ class _GetStartedState extends ConsumerState<GetStarted> {
// fit: BoxFit.contain,
// ),
// ),
Padding(padding: const EdgeInsets.all(30.0),
Padding(
padding: const EdgeInsets.all(30.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -232,7 +233,8 @@ class _GetStartedState extends ConsumerState<GetStarted> {
),
),
],
),)
),
)
// SizedBox(
// 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 '../../../custom_drawer_routes.dart';
class AppFeatures extends ConsumerStatefulWidget {
const AppFeatures({super.key});
@ -176,7 +175,7 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
),
),
),
SizedBox(height: 20,),
// SizedBox(height: 20,),
// SizedBox(
// width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.height * 0.36,
@ -185,7 +184,8 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
// fit: BoxFit.contain,
// ),
// ),
Padding(padding: const EdgeInsets.all(30.0),
Padding(
padding: const EdgeInsets.all(30.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -215,10 +215,13 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Colors.black,
color: isDarkTheme
? Colors.white
: Colors.black,
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: RichText(
text: TextSpan(
@ -239,7 +242,8 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
children: <TextSpan>[
TextSpan(
text: context.translate(
'Economy, Environment, Social, ', ''),
'Economy, Environment, Social, ',
''),
style: TextStyle(
fontWeight: FontWeight.bold,
color: isDarkTheme
@ -252,7 +256,8 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
),
),
TextSpan(
text: context.translate('and more.', ''),
text: context.translate(
'and more.', ''),
style: TextStyle(
color: isDarkTheme
? Colors.white
@ -283,14 +288,16 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: Text(
context.translate(
'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,
style: TextStyle(
color: isDarkTheme
@ -336,14 +343,16 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: Text(
context.translate(
'Start with high-level categories and drill down to specific KPIs and metrics for deeper insights.',
'البدء بالفئات العامة والتنقل وصولًا إلى مؤشرات الأداء الرئيسية (KPIs) والمقاييس المحددة للحصول على رؤى أعمق.',
),
textAlign: TextAlign.justify, // Align the text
textAlign:
TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color: isDarkTheme
@ -389,14 +398,16 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: Text(
context.translate(
'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,
style: TextStyle(
color: isDarkTheme
@ -451,7 +462,8 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
'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,
style: TextStyle(
color: isDarkTheme
@ -460,8 +472,6 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
),
),
), // Space between bullet and text
],
),
Row(
@ -477,14 +487,16 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: Text(
context.translate(
'Login ensures secure access to sensitive statistical information.',
'يضمن تسجيل الدخول الوصول الآمن إلى المعلومات الإحصائية الحساسة.',
),
textAlign: TextAlign.justify, // Align the text
textAlign:
TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
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.',
'قم بتحديث تفاصيل ملفك الشخصي، مثل الاسم وكلمة المرور والمنطقة، لتخصيص تجربتك.',
),
textAlign: TextAlign.justify, // Align the text
textAlign:
TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color: isDarkTheme
@ -554,7 +567,8 @@ class _AppFeaturesState extends ConsumerState<AppFeatures> {
),
),
],
),)
),
)
],
),
),

View File

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

View File

@ -180,16 +180,11 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
),
),
),
SizedBox(
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,
// SizedBox(
// height: 10,
// ),
),
Padding(padding: const EdgeInsets.all(30.0),
Padding(
padding: const EdgeInsets.all(30.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -199,12 +194,13 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
'يتيح لك تعديل ملف التعريف الخاص بك بتحديث معلومات معينة مع ضمان أن تبقى البيانات الحساسة آمنة. اتبع الخطوات التالية لتحديث ملفك الشخصي:',
),
style: TextStyle(
color: isDarkTheme ? Colors.white : Color(0xFF898C81)),
color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
),
SizedBox(height: 12),
Text(
context.translate(
'Steps to Edit Profile', 'خطوات تعديل الملف الشخصي '),
context.translate('Steps to Edit Profile',
'خطوات تعديل الملف الشخصي '),
style: TextStyle(
fontFamily: context.translate(
'Roboto',
@ -249,7 +245,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: RichText(
text: TextSpan(
@ -267,7 +264,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
),
children: <TextSpan>[
TextSpan(
text: context.translate('"Profile"', ''),
text:
context.translate('"Profile"', ''),
style: TextStyle(
fontWeight: FontWeight.w600,
color: isDarkTheme
@ -293,8 +291,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
),
SizedBox(height: 8),
Text(
context.translate(
'2. Editable Fields:', '2. الحقول القابلة للتعديل:'),
context.translate('2. Editable Fields:',
'2. الحقول القابلة للتعديل:'),
style: TextStyle(
fontFamily: context.translate(
'Roboto',
@ -318,10 +316,13 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Colors.black,
color: isDarkTheme
? Colors.white
: Colors.black,
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: RichText(
text: TextSpan(
@ -373,10 +374,13 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Colors.black,
color: isDarkTheme
? Colors.white
: Colors.black,
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: RichText(
text: TextSpan(
@ -393,7 +397,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
children: <TextSpan>[
TextSpan(
text: context.translate(
'Date of Birth: ', 'تاريخ الميلاد: '),
'Date of Birth: ',
'تاريخ الميلاد: '),
style: TextStyle(
fontWeight: FontWeight.w600,
color: isDarkTheme
@ -429,10 +434,13 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Colors.black,
color: isDarkTheme
? Colors.white
: Colors.black,
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: RichText(
text: TextSpan(
@ -486,10 +494,12 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
padding: const EdgeInsets.only(top: 8.0),
child: Icon(Icons.brightness_1,
size: 5,
color:
isDarkTheme ? Colors.white : Colors.black),
color: isDarkTheme
? Colors.white
: Colors.black),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: RichText(
text: TextSpan(
@ -562,10 +572,12 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
padding: const EdgeInsets.only(top: 8.0),
child: Icon(Icons.brightness_1,
size: 5,
color:
isDarkTheme ? Colors.white : Colors.black),
color: isDarkTheme
? Colors.white
: Colors.black),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: RichText(
text: TextSpan(
@ -604,7 +616,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
),
),
TextSpan(
text: context.translate('Email Id: ', ''),
text: context.translate(
'Email Id: ', ''),
style: TextStyle(
fontWeight: FontWeight.w600,
color: isDarkTheme
@ -661,17 +674,21 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Colors.black,
color: isDarkTheme
? Colors.white
: Colors.black,
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: Text(
context.translate(
'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,
style: TextStyle(
color: isDarkTheme
@ -716,7 +733,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: RichText(
text: TextSpan(
@ -734,7 +752,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
),
children: <TextSpan>[
TextSpan(
text: context.translate('Save', '"حفظ" '),
text: context.translate(
'Save', '"حفظ" '),
style: TextStyle(
fontWeight: FontWeight.w600,
color: isDarkTheme
@ -776,14 +795,16 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: Text(
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.”',
'ستظهر نافذة تأكيد برسالة:"هل أنت متأكد أنك تريد حفظ هذه الصفحة؟ بمجرد الحفظ، لن تتمكن من تغيير اسمك أو تاريخ ميلادك."',
),
textAlign: TextAlign.justify, // Align the text
textAlign:
TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color: isDarkTheme
@ -807,7 +828,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
SizedBox(
width: 8), // Space between bullet and text
Expanded(
child: RichText(
text: TextSpan(
@ -825,7 +847,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
),
children: <TextSpan>[
TextSpan(
text: context.translate('Confirm', ''),
text:
context.translate('Confirm', ''),
style: TextStyle(
fontWeight: FontWeight.w600,
color: isDarkTheme
@ -852,7 +875,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
),
),
TextSpan(
text: context.translate(' Cancel', ''),
text:
context.translate(' Cancel', ''),
style: TextStyle(
fontWeight: FontWeight.w600,
color: isDarkTheme
@ -865,7 +889,8 @@ class _EditMyProfileState extends ConsumerState<EditMyProfile> {
),
),
TextSpan(
text: context.translate(' to go back.', ''),
text: context.translate(
' to go back.', ''),
style: TextStyle(
fontSize: 16,
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/domain/use_cases/language.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/routes/drawer_routes/custom_drawer_routes.dart';
@ -182,15 +183,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
),
),
),
SizedBox(
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,
// SizedBox(
// height: 10,
// ),
),
Padding(
padding: const EdgeInsets.all(30.0),
child: Column(
@ -220,7 +215,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme
? Colors.white
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
@ -233,8 +230,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
textAlign: TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
color: isDarkTheme
? Colors.white
: Color(0xFF898C81)),
),
),
],
@ -264,7 +262,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme
? Colors.white
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
@ -277,8 +277,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
textAlign: TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
color: isDarkTheme
? Colors.white
: Color(0xFF898C81)),
),
),
],
@ -308,7 +309,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme
? Colors.white
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
@ -321,8 +324,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
textAlign: TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
color: isDarkTheme
? Colors.white
: Color(0xFF898C81)),
),
),
],
@ -352,7 +356,9 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme
? Colors.white
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
@ -365,14 +371,16 @@ class _HowUseTheAppState extends ConsumerState<HowUseTheApp> {
textAlign: TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
color: isDarkTheme
? 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/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 {
const Purpose({super.key});
@ -182,16 +183,12 @@ class _PurposeState extends ConsumerState<Purpose> {
),
),
),
SizedBox(
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,
// SizedBox(
// height: 10,
//
// ),
),
Padding(padding: const EdgeInsets.all(30.0),
Padding(
padding: const EdgeInsets.all(30.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -203,7 +200,9 @@ class _PurposeState extends ConsumerState<Purpose> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme
? Colors.white
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
@ -215,8 +214,9 @@ class _PurposeState extends ConsumerState<Purpose> {
'توفير الإحصائيات الرسمية لدولة الإمارات بشكل سهل الوصول.',
),
style: TextStyle(
color:
isDarkTheme ? Colors.white : Color(0xFF898C81),
color: isDarkTheme
? Colors.white
: Color(0xFF898C81),
fontSize: 16,
fontFamily: context.translate(
'Roboto',
@ -225,8 +225,8 @@ class _PurposeState extends ConsumerState<Purpose> {
),
children: <TextSpan>[
TextSpan(
text:
context.translate('official statistics ', ''),
text: context.translate(
'official statistics ', ''),
style: TextStyle(
fontWeight: FontWeight.bold,
color: isDarkTheme
@ -240,7 +240,8 @@ class _PurposeState extends ConsumerState<Purpose> {
),
TextSpan(
text: context.translate(
'on the UAE in an accessible format.', ''),
'on the UAE in an accessible format.',
''),
style: TextStyle(
color: isDarkTheme
? Colors.white
@ -260,7 +261,9 @@ class _PurposeState extends ConsumerState<Purpose> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme
? Colors.white
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
@ -273,8 +276,9 @@ class _PurposeState extends ConsumerState<Purpose> {
textAlign: TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
color: isDarkTheme
? Colors.white
: Color(0xFF898C81)),
),
),
],
@ -287,7 +291,9 @@ class _PurposeState extends ConsumerState<Purpose> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme
? Colors.white
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
@ -300,15 +306,16 @@ class _PurposeState extends ConsumerState<Purpose> {
textAlign: TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
color: isDarkTheme
? 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/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 {
const StayUpdate({super.key});
@ -179,15 +180,9 @@ class _StayUpdateState extends ConsumerState<StayUpdate> {
),
),
),
SizedBox(
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,
// SizedBox(
// height: 10,
// ),
),
Padding(
padding: const EdgeInsets.all(30),
child: Row(
@ -211,14 +206,14 @@ class _StayUpdateState extends ConsumerState<StayUpdate> {
textAlign: TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
color: isDarkTheme
? 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/components/indicators/locale_provider.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 {
const WhoUseTheApp({super.key});
@ -181,7 +182,7 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
),
),
),
SizedBox(height: 10),
// SizedBox(height: 10),
// SizedBox(
// width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.height * 0.36,
@ -217,7 +218,9 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme
? Colors.white
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
@ -230,8 +233,9 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
textAlign: TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
color: isDarkTheme
? Colors.white
: Color(0xFF898C81)),
),
),
],
@ -244,7 +248,9 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme
? Colors.white
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
@ -257,8 +263,9 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
textAlign: TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
color: isDarkTheme
? Colors.white
: Color(0xFF898C81)),
),
),
],
@ -271,7 +278,9 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
child: Icon(
Icons.brightness_1,
size: 5,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme
? Colors.white
: Color(0xFF414042),
),
), // Bullet point
SizedBox(width: 8), // Space between bullet and text
@ -284,15 +293,16 @@ class _WhoUseTheAppState extends ConsumerState<WhoUseTheApp> {
textAlign: TextAlign.justify, // Align the text
softWrap: true,
style: TextStyle(
color:
isDarkTheme ? Colors.white : Color(0xFF898C81)),
color: isDarkTheme
? 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/components/indicators/locale_provider.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 {
const aboutTheApp({super.key});
@ -149,7 +149,7 @@ class _aboutTheAppState extends ConsumerState<aboutTheApp> {
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
color: Colors.grey.shade300,
color: isDarkTheme ? Color(0xFF898C81) : Color(0xFFDEDEDE),
width: 0.5,
), // Grey bottom line
),
@ -173,7 +173,13 @@ class _aboutTheAppState extends ConsumerState<aboutTheApp> {
),
trailing: Icon(
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(
border: Border(
bottom: BorderSide(
color: Colors.grey.shade300,
color: isDarkTheme ? Color(0xFF898C81) : Color(0xFFDEDEDE),
width: 0.5,
), // Grey bottom line
),
@ -205,12 +211,12 @@ class _aboutTheAppState extends ConsumerState<aboutTheApp> {
),
trailing: Icon(
Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
),
shape: Border(
bottom: BorderSide(
color: Colors.black,
width: 3,
color: Color(0xFFDEDEDE),
width: 1,
), // 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/components/indicators/locale_provider.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 {
const FAQPage({super.key});
@ -119,6 +119,7 @@ class _FAQPageState extends ConsumerState<FAQPage> {
return BaseScaffold(
dividerColor: Colors.grey[300],
showDivider: true,
showBackButton: true,
// appbarColor: Colors.white,
backgroundColor: isDarkTheme ? Colors.black : Colors.white,
@ -133,7 +134,7 @@ class _FAQPageState extends ConsumerState<FAQPage> {
'NotoKufi',
),
fontSize: 22,
color: isDarkTheme ? Colors.white : Colors.black ,
color: isDarkTheme ? Colors.white : Colors.black,
fontWeight: FontWeight.w500,
// fontWeight: FontWeight.w500,
),
@ -935,7 +936,8 @@ class _QuestionAnswerCardState extends State<QuestionAnswerCard> {
trailing: Icon(isExpanded
? Icons.keyboard_arrow_up
: Icons.keyboard_arrow_down),
iconColor: widget.isDarkTheme ? Colors.white : Color(0xFF898C81),
iconColor:
widget.isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
onTap: () {
setState(() {
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/components/indicators/locale_provider.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';
class UsingFeatures extends ConsumerStatefulWidget {
@ -173,7 +174,13 @@ class _UsingFeaturesState extends ConsumerState<UsingFeatures> {
),
trailing: Icon(
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(
Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
),
shape: Border(
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(
Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
),
shape: Border(
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(
Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
),
shape: Border(
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(
Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
),
shape: Border(
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(
Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
),
shape: Border(
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(
Icons.keyboard_arrow_right,
color: isDarkTheme ? Colors.white : Color(0xFF414042),
color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81),
),
shape: Border(
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/toggle_lang_service.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/Screens/Bottom%20Navigation%20Pages/Country_Profile/country_profile.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.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';
class Userguide extends ConsumerStatefulWidget {
@ -34,9 +35,9 @@ class _UserguideState extends ConsumerState<Userguide> {
{
'routePath': 'features',
'color': Color(0xFFAA8E83),
'text': 'Features',
'text': 'Key Features',
'icon': 'pajamas:issue-type-feature',
'text-ar': 'الميزات'
'text-ar': 'الميزات الرئيسية'
},
{
'routePath': 'faq',
@ -52,7 +53,6 @@ class _UserguideState extends ConsumerState<Userguide> {
initState() {
super.initState();
print('123456789');
}
@override
@ -107,14 +107,12 @@ class _UserguideState extends ConsumerState<Userguide> {
child: BaseScaffold(
showDivider: true,
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,
title: Text(
AppLocalizations.of(context)!.guide_title,
title: Text(AppLocalizations.of(context)!.guide_title,
style: TextStyle(
color: isDarkTheme ? Colors.white : Color(0xFF414042)
)
),
color: isDarkTheme ? Colors.white : Color(0xFF414042))),
body: Container(
color: isDarkTheme ? Color(0xFF111111) : Colors.white,
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20),

View File

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

View File

@ -770,8 +770,16 @@ class LangToggle extends ConsumerWidget {
},
knobTextWhenOn: 'ع',
knobTextWhenOff: 'EN',
pathColorWhenOn: Colors.grey.shade300,
pathColorWhenOff: Colors.grey.shade300,
pathColorWhenOn: Color(0xFFD9D9D9),
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
uses-material-design: true
assets:
- assets/dark_bg.png
- assets/user_guide_videos/
- assets/logos/
- assets/logos/from_alsaray/
@ -166,6 +165,7 @@ flutter:
- assets/competitiveness/
- assets/icons/uae_numbers/ShareDark.png
- assets/icons/uae_numbers/ShareLight.png
- assets/icons/misc/successMsg.png
fonts:
- family: Segoe