diff --git a/android/app/.cxx/Debug/4y161to1/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/4y161to1/arm64-v8a/configure_fingerprint.bin index a3dd0491..4a6935cb 100644 --- a/android/app/.cxx/Debug/4y161to1/arm64-v8a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/4y161to1/arm64-v8a/configure_fingerprint.bin @@ -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  Հ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  Հ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  Հ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  Հ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  Հ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  Հ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  Հ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  Հ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  Հ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  Հ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  Հ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  Հ3  ހ2 \ No newline at end of file +_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  LJ3  ހ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4y161to1/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/4y161to1/armeabi-v7a/configure_fingerprint.bin index c181438a..939aa973 100644 --- a/android/app/.cxx/Debug/4y161to1/armeabi-v7a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/4y161to1/armeabi-v7a/configure_fingerprint.bin @@ -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 +x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/armeabi-v7a/android_gradle_build.json  ƌLJ3 2  -}/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 \ No newline at end of file +_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ƌLJ3  ހ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4y161to1/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/4y161to1/x86/configure_fingerprint.bin index c4cb9a5f..af87fa84 100644 --- a/android/app/.cxx/Debug/4y161to1/x86/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/4y161to1/x86/configure_fingerprint.bin @@ -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 \ No newline at end of file +_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ɌLJ3  ހ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4y161to1/x86_64/configure_fingerprint.bin b/android/app/.cxx/Debug/4y161to1/x86_64/configure_fingerprint.bin index 3cd77a1e..b6018356 100644 --- a/android/app/.cxx/Debug/4y161to1/x86_64/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/4y161to1/x86_64/configure_fingerprint.bin @@ -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 2m +e/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/Debug/4y161to1/x86_64/build.ninja  ͌LJ3 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 \ No newline at end of file +_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ͌LJ3  ހ2 \ No newline at end of file diff --git a/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/configure_fingerprint.bin index b8974ca3..28e12edd 100644 --- a/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/configure_fingerprint.bin +++ b/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/configure_fingerprint.bin @@ -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  ׆3  ǟ2 +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ȇ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.json  ȇ3 ǟ2  -/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/android_gradle_build_mini.json  ׆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  ׆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  ׆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  ׆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  ׆3 +{/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/compile_commands.json  ȇ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/compile_commands.json.bin  ȇ3   -/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/metadata_generation_command.txt  ׆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  ׆3  ( ǟ2 +x/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/prefab_config.json  ȇ3  ( ǟ2  -}/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/arm64-v8a/symbol_folder_index.txt  ׆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  ׆3  ހ2 \ No newline at end of file +_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ȇ3  ހ2 \ No newline at end of file diff --git a/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/configure_fingerprint.bin index d74ef4b3..5b3023ae 100644 --- a/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/configure_fingerprint.bin +++ b/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/configure_fingerprint.bin @@ -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  ׆3  ǟ2 +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ȇ3  ǟ2  -/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.json  ȇ3 ǟ2  -/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/android_gradle_build_mini.json  ׆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  ׆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  ׆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  ׆3 _ ǟ2 +|/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/build_file_index.txt  ȇ3 _ ǟ2  -}/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/compile_commands.json  ׆3 +}/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/compile_commands.json  ȇ3  -/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/compile_commands.json.bin  ׆3  +/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/compile_commands.json.bin  ȇ3   -/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/metadata_generation_command.txt  ׆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  ׆3  ( ǟ2 +z/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/prefab_config.json  ȇ3  ( ǟ2  -/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/armeabi-v7a/symbol_folder_index.txt  ׆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  ׆3  ހ2 \ No newline at end of file +_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ȇ3  ހ2 \ No newline at end of file diff --git a/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/configure_fingerprint.bin b/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/configure_fingerprint.bin index 047df3b4..2da1bf2b 100644 --- a/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/configure_fingerprint.bin +++ b/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/configure_fingerprint.bin @@ -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  ׆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  ׆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  ׆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  ׆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  ׆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  ׆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  ׆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  ׆3  +y/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/compile_commands.json.bin  ȇ3   -/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86/metadata_generation_command.txt  ׆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  ׆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  ׆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  ׆3  ހ2 \ No newline at end of file +_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ȇ3  ހ2 \ No newline at end of file diff --git a/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/configure_fingerprint.bin b/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/configure_fingerprint.bin index 4c753fc2..4114b4e4 100644 --- a/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/configure_fingerprint.bin +++ b/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log  /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  ׆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  ׆3 ǟ2 +|/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/android_gradle_build.json  ȇ3 ǟ2  -/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/android_gradle_build_mini.json  ׆3 ǟ2r +/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/android_gradle_build_mini.json  ȇ3 ǟ2r p -n/Users/venbateam/Documents/UAE_Stats/FCSC/frontend/android/app/.cxx/RelWithDebInfo/574gs2w4/x86_64/build.ninja  ׆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  ׆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  ׆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  ׆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  ׆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  ׆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  ׆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  ׆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  ׆3  ހ2 \ No newline at end of file +_/Users/venbateam/Documents/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ȇ3  ހ2 \ No newline at end of file diff --git a/assets/dark_bg.png b/assets/dark_bg.png deleted file mode 100644 index c8892586..00000000 Binary files a/assets/dark_bg.png and /dev/null differ diff --git a/assets/feedback/thumbfb.png b/assets/feedback/thumbfb.png index b5e1afe9..d6380b01 100644 Binary files a/assets/feedback/thumbfb.png and b/assets/feedback/thumbfb.png differ diff --git a/assets/icons/misc/successMsg.png b/assets/icons/misc/successMsg.png new file mode 100644 index 00000000..55dd4950 Binary files /dev/null and b/assets/icons/misc/successMsg.png differ diff --git a/assets/logos/uae_stat_dark.png b/assets/logos/uae_stat_dark.png new file mode 100644 index 00000000..2656b904 Binary files /dev/null and b/assets/logos/uae_stat_dark.png differ diff --git a/assets/logos/uae_stat.png b/assets/logos/uae_stat_light.png similarity index 100% rename from assets/logos/uae_stat.png rename to assets/logos/uae_stat_light.png diff --git a/assets/splash_screen/FCSCLogo_dark.png b/assets/splash_screen/FCSCLogo_dark.png new file mode 100644 index 00000000..9c0bad3f Binary files /dev/null and b/assets/splash_screen/FCSCLogo_dark.png differ diff --git a/assets/splash_screen/logo.png b/assets/splash_screen/FCSCLogo_light.png similarity index 100% rename from assets/splash_screen/logo.png rename to assets/splash_screen/FCSCLogo_light.png diff --git a/assets/splash_screen/background.png b/assets/splash_screen/background.png deleted file mode 100644 index 421e4bf3..00000000 Binary files a/assets/splash_screen/background.png and /dev/null differ diff --git a/assets/splash_screen/background_splash_dark.png b/assets/splash_screen/background_splash_dark.png new file mode 100644 index 00000000..4b467e07 Binary files /dev/null and b/assets/splash_screen/background_splash_dark.png differ diff --git a/lib/config/sessionCheckScreen.dart b/lib/config/sessionCheckScreen.dart index 777aae4c..70d00557 100644 --- a/lib/config/sessionCheckScreen.dart +++ b/lib/config/sessionCheckScreen.dart @@ -139,22 +139,59 @@ class _SessionCheckScreenState extends ConsumerState { class SplashScreen extends StatelessWidget { @override Widget build(BuildContext context) { + final isDark = Theme.of(context).brightness == Brightness.dark; return Scaffold( - backgroundColor: Colors.white, - body: Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image.asset('assets/images/logo.png', width: 150), // App Logo - // SizedBox(height: 20), - // CircularProgressIndicator(), // Loading indicator - ], + 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: [ + // 🔄 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'; diff --git a/lib/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart b/lib/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart index dcdc2260..97515c58 100644 --- a/lib/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart +++ b/lib/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart @@ -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'; } diff --git a/lib/infrastructure/services/img_asset_paths/logo_asset_path.dart b/lib/infrastructure/services/img_asset_paths/logo_asset_path.dart index 2daa8553..23c04cf0 100644 --- a/lib/infrastructure/services/img_asset_paths/logo_asset_path.dart +++ b/lib/infrastructure/services/img_asset_paths/logo_asset_path.dart @@ -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'; } diff --git a/lib/presentation/Screens/Bottom Navigation Pages/UAE_Numbers/uae_numbers.dart b/lib/presentation/Screens/Bottom Navigation Pages/UAE_Numbers/uae_numbers.dart index 50a8d1e5..9a1816cb 100644 --- a/lib/presentation/Screens/Bottom Navigation Pages/UAE_Numbers/uae_numbers.dart +++ b/lib/presentation/Screens/Bottom Navigation Pages/UAE_Numbers/uae_numbers.dart @@ -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 { }, ) : 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 { myheight, borderColor, colorPattern, - mainTopic['main_topic']), + mainTopic['main_topic'],isDarkTheme), ); }), ], @@ -371,7 +371,7 @@ class _UaenumberWidgetState extends ConsumerState { } List _buildSubTopics(List 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 { .map((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 { 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 { ), fontSize: 16, fontWeight: FontWeight.w600, - color: color, + color: isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFF666666), ), ), ), diff --git a/lib/presentation/Screens/app_tour/WelcomePage.dart b/lib/presentation/Screens/app_tour/WelcomePage.dart index 037bc508..2bb68972 100644 --- a/lib/presentation/Screens/app_tour/WelcomePage.dart +++ b/lib/presentation/Screens/app_tour/WelcomePage.dart @@ -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, ); diff --git a/lib/presentation/Screens/auth_verification/create_new_pw.dart b/lib/presentation/Screens/auth_verification/create_new_pw.dart index c69290ea..c66ccd86 100644 --- a/lib/presentation/Screens/auth_verification/create_new_pw.dart +++ b/lib/presentation/Screens/auth_verification/create_new_pw.dart @@ -347,8 +347,16 @@ class _CreateNewPwState extends ConsumerState { 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; diff --git a/lib/presentation/Screens/auth_verification/forgot_password.dart b/lib/presentation/Screens/auth_verification/forgot_password.dart index 7e5f039d..b3579228 100644 --- a/lib/presentation/Screens/auth_verification/forgot_password.dart +++ b/lib/presentation/Screens/auth_verification/forgot_password.dart @@ -349,8 +349,16 @@ class _ForgotPasswordState extends ConsumerState { 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; diff --git a/lib/presentation/Screens/auth_verification/registration.dart b/lib/presentation/Screens/auth_verification/registration.dart index 8cd9657b..2137c6f1 100644 --- a/lib/presentation/Screens/auth_verification/registration.dart +++ b/lib/presentation/Screens/auth_verification/registration.dart @@ -396,8 +396,8 @@ class _RegisterScreenState extends ConsumerState { 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 { ); } + return PopScope( canPop: false, // Allow back navigation only if not login screen onPopInvokedWithResult: (didPop, result) { @@ -417,7 +418,8 @@ class _RegisterScreenState extends ConsumerState { 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 { 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 { 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 { ? 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 { 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 { ? 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 { 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 { ? 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 { 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 { ? 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 { 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 { borderRadius: BorderRadius.circular(10), ), + padding: EdgeInsets.symmetric(vertical: 16.5), ), child: Row( mainAxisSize: MainAxisSize.min, @@ -1439,7 +1479,7 @@ class _RegisterScreenState extends ConsumerState { ), ), ), - SizedBox(height: 5), + SizedBox(height: 10), Text( AppLocalizations.of(context)! .account_confirmation, @@ -1459,7 +1499,7 @@ class _RegisterScreenState extends ConsumerState { : Color(0xFF898C81), ), ), - SizedBox(height: 5), + SizedBox(height: 10), Padding( padding: const EdgeInsets.only( top: 5.0, @@ -1479,6 +1519,7 @@ class _RegisterScreenState extends ConsumerState { borderRadius: BorderRadius.circular(10), ), + padding: EdgeInsets.symmetric(vertical: 16.5), ), child: Row( mainAxisSize: MainAxisSize.min, @@ -1518,7 +1559,8 @@ class _RegisterScreenState extends ConsumerState { height: 10, ), Padding( - padding: const EdgeInsets.all(20.0), + padding: const EdgeInsets.symmetric( + horizontal: 70.0), // child: Container( // height: screenheight / 16, // width: screenwidth / 3, diff --git a/lib/presentation/Screens/charts/screens/chart_screen.dart b/lib/presentation/Screens/charts/screens/chart_screen.dart index 32ef9bf4..7be041db 100644 --- a/lib/presentation/Screens/charts/screens/chart_screen.dart +++ b/lib/presentation/Screens/charts/screens/chart_screen.dart @@ -2532,7 +2532,9 @@ class _ChartScreen1State extends ConsumerState { fontFamily: context.translate( 'Roboto', 'NotoKufi', - )), + ), + color: isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFF000000), + ), ) : Text( context.translate( @@ -2543,7 +2545,9 @@ class _ChartScreen1State extends ConsumerState { 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 { '#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 { 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 { // ), ], ), - ) + ), // IconButton( // icon: Icon(Icons.filter_alt_outlined, // color: Colors.white, size: 24), @@ -2870,11 +2860,13 @@ class _ChartScreen1State extends ConsumerState { // context, filterData, chartsData); // }, // ), + ], ), SizedBox(width: 10), ], ), + SizedBox(height: 5), ], ), ), @@ -2897,6 +2889,7 @@ class _ChartScreen1State extends ConsumerState { 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 { .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 { 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 { // ), // ], ), - child: IconButton( - onPressed: onPressed, - icon: Icon(icon, color: onPressed == null ? Colors.white : Colors.grey), - iconSize: 12.5, + 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 : Color(0xFFC6BEB2), + size: 20.5, + ), + ), ), ); } @@ -3206,7 +3206,7 @@ class _ChartScreen1State extends ConsumerState { '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 mainTopicColors = { - 'ECONOMY': Color(0xFF071F3B), - 'SOCIAL': Color(0xFF4F241B), - 'ENVIRONMENT': Color(0xFF16523C), - }; + // final Map 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, ), diff --git a/lib/presentation/Screens/charts/widgets/chart_widget.dart b/lib/presentation/Screens/charts/widgets/chart_widget.dart index 5e19098a..9f010629 100644 --- a/lib/presentation/Screens/charts/widgets/chart_widget.dart +++ b/lib/presentation/Screens/charts/widgets/chart_widget.dart @@ -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(); } diff --git a/lib/presentation/Screens/online_offline_verification/internet_check.dart b/lib/presentation/Screens/online_offline_verification/internet_check.dart index fd6bcbe1..2f99c47b 100644 --- a/lib/presentation/Screens/online_offline_verification/internet_check.dart +++ b/lib/presentation/Screens/online_offline_verification/internet_check.dart @@ -34,84 +34,92 @@ class InternetCheckScreen extends ConsumerWidget { double myHeight = MediaQuery.of(context).size.height; - return Scaffold( - body: Padding( - padding: const EdgeInsets.all(8.0), - child: Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image.asset('assets/logos/no-internet.png', width: 150), - SizedBox(height: myHeight / 40), - Text(context.translate('No Internet Connection','لا يوجد اتصال بالإنترنت'), - style: TextStyle(fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), fontSize: 25, fontWeight: FontWeight.bold),), - Text(context.translate('Please check your Wi-Fi or Mobile Data','يرجى التحقق من شبكة Wi-Fi أو بيانات الهاتف المحمول'), - style: TextStyle(fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), fontSize: 15, fontWeight: FontWeight.w500),), - Text(context.translate('connection and try again','واتصالك ثم حاول مرة أخرى'), - style: TextStyle(fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), fontSize: 15, fontWeight: FontWeight.w500),), - SizedBox(height: myHeight / 40), - ElevatedButton( - onPressed: () async { - bool hasInternet = - await InternetConnectionChecker.instance.hasConnection; + return PopScope( + canPop: false, + onPopInvokedWithResult: (didPop, result) { + if (didPop) return; - if (hasInternet) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(context.translate('Internet is back!','عاد الاتصال بالإنترنت!')), - backgroundColor: Colors.green, - ), - ); - context.pop(); - // Future.delayed(Duration(seconds: 1), () { - // if (context.canPop()) { - // context.pop(); - // } else { - // context.go('/myhomepage'); - // } - // }); - } else { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: - Text(context.translate('No internet connection. Please try again.','لا يوجد اتصال بالإنترنت. يرجى المحاولة مرة أخرى.')), - backgroundColor: Colors.red, - ), - ); - } - }, - style: ElevatedButton.styleFrom( - backgroundColor: Color(0xFFA7887A), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.all(Radius.circular(10)), + }, + child: Scaffold( + body: Padding( + padding: const EdgeInsets.all(8.0), + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset('assets/logos/no-internet.png', width: 150), + SizedBox(height: myHeight / 40), + Text(context.translate('No Internet Connection','لا يوجد اتصال بالإنترنت'), + style: TextStyle(fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), fontSize: 25, fontWeight: FontWeight.bold),), + Text(context.translate('Please check your Wi-Fi or Mobile Data','يرجى التحقق من شبكة Wi-Fi أو بيانات الهاتف المحمول'), + style: TextStyle(fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), fontSize: 15, fontWeight: FontWeight.w500),), + Text(context.translate('connection and try again','واتصالك ثم حاول مرة أخرى'), + style: TextStyle(fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), fontSize: 15, fontWeight: FontWeight.w500),), + SizedBox(height: myHeight / 40), + ElevatedButton( + onPressed: () async { + bool hasInternet = + await InternetConnectionChecker.instance.hasConnection; + + if (hasInternet) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(context.translate('Internet is back!','عاد الاتصال بالإنترنت!')), + backgroundColor: Colors.green, + ), + ); + context.pop(); + // Future.delayed(Duration(seconds: 1), () { + // if (context.canPop()) { + // context.pop(); + // } else { + // context.go('/myhomepage'); + // } + // }); + } else { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: + Text(context.translate('No internet connection. Please try again.','لا يوجد اتصال بالإنترنت. يرجى المحاولة مرة أخرى.')), + backgroundColor: Colors.red, + ), + ); + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: Color(0xFFA7887A), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(10)), + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( context.translate('Retry','إعادة المحاولة'), + style: TextStyle(fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), fontSize: 16, color: Colors.white),), + SizedBox(width: 8), + Icon(Icons.refresh, size: 16, color: Colors.white), + ], ), ), - child: Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( context.translate('Retry','إعادة المحاولة'), - style: TextStyle(fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), fontSize: 16, color: Colors.white),), - SizedBox(width: 8), - Icon(Icons.refresh, size: 16, color: Colors.white), - ], - ), - ), - ], + ], + ), ), ), ), ); + } } diff --git a/lib/presentation/Screens/profilepage.dart b/lib/presentation/Screens/profilepage.dart index 6b715c4b..6167846d 100644 --- a/lib/presentation/Screens/profilepage.dart +++ b/lib/presentation/Screens/profilepage.dart @@ -69,6 +69,7 @@ class _ProfileScreenState extends ConsumerState { // 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 { _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 { 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 { ), ), 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 { 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 { 'تسجيل الخروج', ), style: TextStyle( + // color: Color(0xFFB68A34), color: Color(0xFF898C81), fontWeight: FontWeight.w700, fontFamily: context.translate( @@ -502,7 +506,8 @@ class _ProfileScreenState extends ConsumerState { 'إلغاء', ), style: TextStyle( - color: Color(0xFFAA8E83), + // color: Color(0xFFAA8E83), + color: Color(0xFFB68A34), fontFamily: context.translate( 'Roboto', 'NotoKufi', @@ -513,7 +518,8 @@ class _ProfileScreenState extends ConsumerState { 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 { 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 { 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 { 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 { 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 { 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 { 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 { ), 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 { 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 { ), 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 { child: DropdownButtonFormField( 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 { ), 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 { }, side: BorderSide( color: showError - ? isDarkTheme - ? Color(0xFFB68A34) - : Color(0xFFb22222) + ? Color(0xFFD83731) : Color(0xFFB68A34), // : isDarkTheme @@ -1285,7 +1423,7 @@ class _ProfileScreenState extends ConsumerState { 'Roboto', 'NotoKufi', ), - color: Color(0xFFb22222), + color: Color(0xFFD83731), fontSize: 12, ), ), @@ -1293,6 +1431,7 @@ class _ProfileScreenState extends ConsumerState { ], ), SizedBox(height: 20), + if(isOAuthLogin != 1) Center( child: GestureDetector( onTap: () { diff --git a/lib/presentation/components/lang_toggle.dart b/lib/presentation/components/lang_toggle.dart index 577db375..ab2468e3 100644 --- a/lib/presentation/components/lang_toggle.dart +++ b/lib/presentation/components/lang_toggle.dart @@ -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, + ), ); } } diff --git a/lib/presentation/components/my_toggle.dart b/lib/presentation/components/my_toggle.dart index d0eebf49..a9fc0e49 100644 --- a/lib/presentation/components/my_toggle.dart +++ b/lib/presentation/components/my_toggle.dart @@ -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( diff --git a/lib/presentation/components/themed_app_bar.dart b/lib/presentation/components/themed_app_bar.dart index 0a20ed51..c81e8569 100644 --- a/lib/presentation/components/themed_app_bar.dart +++ b/lib/presentation/components/themed_app_bar.dart @@ -63,7 +63,7 @@ class ThemedAppBar extends ConsumerWidget { ), ); final logo = Image.asset( - LogoAssetPath.uaeStat, + LogoAssetPath.uaeStatLight, height: 36, ); final title = titleText == null diff --git a/lib/presentation/routes/auth_routes/login_route.dart b/lib/presentation/routes/auth_routes/login_route.dart index 2e4bb8d5..cf997c2d 100644 --- a/lib/presentation/routes/auth_routes/login_route.dart +++ b/lib/presentation/routes/auth_routes/login_route.dart @@ -205,19 +205,20 @@ class LoginRoute extends HookConsumerWidget { } // Function to send the reset password request - Future forgotPasswordMail(String email) async { + Future 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 googleLogin(BuildContext context, WidgetRef ref,platform) async { + Future 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 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 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']; @@ -556,10 +625,10 @@ class LoginRoute extends HookConsumerWidget { 'إعادة تعيين كلمة المرور', ), style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), fontSize: locale?.languageCode == 'ar' ? 18 : 20, color: isDarkTheme ? Color(0xFFFFFFFF) : Color(0xFF898C81), fontWeight: FontWeight.w600), @@ -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,13 +698,12 @@ 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 + BorderRadius.circular(8), // Optional: Rounded corners ), padding: EdgeInsets.symmetric( horizontal: 10, vertical: 10), // Optional: Padding @@ -647,10 +713,13 @@ class LoginRoute extends HookConsumerWidget { 'Return', 'يعود', ), - style: TextStyle( fontSize: context.translate(12, 10), fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ),), + 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( - 'Roboto', - 'NotoKufi', - ),), + style: TextStyle( + fontSize: context.translate(12, 10), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), ), ), ], @@ -689,21 +761,38 @@ 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!', + 'نجاح', + ), + content: context.translate( + 'An email has been sent to $email with further details.', + 'تم إرسال بريد إلكتروني إلى $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.', + ), + ); + } - context.simpleDialog( - title: context.translate( - 'Success!', - 'نجاح', - ), - content: context.translate( - 'An email has been sent to $email with further details.', - 'تم إرسال بريد إلكتروني إلى $email يتضمن المزيد من التفاصيل.', - ), - ); }, 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( - isDarkTheme - ? BannerAssetPath.fcscLogoDark - : BannerAssetPath.fcscLogoLight, - height: 40, + final fcscBanner = Padding( + padding: const EdgeInsets.symmetric(horizontal: 50), + child: Image.asset( + isDarkTheme + ? BannerAssetPath.fcscLogoDark + : BannerAssetPath.fcscLogoLight, + 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, diff --git a/lib/presentation/routes/bottom_bar_routes/tab_routes/home_route.dart b/lib/presentation/routes/bottom_bar_routes/tab_routes/home_route.dart index a9984fcd..077aa3c6 100644 --- a/lib/presentation/routes/bottom_bar_routes/tab_routes/home_route.dart +++ b/lib/presentation/routes/bottom_bar_routes/tab_routes/home_route.dart @@ -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 { 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 { 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 { 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 { 'Roboto', 'NotoKufi', ), - color: Color(0xFFAA8E83), + color: Color(0xFFB68A34), fontSize: 16, ), ), @@ -272,7 +274,7 @@ class _MyHomePageState extends ConsumerState { 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 { 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 { 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), diff --git a/lib/presentation/routes/bottom_bar_routes/tab_routes/uae_numbers_routes/sub_routes/economy/_gdp_body.dart b/lib/presentation/routes/bottom_bar_routes/tab_routes/uae_numbers_routes/sub_routes/economy/_gdp_body.dart index dd3342d9..70577134 100644 --- a/lib/presentation/routes/bottom_bar_routes/tab_routes/uae_numbers_routes/sub_routes/economy/_gdp_body.dart +++ b/lib/presentation/routes/bottom_bar_routes/tab_routes/uae_numbers_routes/sub_routes/economy/_gdp_body.dart @@ -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( diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart b/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart index 96c8cb0c..8fdbae29 100644 --- a/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart @@ -551,65 +551,68 @@ class _BookMarkState extends ConsumerState { child: selectedTabIndex == 0 ? (bookmarks.isNotEmpty ? SingleChildScrollView( - child: Column( - children: List.generate( - transformedList.length, (i) { - final mainTopic = transformedList[i]; - print('oustside1 $mainTopic'); - final list = - List.from(mainTopic['SubTopic'] ?? []); - print('oustside2 $list'); - return CustomExpandableTile( - index: i, - isExpanded: expandedIndex == i, - onTap: (int index) { -// 🔹 Expecting an index - setState(() { - expandedIndex = - (expandedIndex == index) - ? null - : index; - }); - }, - title: - mainTopic['main_topic'] ?? 'No Topic', - childWidget: Container( - decoration: BoxDecoration( - color: isDarkTheme - ? Color(0xFF111111) - : Colors.white, -// borderRadius: BorderRadius.all(Radius.circular(20)) - ), - padding: const EdgeInsets.all(16), - child: GridView.builder( - shrinkWrap: true, - physics: - NeverScrollableScrollPhysics(), - gridDelegate: - const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, - crossAxisSpacing: 10.0, - mainAxisSpacing: 10.0, - mainAxisExtent: 100, + 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'] ?? []); + print('oustside2 $list'); + return CustomExpandableTile( + index: i, + isExpanded: expandedIndex == i, + onTap: (int index) { + // 🔹 Expecting an index + setState(() { + expandedIndex = + (expandedIndex == index) + ? null + : index; + }); + }, + title: mainTopic['main_topic'] ?? + 'No Topic', + childWidget: Container( + decoration: BoxDecoration( + color: isDarkTheme + ? Color(0xFF111111) + : Colors.white, + // borderRadius: BorderRadius.all(Radius.circular(20)) + ), + padding: const EdgeInsets.all(16), + child: GridView.builder( + shrinkWrap: true, + physics: + NeverScrollableScrollPhysics(), + gridDelegate: + const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + crossAxisSpacing: 10.0, + mainAxisSpacing: 10.0, + mainAxisExtent: 100, + ), + itemCount: list.length, + itemBuilder: (context, index) { + return _buildBoxes( + mainTopic['SubTopic'][index], + context, + mainTopic['valueColor'], + isDarkTheme); + }, ), - itemCount: list.length, - itemBuilder: (context, index) { - return _buildBoxes( - mainTopic['SubTopic'][index], - context, - mainTopic['valueColor'], - isDarkTheme); - }, ), - ), - filteredBookmarks: List.from( - mainTopic['SubTopic'] ?? []), - titleBackgroundColor: - mainTopic['valueColor'], -// Ensure it's a new list - isDarkTheme: isDarkTheme, - ); - }), + filteredBookmarks: List.from( + mainTopic['SubTopic'] ?? []), + titleBackgroundColor: + mainTopic['valueColor'], + // Ensure it's a new list + isDarkTheme: isDarkTheme, + ); + }), + ), ), ) : Center( @@ -658,66 +661,69 @@ class _BookMarkState extends ConsumerState { ) : Padding( padding: const EdgeInsets.all(8.0), - child: Column( - children: [ - Container( - decoration: BoxDecoration( - color: tabs[selectedTabIndex] - ['color'], - borderRadius: BorderRadius.only( - topLeft: Radius.circular(20), - topRight: Radius.circular(20)) + child: Container( + margin: const EdgeInsets.all(13.0), + child: Column( + children: [ + Container( + decoration: BoxDecoration( + color: tabs[selectedTabIndex] + ['color'], + borderRadius: BorderRadius.only( + topLeft: Radius.circular(20), + topRight: Radius.circular(20)) - // borderRadius: BorderRadius.all( - // Radius.circular(35)) + // borderRadius: BorderRadius.all( + // Radius.circular(35)) - ), - padding: const EdgeInsets.only( - left: 16, - bottom: 5, - top: 5, - right: 10), - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Text( - tabs[selectedTabIndex]['title'], - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - color: Colors.white, - fontWeight: FontWeight.w600, - fontSize: 20, - ), - ), - ], - ), - ), - SizedBox( - height: 20, - ), - Expanded( - child: GridView.builder( - gridDelegate: - const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, - crossAxisSpacing: 10.0, - mainAxisSpacing: 10.0, - mainAxisExtent: 100, ), - itemCount: filteredBookmarks.length, - itemBuilder: (context, index) { - return _buildBox( - filteredBookmarks[index], - context, - isDarkTheme); - }, + padding: const EdgeInsets.only( + left: 16, + bottom: 5, + top: 5, + right: 10), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + tabs[selectedTabIndex]['title'], + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + color: Colors.white, + fontWeight: FontWeight.w600, + fontSize: 20, + ), + ), + ], + ), ), - ), - ], + SizedBox( + height: 20, + ), + Expanded( + child: GridView.builder( + gridDelegate: + const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + crossAxisSpacing: 10.0, + mainAxisSpacing: 10.0, + mainAxisExtent: 100, + ), + itemCount: filteredBookmarks.length, + itemBuilder: (context, index) { + return _buildBox( + filteredBookmarks[index], + context, + isDarkTheme); + }, + ), + ), + ], + ), ), ), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/edit_profile.dart b/lib/presentation/routes/drawer_routes/Drawer Items/edit_profile.dart index eca45285..87a87623 100644 --- a/lib/presentation/routes/drawer_routes/Drawer Items/edit_profile.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/edit_profile.dart @@ -100,6 +100,7 @@ class _EditProfileState extends ConsumerState { dynamic recordId; dynamic collectionId; dynamic role; + late int isOAuthLogin; bool _isHoveringDropdown = false; bool _isHoveringPreferredLang = false; @@ -203,6 +204,7 @@ class _EditProfileState extends ConsumerState { _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 { ), ], ), + if(isOAuthLogin != 1) Center( child: GestureDetector( onTap: () { diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/feedback.dart b/lib/presentation/routes/drawer_routes/Drawer Items/feedback.dart index 44fbf93b..c51d8ee6 100644 --- a/lib/presentation/routes/drawer_routes/Drawer Items/feedback.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/feedback.dart @@ -666,14 +666,14 @@ class _FeedbackFormState extends ConsumerState '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, + ), ); } } diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart b/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart index 4593cc08..32c60f76 100644 --- a/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart @@ -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; @@ -59,8 +62,8 @@ class _ManageUserRouterState extends ConsumerState { await _pb.admins .authWithPassword('pb@venbainfotech.com', 'pb@venbainfotech.com'); final result = await _pb.collection('users').getFullList( - filter: 'role="user"', - ); + filter: 'role="user"', + ); setState(() { userData = result.map((record) { @@ -106,10 +109,10 @@ class _ManageUserRouterState extends ConsumerState { } void _sort( - Comparable? Function(User user) getField, - int columnIndex, - bool ascending, - ) { + Comparable? Function(User user) getField, + int columnIndex, + bool ascending, + ) { setState(() { _sortColumnIndex = columnIndex; _isAscending = ascending; @@ -158,9 +161,9 @@ class _ManageUserRouterState extends ConsumerState { AppLocalizations.of(context)!.status_success, style: TextStyle( fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - )), + 'Roboto', + 'NotoKufi', + )), ), ), ); @@ -172,14 +175,14 @@ class _ManageUserRouterState extends ConsumerState { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text( - context.translate( - 'Error updating status: $e', '$e خطأ في تحديث الحالة: '), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - )), - )), + context.translate( + 'Error updating status: $e', '$e خطأ في تحديث الحالة: '), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + )), + )), ); } } @@ -199,7 +202,7 @@ class _ManageUserRouterState extends ConsumerState { borderRadius: BorderRadius.circular(5.0), // Rounded corners ), contentPadding: - EdgeInsets.zero, // Ensure no padding issues with close icon + EdgeInsets.zero, // Ensure no padding issues with close icon content: Stack( children: [ Padding( @@ -230,7 +233,7 @@ class _ManageUserRouterState extends ConsumerState { 'NotoKufi', ), fontWeight: - FontWeight.bold, // Makes newStatus bold + FontWeight.bold, // Makes newStatus bold fontSize: 18, color: Color(0xFF898C81), ), @@ -299,11 +302,11 @@ class _ManageUserRouterState extends ConsumerState { }, style: TextButton.styleFrom( backgroundColor: - Color(0xFFAA8E83), // Set background color + Color(0xFFAA8E83), // Set background color foregroundColor: Colors.white, shape: RoundedRectangleBorder( borderRadius: - BorderRadius.circular(10.0), // Set text color + BorderRadius.circular(10.0), // Set text color ), ), child: Text( @@ -336,11 +339,52 @@ class _ManageUserRouterState extends ConsumerState { } }); + // ref.listen(localeProvider, (previous, next) async { + // final localeCode = next?.languageCode ?? 'en'; // Default to 'en' if null + // await _userService.updateLanguage(localeCode); + // }); + ref.listen(localeProvider, (previous, next) async { final localeCode = next?.languageCode ?? 'en'; // Default to 'en' if null + 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(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 statusOptions = { 'Approved': AppLocalizations.of(context)!.approved, 'Denied': AppLocalizations.of(context)!.denied, @@ -356,359 +400,321 @@ class _ManageUserRouterState extends ConsumerState { 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, style: TextStyle( fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - )), + 'Roboto', + 'NotoKufi', + )), ), body: isLoading ? Container( - color: Color(0x98FFFCE5), // Semi-transparent background - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - margin: EdgeInsets.symmetric( - horizontal: 40), // Left & Right space - child: LinearProgressIndicator( - minHeight: 5, // Adjust thickness - backgroundColor: - Colors.grey[100], // Optional: Background color - valueColor: AlwaysStoppedAnimation( - Color(0xFFAA8E83)), // Loader color - ), - ), - ], + color: Color(0x98FFFCE5), // Semi-transparent background + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + margin: EdgeInsets.symmetric( + horizontal: 40), // Left & Right space + child: LinearProgressIndicator( + minHeight: 5, // Adjust thickness + backgroundColor: + Colors.grey[100], // Optional: Background color + valueColor: AlwaysStoppedAnimation( + Color(0xFFAA8E83)), // Loader color ), - ) + ), + ], + ), + ) : SingleChildScrollView( - child: Padding( - padding: - 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)), + child: Padding( + padding: + const EdgeInsets.only(left: 10.0, right: 10.0, top: 3.0), + child: Column( + children: [ + + Container( + height: 40, + decoration: BoxDecoration( + 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: 5.0), + child: TextField( + decoration: InputDecoration( + hintText: AppLocalizations.of(context)!.search, + hintStyle: TextStyle( + color: isDarkTheme ? Color(0xFF898C81) : Color(0xFF898C81), + fontFamily: context.translate('Roboto', 'NotoKufi'), + fontSize: 18, + // height: 1.8, ), - child: Padding( - padding: EdgeInsets.only(left: 12.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 - ), - prefixIconConstraints: BoxConstraints( - maxWidth: 42, - maxHeight: 42, - ), - prefixIcon: Container( - alignment: Alignment.center, - padding: EdgeInsets.only(left: 10, right: 5), - child: SvgPicture.asset( - MiscIconAssetPath.Search, - semanticsLabel: 'Search', - height: 18, - width: 18, - colorFilter: ColorFilter.mode( - Color(0xFFAA8E83), BlendMode.srcIn), - ), - ), - contentPadding: EdgeInsets.only( - top: 14), // Aligns hint text with icon - border: InputBorder.none, - ), - onChanged: filterUsers, + prefixIconConstraints: BoxConstraints( + maxWidth: 42, + maxHeight: 42, + ), + prefixIcon: Container( + padding: EdgeInsets.only(right: 5, left: 5), + alignment: Alignment.center, + child: SvgPicture.asset( + MiscIconAssetPath.Search, + semanticsLabel: 'Search', + colorFilter: ColorFilter.mode(Color(0xFFAA8E83), BlendMode.srcIn), + height: 18, + width: 18, ), ), + // contentPadding: EdgeInsets.symmetric(vertical: 12, horizontal: 18.0), + border: InputBorder.none, ), - SizedBox(height: myheight / 40), - filteredUserData.isEmpty - ? Center( - child: Padding( - padding: const EdgeInsets.all(16.0), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - SizedBox(height: myheight / 5), + onChanged: filterUsers, + ), + ), + ), + SizedBox(height: myheight / 40), + filteredUserData.isEmpty + ? Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox(height: myheight / 5), - // Icon(Icons.search, - // size: 60, color: Colors.grey), - Image.asset( - MiscIconAssetPath.group, - width: 60, - height: 60, + // Icon(Icons.search, + // size: 60, color: Colors.grey), + Image.asset( + MiscIconAssetPath.group, + width: 60, + height: 60, + ), + + SizedBox(height: 15), + // Space between icon and text + Text( + AppLocalizations.of(context)! + .no_result_found, + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.grey[700], + ), + ), + + SizedBox(height: 12), // Space between texts + FittedBox( + child: Text( + context.translate( + "We couldn't find anything matching your search.", + 'لم نعثر على أي شيء يطابق بحثك.'), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 18, + color: Color(0xFF898C81)), + textAlign: TextAlign.center, + ), + ), + ], + ), + ), + ) + : SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: ConstrainedBox( + constraints: BoxConstraints( + minWidth: MediaQuery.of(context).size.width, + ), + child: DataTable( + sortColumnIndex: _sortColumnIndex, + sortAscending: _isAscending, + columns: [ + DataColumn( + label: Text( + AppLocalizations.of(context)!.user_name, + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + )), + ), + onSort: (columnIndex, ascending) { + _sort( + (user) => + user.userName.toLowerCase(), + columnIndex, + ascending); + }, + ), + DataColumn( + label: Text( + AppLocalizations.of(context)!.email_id, + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + )), + ), + onSort: (columnIndex, ascending) { + _sort( + (user) => + user.emailId.toLowerCase(), + columnIndex, + ascending); + }, + ), + DataColumn( + label: Text( + AppLocalizations.of(context)!.reg_date, + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + )), + ), + onSort: (columnIndex, ascending) { + _sort( + (user) => DateFormat('dd/MM/yyyy') + .parse(user.registrationDate), + columnIndex, + ascending, + ); + }, + ), + DataColumn( + label: Text( + AppLocalizations.of(context)!.status, + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + )), + ), + onSort: (columnIndex, ascending) { + _sort( + (user) => user.status.toLowerCase(), + columnIndex, + ascending); + }, + ), + ], + rows: filteredUserData.isEmpty + ? [ + DataRow( + cells: List.generate( + 4, // Ensure it matches the number of DataColumns + (index) => DataCell( + index == 0 + ? Text( + AppLocalizations.of( + context)! + .no_result_found, + style: TextStyle( + fontFamily: context + .translate( + 'Roboto', + 'NotoKufi', ), - - SizedBox(height: 15), - // Space between icon and text - Text( - AppLocalizations.of(context)! - .no_result_found, + fontStyle: FontStyle + .italic), + ) + : const Text( + ''), // Empty cells for other columns + placeholder: true, + ), + ), + ), + ] + : filteredUserData.map((user) { + return DataRow( + cells: [ + DataCell( + Text( + user.userName, + style: TextStyle( + fontFamily: + context.translate( + 'Roboto', + 'NotoKufi', + )), + ), + ), + DataCell(Text( + user.emailId, + style: TextStyle( + fontFamily: + context.translate( + 'Roboto', + 'NotoKufi', + )), + )), + DataCell(Text( + user.registrationDate, + style: TextStyle( + fontFamily: + context.translate( + 'Roboto', + 'NotoKufi', + )), + )), + DataCell( + DropdownButton( + value: user.status, + items: statusOptions.entries + .map((status) { + return DropdownMenuItem< + String>( + value: status.key, + child: Text( + status.value, style: TextStyle( - fontFamily: context.translate( + fontFamily: + context.translate( 'Roboto', 'NotoKufi', ), - fontSize: 24, - fontWeight: FontWeight.bold, - color: Colors.grey[700], + color: getStatusColor( + status.key), ), ), - - SizedBox(height: 12), // Space between texts - FittedBox( - child: Text( - context.translate( - "We couldn't find anything matching your search.", - 'لم نعثر على أي شيء يطابق بحثك.'), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 18, - color: Color(0xFF898C81)), - textAlign: TextAlign.center, - ), - ), - ], - ), - ), - ) - : SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: ConstrainedBox( - constraints: BoxConstraints( - minWidth: MediaQuery.of(context).size.width, - ), - child: DataTable( - sortColumnIndex: _sortColumnIndex, - sortAscending: _isAscending, - columns: [ - DataColumn( - label: Text( - AppLocalizations.of(context)!.user_name, - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - )), - ), - onSort: (columnIndex, ascending) { - _sort( - (user) => - user.userName.toLowerCase(), - columnIndex, - ascending); - }, - ), - DataColumn( - label: Text( - AppLocalizations.of(context)!.email_id, - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - )), - ), - onSort: (columnIndex, ascending) { - _sort( - (user) => - user.emailId.toLowerCase(), - columnIndex, - ascending); - }, - ), - DataColumn( - label: Text( - AppLocalizations.of(context)!.reg_date, - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - )), - ), - onSort: (columnIndex, ascending) { - _sort( - (user) => DateFormat('dd/MM/yyyy') - .parse(user.registrationDate), - columnIndex, - ascending, - ); - }, - ), - DataColumn( - label: Text( - AppLocalizations.of(context)!.status, - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - )), - ), - onSort: (columnIndex, ascending) { - _sort( - (user) => user.status.toLowerCase(), - columnIndex, - ascending); - }, - ), - ], - rows: filteredUserData.isEmpty - ? [ - DataRow( - cells: List.generate( - 4, // Ensure it matches the number of DataColumns - (index) => DataCell( - index == 0 - ? Text( - AppLocalizations.of( - context)! - .no_result_found, - style: TextStyle( - fontFamily: context - .translate( - 'Roboto', - 'NotoKufi', - ), - fontStyle: FontStyle - .italic), - ) - : const Text( - ''), // Empty cells for other columns - placeholder: true, - ), - ), - ), - ] - : filteredUserData.map((user) { - return DataRow( - cells: [ - DataCell( - Text( - user.userName, - style: TextStyle( - fontFamily: - context.translate( - 'Roboto', - 'NotoKufi', - )), - ), - ), - DataCell(Text( - user.emailId, - style: TextStyle( - fontFamily: - context.translate( - 'Roboto', - 'NotoKufi', - )), - )), - DataCell(Text( - user.registrationDate, - style: TextStyle( - fontFamily: - context.translate( - 'Roboto', - 'NotoKufi', - )), - )), - DataCell( - DropdownButton( - value: user.status, - items: statusOptions.entries - .map((status) { - return DropdownMenuItem< - String>( - value: status.key, - child: Text( - status.value, - style: TextStyle( - fontFamily: - context.translate( - 'Roboto', - 'NotoKufi', - ), - color: getStatusColor( - status.key), - ), - ), - ); - }).toList(), - onChanged: (newStatus) { - print(user); - if (newStatus != null) { - _showConfirmationDialog( - user, - newStatus, - statusOptions[ - newStatus]!, - ); - } - }, - ), - ), - ], - ); - }).toList(), - ), + ); + }).toList(), + onChanged: (newStatus) { + print(user); + if (newStatus != null) { + _showConfirmationDialog( + user, + newStatus, + statusOptions[ + newStatus]!, + ); + } + }, ), ), - ], + ], + ); + }).toList(), + ), ), ), - ), + ], + ), + ), + ), ), ); } @@ -729,4 +735,4 @@ class User { required this.registrationDate, this.status = 'Pending', }); -} +} \ No newline at end of file diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/notification/notification.dart b/lib/presentation/routes/drawer_routes/Drawer Items/notification/notification.dart index 0f459b3e..d8057267 100644 --- a/lib/presentation/routes/drawer_routes/Drawer Items/notification/notification.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/notification/notification.dart @@ -286,6 +286,34 @@ class _NotificationPageState extends ConsumerState { {'title': AppLocalizations.of(context)!.notificationFavourites}, ]; + // final List> 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> 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( diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/AboutTheApp/getStarted.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/AboutTheApp/getStarted.dart index be46f83e..c6d2081d 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/AboutTheApp/getStarted.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/AboutTheApp/getStarted.dart @@ -179,7 +179,7 @@ class _GetStartedState extends ConsumerState { ), ), ), - SizedBox(height: 10), + // SizedBox(height: 10), // SizedBox( // width: MediaQuery.of(context).size.width, // height: MediaQuery.of(context).size.height * 0.36, @@ -188,51 +188,53 @@ class _GetStartedState extends ConsumerState { // fit: BoxFit.contain, // ), // ), - Padding(padding: const EdgeInsets.all(30.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - context.translate( - '1. Download the app from the App Store or Google Play Store.', - '1 .قم بتحميل التطبيق من متجر التطبيقات (Appstore) أو متجر جوجل بلاي (Google Play)..', + Padding( + padding: const EdgeInsets.all(30.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + context.translate( + '1. Download the app from the App Store or Google Play Store.', + '1 .قم بتحميل التطبيق من متجر التطبيقات (Appstore) أو متجر جوجل بلاي (Google Play)..', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme ? Colors.white : Colors.black54, + ), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: isDarkTheme ? Colors.white : Colors.black54, + SizedBox( + height: 20, ), - ), - SizedBox( - height: 20, - ), - Text( - context.translate( - '2. Log in to unlock advanced features or continue as a guest.', - '2 .قم بتسجيل الدخول لفتح الميزات المتقدمة أو الاستمرار كضيف.', + Text( + context.translate( + '2. Log in to unlock advanced features or continue as a guest.', + '2 .قم بتسجيل الدخول لفتح الميزات المتقدمة أو الاستمرار كضيف.', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme ? Colors.white : Colors.black54, + ), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: isDarkTheme ? Colors.white : Colors.black54, + SizedBox( + height: 20, ), - ), - SizedBox( - height: 20, - ), - Text( - context.translate( - '3. Navigate through categories, explore metrics, and bookmark essential information.', - '3 .تنقل عبر الفئات، واستكشف المقاييس، وقم بإضافة إشارة مرجعية إلى المعلومات الأساسية.', + Text( + context.translate( + '3. Navigate through categories, explore metrics, and bookmark essential information.', + '3 .تنقل عبر الفئات، واستكشف المقاييس، وقم بإضافة إشارة مرجعية إلى المعلومات الأساسية.', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme ? Colors.white : Colors.black54, + ), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: isDarkTheme ? Colors.white : Colors.black54, - ), - ), - ], - ),) + ], + ), + ) // SizedBox( // height: MediaQuery.of(context).size.height * 0.12, // ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/AppFeatures.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/AppFeatures.dart index 329add2f..63313eae 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/AppFeatures.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/AppFeatures.dart @@ -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 { ), ), ), - SizedBox(height: 20,), + // SizedBox(height: 20,), // SizedBox( // width: MediaQuery.of(context).size.width, // height: MediaQuery.of(context).size.height * 0.36, @@ -185,376 +184,391 @@ class _AppFeaturesState extends ConsumerState { // fit: BoxFit.contain, // ), // ), - Padding(padding: const EdgeInsets.all(30.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - context.translate('1. Comprehensive Statistics:', - '1. رؤى مستندة إلى البيانات '), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 7.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 6.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Colors.black, - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( - text: TextSpan( - text: context.translate( - 'Access detailed datasets across categories such as ', - 'الوصول إلى مجموعات بيانات تفصيلية عبر فئات مثل الاقتصاد، البيئة، الاجتماعية، وغيرها.', - ), - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - fontSize: 16, - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - children: [ - TextSpan( - text: context.translate( - 'Economy, Environment, Social, ', ''), - style: TextStyle( - fontWeight: FontWeight.bold, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - ), - TextSpan( - text: context.translate('and more.', ''), - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - fontSize: 16, - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - ), - ], - ), - ), - ), - ], - ), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - 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 - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), - ), - ], - ), - ], - ), - ), - SizedBox(height: 30), - Text( - context.translate( - '2. Drilldown Navigation:', '2. التنقل التفصيلي'), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 7.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - 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 - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), - ), - ], - ), - ], - ), - ), - SizedBox(height: 30), - Text( - context.translate('3. Interactive Visualizations:', - '3. التصورات التفاعلية:'), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 7.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - 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 - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), - ), - ], - ), - ], - ), - ), - SizedBox( - height: 30, - ), - Text( - context.translate('4. Secure User Access:', - '4. الوصول الآمن للمستخدم:'), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 7.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), - Expanded( - child: Text( - context.translate( - 'Available only to registered users whose accounts have been approved by an admin.', - 'متاح فقط للمستخدمين المسجلين الذين تمت الموافقة على حساباتهم من قبل المسؤول.', - ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), - ), // Space between bullet and text - - - ], - ), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - 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 - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), - ), - ], - ), - ], - ), - ), - SizedBox( - height: 30, - ), - Text( - context.translate('5. Profile Customization:', - '5. تخصيص الملف الشخصي:'), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 7.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), - Expanded( - child: Text( - context.translate( - 'Update your profile details, such as name, password, and region, to personalize your experience.', - 'قم بتحديث تفاصيل ملفك الشخصي، مثل الاسم وكلمة المرور والمنطقة، لتخصيص تجربتك.', - ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), - ), // Space between bullet and text - ], - ), - ], - ), - ), - ], - ),) + Padding( + padding: const EdgeInsets.all(30.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + context.translate('1. Comprehensive Statistics:', + '1. رؤى مستندة إلى البيانات '), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 7.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 6.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Colors.black, + ), + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: RichText( + text: TextSpan( + text: context.translate( + 'Access detailed datasets across categories such as ', + 'الوصول إلى مجموعات بيانات تفصيلية عبر فئات مثل الاقتصاد، البيئة، الاجتماعية، وغيرها.', + ), + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + fontSize: 16, + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + children: [ + TextSpan( + text: context.translate( + 'Economy, Environment, Social, ', + ''), + style: TextStyle( + fontWeight: FontWeight.bold, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: context.translate( + 'and more.', ''), + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + fontSize: 16, + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + ], + ), + ), + ), + ], + ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + 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 + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ), + ], + ), + ], + ), + ), + SizedBox(height: 30), + Text( + context.translate( + '2. Drilldown Navigation:', '2. التنقل التفصيلي'), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 7.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + 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 + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ), + ], + ), + ], + ), + ), + SizedBox(height: 30), + Text( + context.translate('3. Interactive Visualizations:', + '3. التصورات التفاعلية:'), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 7.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + 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 + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ), + ], + ), + ], + ), + ), + SizedBox( + height: 30, + ), + Text( + context.translate('4. Secure User Access:', + '4. الوصول الآمن للمستخدم:'), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 7.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + SizedBox(width: 8), + Expanded( + child: Text( + context.translate( + 'Available only to registered users whose accounts have been approved by an admin.', + 'متاح فقط للمستخدمين المسجلين الذين تمت الموافقة على حساباتهم من قبل المسؤول.', + ), + textAlign: + TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ), // Space between bullet and text + ], + ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + 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 + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ), + ], + ), + ], + ), + ), + SizedBox( + height: 30, + ), + Text( + context.translate('5. Profile Customization:', + '5. تخصيص الملف الشخصي:'), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 7.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + SizedBox(width: 8), + Expanded( + child: Text( + context.translate( + 'Update your profile details, such as name, password, and region, to personalize your experience.', + 'قم بتحديث تفاصيل ملفك الشخصي، مثل الاسم وكلمة المرور والمنطقة، لتخصيص تجربتك.', + ), + textAlign: + TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ), // Space between bullet and text + ], + ), + ], + ), + ), + ], + ), + ) ], ), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/ChangeMyPassword.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/ChangeMyPassword.dart index 095026d5..307491d6 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/ChangeMyPassword.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/ChangeMyPassword.dart @@ -182,491 +182,505 @@ class _ChangeMyPasswordState extends ConsumerState { ), ), ), - 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, - // ), - ), - Padding(padding: const EdgeInsets.all(30.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - context.translate( - 'Changing your password helps keep your account secure. Follow these steps to update your password:', - 'يُساعد تغيير كلمة المرور في الحفاظ على أمان حسابك. اتبع هذه الخطوات لتحديث كلمة مرور', - ), - style: TextStyle( - color: isDarkTheme ? Colors.white : Color(0xFF898C81)), - ), - SizedBox(height: 12), - Text( - context.translate( - 'Steps to Change Password', 'خطوات تغيير كلمة المرور '), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', + // SizedBox( + // height: 20, + // + // ), + Padding( + padding: const EdgeInsets.all(30.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + context.translate( + 'Changing your password helps keep your account secure. Follow these steps to update your password:', + 'يُساعد تغيير كلمة المرور في الحفاظ على أمان حسابك. اتبع هذه الخطوات لتحديث كلمة مرور', + ), + style: TextStyle( + color: + isDarkTheme ? Colors.white : Color(0xFF898C81)), ), - fontSize: 22, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Text( - context.translate( - '1. Access the Change Password Page:', - '1. الدخول إلى صفحة تغيير كلمة المرور:', - ), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', + SizedBox(height: 12), + Text( + context.translate('Steps to Change Password', + 'خطوات تغيير كلمة المرور '), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 22, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, + SizedBox(height: 8), + Text( + context.translate( + '1. Access the Change Password Page:', + '1. الدخول إلى صفحة تغيير كلمة المرور:', + ), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Column( children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( - text: TextSpan( - text: context.translate( - 'From the Profile page, tap on the ', - 'من صفحة الملف الشخصي، انقر على رابط ', - ), - style: TextStyle( - fontSize: 16, + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, color: isDarkTheme ? Colors.white - : Color(0xFF898C81), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), + : Color(0xFF414042), ), - children: [ - TextSpan( + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: RichText( + text: TextSpan( text: context.translate( - '"Change Password"', - '"تغيير كلمة المرور" ', + 'From the Profile page, tap on the ', + 'من صفحة الملف الشخصي، انقر على رابط ', ), style: TextStyle( - fontWeight: FontWeight.w600, + fontSize: 16, color: isDarkTheme ? Colors.white - : Color(0xFF414042), + : Color(0xFF898C81), fontFamily: context.translate( 'Roboto', 'NotoKufi', ), ), + children: [ + TextSpan( + text: context.translate( + '"Change Password"', + '"تغيير كلمة المرور" ', + ), + style: TextStyle( + fontWeight: FontWeight.w600, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: context.translate( + ' link at the bottom.', + 'في الأسفل.', + ), + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ], ), - TextSpan( - text: context.translate( - ' link at the bottom.', - 'في الأسفل.', - ), - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), - ], + ), ), - ), + ], ), ], ), - ], - ), - ), - SizedBox(height: 8), - Text( - context.translate( - '2. Enter Old Password:', - '2. إدخال كلمة المرور القديمة:', - ), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: Text( - context.translate( - 'Enter your current password in the first field.', - 'أدخل كلمة المرور الحالية في الحقل الأول.', - ), - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - ), - ), - ], + SizedBox(height: 8), + Text( + context.translate( + '2. Enter Old Password:', + '2. إدخال كلمة المرور القديمة:', + ), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, ), - ], - ), - ), - SizedBox(height: 8), - Text( - context.translate( - '3. Set a New Password:', - '3. تعيين كلمة مرور جديدة:', - ), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Column( children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - 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 - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), - ), - ], - ), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - 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 - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), - ), - ], - ), - ], - ), - ), - SizedBox(height: 8), - Text( - context.translate( - '4. Password Requirements:', - '4. متطلبات كلمة المرور:', - ), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - 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 - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), - ), - ], - ), - ], - ), - ), - SizedBox(height: 8), - Text( - context.translate( - '5. Save Your Password:', '5. حفظ كلمة المرور '), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( - text: TextSpan( - text: context.translate( - 'Tap the ', 'انقرعلى زر '), - style: TextStyle( - fontSize: 16, - // color: Color(0xFF898C81), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, color: isDarkTheme ? Colors.white - : Color(0xFF898C81), + : Color(0xFF414042), ), - children: [ - TextSpan( - text: context.translate('Save ', '"حفظ".'), + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: Text( + context.translate( + 'Enter your current password in the first field.', + 'أدخل كلمة المرور الحالية في الحقل الأول.', + ), + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + textAlign: + TextAlign.justify, // Align the text + softWrap: true, + ), + ), + ], + ), + ], + ), + ), + SizedBox(height: 8), + Text( + context.translate( + '3. Set a New Password:', + '3. تعيين كلمة مرور جديدة:', + ), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + 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 + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ), + ], + ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + 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 + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ), + ], + ), + ], + ), + ), + SizedBox(height: 8), + Text( + context.translate( + '4. Password Requirements:', + '4. متطلبات كلمة المرور:', + ), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + 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 + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ), + ], + ), + ], + ), + ), + SizedBox(height: 8), + Text( + context.translate( + '5. Save Your Password:', '5. حفظ كلمة المرور '), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: RichText( + text: TextSpan( + text: context.translate( + 'Tap the ', 'انقرعلى زر '), style: TextStyle( - fontWeight: FontWeight.w600, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), + fontSize: 16, + // color: Color(0xFF898C81), fontFamily: context.translate( 'Roboto', 'NotoKufi', ), - ), - ), - TextSpan( - text: context.translate('button', ''), - style: TextStyle( color: isDarkTheme ? Colors.white : Color(0xFF898C81), ), + children: [ + TextSpan( + text: context.translate( + 'Save ', '"حفظ".'), + style: TextStyle( + fontWeight: FontWeight.w600, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: context.translate('button', ''), + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ], ), - ], + ), ), - ), + ], + ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + 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 + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), + ), + ], ), ], ), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - 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 - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), - ), - ], - ), - ], - ), - ), - SizedBox(height: 8), - Text( - context.translate('6. Re-Login:', '6. إعادة تسجيل الدخول'), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, + SizedBox(height: 8), + Text( + context.translate( + '6. Re-Login:', '6. إعادة تسجيل الدخول'), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Column( children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - 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', - 'قم بتسجيل الدخول مرة أخرى باستخدام كلمة المرور الجديدة للاستمرار في استخدام التطبيق.', + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + 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 + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + ), + ), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - ), - ), + ], ), ], ), - ], - ), + ), + ], ), - ], - ),) + ) ], ), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/EditMyProfile.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/EditMyProfile.dart index 7b528dd3..18faa710 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/EditMyProfile.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/EditMyProfile.dart @@ -180,548 +180,78 @@ class _EditMyProfileState extends ConsumerState { ), ), ), - 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, - // ), - ), - Padding(padding: const EdgeInsets.all(30.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - context.translate( - 'Editing your profile allows you to update specific information while ensuring that critical details remain secure. Follow the steps below to update your profile:', - 'يتيح لك تعديل ملف التعريف الخاص بك بتحديث معلومات معينة مع ضمان أن تبقى البيانات الحساسة آمنة. اتبع الخطوات التالية لتحديث ملفك الشخصي:', - ), - style: TextStyle( - color: isDarkTheme ? Colors.white : Color(0xFF898C81)), - ), - SizedBox(height: 12), - Text( - context.translate( - 'Steps to Edit Profile', 'خطوات تعديل الملف الشخصي '), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', + // SizedBox( + // height: 10, + // ), + Padding( + padding: const EdgeInsets.all(30.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + context.translate( + 'Editing your profile allows you to update specific information while ensuring that critical details remain secure. Follow the steps below to update your profile:', + 'يتيح لك تعديل ملف التعريف الخاص بك بتحديث معلومات معينة مع ضمان أن تبقى البيانات الحساسة آمنة. اتبع الخطوات التالية لتحديث ملفك الشخصي:', ), - fontSize: 22, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, + style: TextStyle( + color: + isDarkTheme ? Colors.white : Color(0xFF898C81)), ), - ), - SizedBox(height: 8), - Text( - context.translate( - '1. Access the Profile Page:', - '1. الوصول إلى صفحة الملف الشخصي:', - ), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', + SizedBox(height: 12), + Text( + context.translate('Steps to Edit Profile', + 'خطوات تعديل الملف الشخصي '), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 22, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( - text: TextSpan( - text: context.translate('Tap on the ', - 'انقر على خيار "الملف الشخصي" من شريط التنقل في الزاوية العلوية اليسرى من الشاشة.'), - style: TextStyle( - fontSize: 16, - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - children: [ - TextSpan( - text: context.translate('"Profile"', ''), - style: TextStyle( - fontWeight: FontWeight.w600, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - ), - TextSpan( - text: context.translate( - ' option from the navigation bar at the top left corner of the screen.', - '')) - ], - ), - )), - ], - ), - ], - ), - ), - SizedBox(height: 8), - Text( - context.translate( - '2. Editable Fields:', '2. الحقول القابلة للتعديل:'), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', + SizedBox(height: 8), + Text( + context.translate( + '1. Access the Profile Page:', + '1. الوصول إلى صفحة الملف الشخصي:', + ), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Colors.black, - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( - text: TextSpan( - style: TextStyle( - fontSize: 16, - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - children: [ - TextSpan( - text: context.translate( - 'Full Name:', 'الاسم الكامل: '), - style: TextStyle( - fontWeight: FontWeight.w600, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - ), - TextSpan( - text: context.translate( - ' Tap the text box to enter your name (up to 40 alphanumeric characters).', - 'اضغط على مربع النص لإدخال اسمك (حتى 40 حرفًا أبجديًا رقميًا).', - ), - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81))) - ], - ), - )), - ], - ), - SizedBox(height: 8), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Colors.black, - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( - text: TextSpan( - style: TextStyle( - fontSize: 16, - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - children: [ - TextSpan( - text: context.translate( - 'Date of Birth: ', 'تاريخ الميلاد: '), - style: TextStyle( - fontWeight: FontWeight.w600, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - ), - TextSpan( - text: context.translate( - ' Use the calendar dropdown to select your date of birth.', - 'استخدم القائمة المنسدلة لاختيار تاريخ ميلادك.', - ), - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81)), - ) - ], - ), - )), - ], - ), - SizedBox(height: 8), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Colors.black, - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( - text: TextSpan( - style: TextStyle( - fontSize: 16, - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - children: [ - TextSpan( - text: context.translate( - 'Country/Region: ', - 'البلد/المنطقة:', - ), - style: TextStyle( - fontWeight: FontWeight.w600, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - ), - TextSpan( - text: context.translate( - ' Choose your current location from the dropdown menu.', - 'اختر موقعك الحالي من القائمة المنسدلة.', - ), - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81)), - ), - ], - ), - )), - ], - ), - SizedBox(height: 8), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon(Icons.brightness_1, + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, size: 5, - color: - isDarkTheme ? Colors.white : Colors.black), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( - text: TextSpan( - style: TextStyle( - fontSize: 16, - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - children: [ - TextSpan( - text: context.translate( - 'User Image: ', 'الصورة الشخصية:'), - style: TextStyle( - fontWeight: FontWeight.w600, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - ), - TextSpan( - text: context.translate( - 'Tap on the avatar icon to upload or change your profile picture.', - 'اضغط على أيقونة رمزالصورة لتحميل أو تغيير صورة الملف الشخصي.', - ), - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81)), - ), - ], - ), - )), - ], - ), - ], - ), - ), - SizedBox(height: 8), - Text( - context.translate('3. Non-Editable Fields:', - '3. الحقول غير القابلة للتعديل:'), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon(Icons.brightness_1, - size: 5, - color: - isDarkTheme ? Colors.white : Colors.black), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( - text: TextSpan( - style: TextStyle( - fontSize: 16, - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - children: [ - TextSpan( - text: context.translate('Username ', - 'اسم المستخدم وعنوان البريد الإلكتروني: '), - style: TextStyle( - fontWeight: FontWeight.w600, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - ), - TextSpan( - text: context.translate('and ', ''), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - ), - TextSpan( - text: context.translate('Email Id: ', ''), - style: TextStyle( - fontWeight: FontWeight.w600, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - ), - ), - TextSpan( - text: context.translate( - 'These fields cannot be edited to ensure the integrity of your account.', - 'لا يمكن تعديل هذين الحقلين لضمان سلامة حسابك.', - ), - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81)), - ), - ], - ), - )), - ], - ), - ], - ), - ), - SizedBox(height: 8), - Text( - context.translate('4. Agree to Terms and Conditions:', - '4. الموافقة على الشروط والأحكام:'), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Colors.black, - ), - ), // Bullet point - 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.', - 'تأكد من تحديد خانة "أوافق على الشروط والأحكام وسياسة الخصوصية" قبل حفظ التغييرات.', + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81)), - ), - ), - ], - ), - ], - ), - ), - SizedBox(height: 8), - Text( - context.translate( - '5. Save Your Changes:', '5. حفظ التغييرات:'), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: RichText( text: TextSpan( - text: context.translate( - 'Tap the ', 'اضغط على زر '), + text: context.translate('Tap on the ', + 'انقر على خيار "الملف الشخصي" من شريط التنقل في الزاوية العلوية اليسرى من الشاشة.'), style: TextStyle( fontSize: 16, color: isDarkTheme @@ -734,7 +264,141 @@ class _EditMyProfileState extends ConsumerState { ), children: [ TextSpan( - text: context.translate('Save', '"حفظ" '), + text: + context.translate('"Profile"', ''), + style: TextStyle( + fontWeight: FontWeight.w600, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: context.translate( + ' option from the navigation bar at the top left corner of the screen.', + '')) + ], + ), + )), + ], + ), + ], + ), + ), + SizedBox(height: 8), + Text( + context.translate('2. Editable Fields:', + '2. الحقول القابلة للتعديل:'), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Colors.black, + ), + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: RichText( + text: TextSpan( + style: TextStyle( + fontSize: 16, + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + children: [ + TextSpan( + text: context.translate( + 'Full Name:', 'الاسم الكامل: '), + style: TextStyle( + fontWeight: FontWeight.w600, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: context.translate( + ' Tap the text box to enter your name (up to 40 alphanumeric characters).', + 'اضغط على مربع النص لإدخال اسمك (حتى 40 حرفًا أبجديًا رقميًا).', + ), + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81))) + ], + ), + )), + ], + ), + SizedBox(height: 8), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Colors.black, + ), + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: RichText( + text: TextSpan( + style: TextStyle( + fontSize: 16, + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + children: [ + TextSpan( + text: context.translate( + 'Date of Birth: ', + 'تاريخ الميلاد: '), style: TextStyle( fontWeight: FontWeight.w600, color: isDarkTheme @@ -748,8 +412,8 @@ class _EditMyProfileState extends ConsumerState { ), TextSpan( text: context.translate( - ' button at the bottom of the screen.', - 'أسفل الشاشة.', + ' Use the calendar dropdown to select your date of birth.', + 'استخدم القائمة المنسدلة لاختيار تاريخ ميلادك.', ), style: TextStyle( color: isDarkTheme @@ -758,61 +422,28 @@ class _EditMyProfileState extends ConsumerState { ) ], ), - ), - ), - ], - ), - SizedBox(height: 8), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - 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.”', - 'ستظهر نافذة تأكيد برسالة:"هل أنت متأكد أنك تريد حفظ هذه الصفحة؟ بمجرد الحفظ، لن تتمكن من تغيير اسمك أو تاريخ ميلادك."', + )), + ], + ), + SizedBox(height: 8), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Colors.black, ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81)), - ), - ), - ], - ), - SizedBox(height: 8), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: RichText( text: TextSpan( - text: context.translate('Select ', - 'اختر "تأكيد" لحفظ التغييرات أو "إلغاء" للرجوع.'), style: TextStyle( fontSize: 16, color: isDarkTheme @@ -825,7 +456,10 @@ class _EditMyProfileState extends ConsumerState { ), children: [ TextSpan( - text: context.translate('Confirm', ''), + text: context.translate( + 'Country/Region: ', + 'البلد/المنطقة:', + ), style: TextStyle( fontWeight: FontWeight.w600, color: isDarkTheme @@ -839,20 +473,50 @@ class _EditMyProfileState extends ConsumerState { ), TextSpan( text: context.translate( - ' to save the changes', ''), - style: TextStyle( - fontSize: 16, - color: isDarkTheme - ? Colors.white - : Color(0xFF898C81), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), + ' Choose your current location from the dropdown menu.', + 'اختر موقعك الحالي من القائمة المنسدلة.', ), + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), ), + ], + ), + )), + ], + ), + SizedBox(height: 8), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon(Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Colors.black), + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: RichText( + text: TextSpan( + style: TextStyle( + fontSize: 16, + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + children: [ TextSpan( - text: context.translate(' Cancel', ''), + text: context.translate( + 'User Image: ', 'الصورة الشخصية:'), style: TextStyle( fontWeight: FontWeight.w600, color: isDarkTheme @@ -865,30 +529,391 @@ class _EditMyProfileState extends ConsumerState { ), ), TextSpan( - text: context.translate(' to go back.', ''), + text: context.translate( + 'Tap on the avatar icon to upload or change your profile picture.', + 'اضغط على أيقونة رمزالصورة لتحميل أو تغيير صورة الملف الشخصي.', + ), style: TextStyle( - fontSize: 16, + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), + ), + ], + ), + )), + ], + ), + ], + ), + ), + SizedBox(height: 8), + Text( + context.translate('3. Non-Editable Fields:', + '3. الحقول غير القابلة للتعديل:'), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon(Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Colors.black), + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: RichText( + text: TextSpan( + style: TextStyle( + fontSize: 16, + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + children: [ + TextSpan( + text: context.translate('Username ', + 'اسم المستخدم وعنوان البريد الإلكتروني: '), + style: TextStyle( + fontWeight: FontWeight.w600, color: isDarkTheme ? Colors.white - : Color(0xFF898C81), + : Color(0xFF414042), fontFamily: context.translate( 'Roboto', 'NotoKufi', ), ), ), + TextSpan( + text: context.translate('and ', ''), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: context.translate( + 'Email Id: ', ''), + style: TextStyle( + fontWeight: FontWeight.w600, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: context.translate( + 'These fields cannot be edited to ensure the integrity of your account.', + 'لا يمكن تعديل هذين الحقلين لضمان سلامة حسابك.', + ), + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), + ), ], ), - ), - ), - ], - ), - ], + )), + ], + ), + ], + ), ), - ), - ], - ),) - + SizedBox(height: 8), + Text( + context.translate('4. Agree to Terms and Conditions:', + '4. الموافقة على الشروط والأحكام:'), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Colors.black, + ), + ), // Bullet point + 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 + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), + ), + ), + ], + ), + ], + ), + ), + SizedBox(height: 8), + Text( + context.translate( + '5. Save Your Changes:', '5. حفظ التغييرات:'), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: RichText( + text: TextSpan( + text: context.translate( + 'Tap the ', 'اضغط على زر '), + style: TextStyle( + fontSize: 16, + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + children: [ + TextSpan( + text: context.translate( + 'Save', '"حفظ" '), + style: TextStyle( + fontWeight: FontWeight.w600, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: context.translate( + ' button at the bottom of the screen.', + 'أسفل الشاشة.', + ), + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), + ) + ], + ), + ), + ), + ], + ), + SizedBox(height: 8), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + 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 + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), + ), + ), + ], + ), + SizedBox(height: 8), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + SizedBox( + width: 8), // Space between bullet and text + Expanded( + child: RichText( + text: TextSpan( + text: context.translate('Select ', + 'اختر "تأكيد" لحفظ التغييرات أو "إلغاء" للرجوع.'), + style: TextStyle( + fontSize: 16, + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + children: [ + TextSpan( + text: + context.translate('Confirm', ''), + style: TextStyle( + fontWeight: FontWeight.w600, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: context.translate( + ' to save the changes', ''), + style: TextStyle( + fontSize: 16, + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: + context.translate(' Cancel', ''), + style: TextStyle( + fontWeight: FontWeight.w600, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: context.translate( + ' to go back.', ''), + style: TextStyle( + fontSize: 16, + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + ], + ), + ), + ), + ], + ), + ], + ), + ), + ], + ), + ) ], ), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/howUseTheApp.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/howUseTheApp.dart index ed9d8209..98b337bb 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/howUseTheApp.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/howUseTheApp.dart @@ -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,197 +183,204 @@ class _HowUseTheAppState extends ConsumerState { ), ), ), - 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( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - context.translate( - '1. Registration and Approval:', - '1. التسجيل والموافقة:', - ), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + context.translate( + '1. Registration and Approval:', + '1. التسجيل والموافقة:', ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Color(0xFF414042), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: Text( - context.translate( - 'Sign up for the app and wait for admin approval.', - 'قم بالتسجيل في التطبيق وانتظر الموافقة من الإدارة.', + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: - isDarkTheme ? Colors.white : Color(0xFF898C81)), - ), - ), - ], - ), - SizedBox(height: 8), - Text( - context.translate( - '2. Login and Navigation:', - '2. تسجيل الدخول والتصفح:', - ), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: Text( - context.translate( - 'Once approved, log in to access the app. Navigate through the categories on the home screen.', - 'بعد الموافقة، قم بتسجيل الدخول للوصول إلى التطبيق. تصفح الفئات المختلفة على الشاشة الرئيسية.', + ), // Bullet point + SizedBox(width: 8), // Space between bullet and text + Expanded( + child: Text( + context.translate( + 'Sign up for the app and wait for admin approval.', + 'قم بالتسجيل في التطبيق وانتظر الموافقة من الإدارة.', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: - isDarkTheme ? Colors.white : Color(0xFF898C81)), ), - ), - ], - ), - SizedBox(height: 8), - Text( - context.translate( - '3. Access Data:', - '3. الوصول إلى البيانات:', + ], ), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', + SizedBox(height: 8), + Text( + context.translate( + '2. Login and Navigation:', + '2. تسجيل الدخول والتصفح:', ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Color(0xFF414042), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: Text( - context.translate( - 'Drill down into specific categories like "Economy" or "Environment" to view detailed KPIs and visual insights.', - 'قم بالتعمق في الفئات المحددة مثل "الاقتصاد" أو "البيئة" لعرض مؤشرات الأداء الرئيسية والرؤى المرئية بالتفصيل.', + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: - isDarkTheme ? Colors.white : Color(0xFF898C81)), - ), - ), - ], - ), - SizedBox(height: 8), - Text( - context.translate( - '4. Bookmark Metrics:', - '4. وضع إشارة مرجعية للمقاييس:', - ), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, - ), - ), - SizedBox(height: 8), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: Text( - context.translate( - 'Save important statistics for easy reference.', - 'احفظ الإحصائيات المهمة للرجوع إليها بسهولة.', + ), // Bullet point + SizedBox(width: 8), // Space between bullet and text + Expanded( + child: Text( + context.translate( + 'Once approved, log in to access the app. Navigate through the categories on the home screen.', + 'بعد الموافقة، قم بتسجيل الدخول للوصول إلى التطبيق. تصفح الفئات المختلفة على الشاشة الرئيسية.', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: - isDarkTheme ? Colors.white : Color(0xFF898C81)), ), + ], + ), + SizedBox(height: 8), + Text( + context.translate( + '3. Access Data:', + '3. الوصول إلى البيانات:', ), - ], - ), - ], - ),) + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + SizedBox(width: 8), // Space between bullet and text + Expanded( + child: Text( + context.translate( + 'Drill down into specific categories like "Economy" or "Environment" to view detailed KPIs and visual insights.', + 'قم بالتعمق في الفئات المحددة مثل "الاقتصاد" أو "البيئة" لعرض مؤشرات الأداء الرئيسية والرؤى المرئية بالتفصيل.', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), + ), + ), + ], + ), + SizedBox(height: 8), + Text( + context.translate( + '4. Bookmark Metrics:', + '4. وضع إشارة مرجعية للمقاييس:', + ), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 8), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + SizedBox(width: 8), // Space between bullet and text + Expanded( + child: Text( + context.translate( + 'Save important statistics for easy reference.', + 'احفظ الإحصائيات المهمة للرجوع إليها بسهولة.', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), + ), + ), + ], + ), + ], + ), + ) ], ), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/purpose.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/purpose.dart index f40fdd86..e9b685af 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/purpose.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/purpose.dart @@ -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,133 +183,139 @@ class _PurposeState extends ConsumerState { ), ), ), - 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, - // ), - ), - Padding(padding: const EdgeInsets.all(30.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: RichText( - text: TextSpan( - text: context.translate( - 'Provide ', - 'توفير الإحصائيات الرسمية لدولة الإمارات بشكل سهل الوصول.', - ), - style: TextStyle( - color: - isDarkTheme ? Colors.white : Color(0xFF898C81), - fontSize: 16, - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', + // SizedBox( + // height: 10, + // + // ), + Padding( + padding: const EdgeInsets.all(30.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + SizedBox(width: 8), // Space between bullet and text + Expanded( + child: RichText( + text: TextSpan( + text: context.translate( + 'Provide ', + 'توفير الإحصائيات الرسمية لدولة الإمارات بشكل سهل الوصول.', ), - ), - children: [ - TextSpan( - text: - context.translate('official statistics ', ''), - style: TextStyle( - fontWeight: FontWeight.bold, - color: isDarkTheme - ? Colors.white - : Color(0xFF414042), - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ), + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81), + fontSize: 16, + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', ), ), - TextSpan( - text: context.translate( - 'on the UAE in an accessible format.', ''), - style: TextStyle( + children: [ + TextSpan( + text: context.translate( + 'official statistics ', ''), + style: TextStyle( + fontWeight: FontWeight.bold, color: isDarkTheme ? Colors.white - : Color(0xFF898C81)), - ), - ], + : Color(0xFF414042), + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + ), + ), + TextSpan( + text: context.translate( + 'on the UAE in an accessible format.', + ''), + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), + ), + ], + ), ), ), - ), - ], - ), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: Text( - context.translate( - 'Support decision-making and research with reliable, up-to-date data.', - 'دعم اتخاذ القرارات والبحوث من خلال بيانات موثوقة ومحدثة.', + ], + ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: - isDarkTheme ? Colors.white : Color(0xFF898C81)), - ), - ), - ], - ), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: Text( - context.translate( - 'Enable users to interact with data visually through graphs and metrics.', - 'تمكين المستخدمين من التفاعل مع البيانات بصريًا من خلال الرسوم البيانية والمقاييس.', + ), // Bullet point + SizedBox(width: 8), // Space between bullet and text + Expanded( + child: Text( + context.translate( + 'Support decision-making and research with reliable, up-to-date data.', + 'دعم اتخاذ القرارات والبحوث من خلال بيانات موثوقة ومحدثة.', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: - isDarkTheme ? Colors.white : Color(0xFF898C81)), ), - ), - ], - ), - ], - ),) - + ], + ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + SizedBox(width: 8), // Space between bullet and text + Expanded( + child: Text( + context.translate( + 'Enable users to interact with data visually through graphs and metrics.', + 'تمكين المستخدمين من التفاعل مع البيانات بصريًا من خلال الرسوم البيانية والمقاييس.', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), + ), + ), + ], + ), + ], + ), + ) ], ), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/stayUpdate.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/stayUpdate.dart index dea5d00b..bb4c976a 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/stayUpdate.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/stayUpdate.dart @@ -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 { ), ), ), - 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 { textAlign: TextAlign.justify, // Align the text softWrap: true, style: TextStyle( - color: - isDarkTheme ? Colors.white : Color(0xFF898C81)), + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), ), ), ], ), ), - ], ), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/useTheApp.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/useTheApp.dart index 249bdfff..e338dcaa 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/useTheApp.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/useTheApp.dart @@ -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 { ), ), ), - SizedBox(height: 10), + // SizedBox(height: 10), // SizedBox( // width: MediaQuery.of(context).size.width, // height: MediaQuery.of(context).size.height * 0.36, @@ -192,107 +193,116 @@ class _WhoUseTheAppState extends ConsumerState { // ), Padding( padding: const EdgeInsets.all(30.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - context.translate( - 'This app is intended for:', 'يستهدف هذا التطبيق:'), - style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + context.translate( + 'This app is intended for:', 'يستهدف هذا التطبيق:'), + style: TextStyle( + fontFamily: context.translate( + 'Roboto', + 'NotoKufi', + ), + fontSize: 16, + color: isDarkTheme ? Colors.white : Color(0xFF414042), + fontWeight: FontWeight.w600, ), - fontSize: 16, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - fontWeight: FontWeight.w600, ), - ), - SizedBox(height: 8), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: Text( - context.translate( - 'Government officials requiring UAE statistics for decision-making.', - 'المسؤولين الحكوميين الذين يحتاجون إلى إحصاءات دولة الإمارات العربية المتحدة لاتخاذ القرارات.', + SizedBox(height: 8), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: - isDarkTheme ? Colors.white : Color(0xFF898C81)), - ), - ), - ], - ), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: Text( - context.translate( - 'Business professionals and researchers analyzing market trends.', - 'المتخصصين في مجال الأعمال والباحثين الذين يقومون بتحليل اتجاهات السوق.', + ), // Bullet point + SizedBox(width: 8), // Space between bullet and text + Expanded( + child: Text( + context.translate( + 'Government officials requiring UAE statistics for decision-making.', + 'المسؤولين الحكوميين الذين يحتاجون إلى إحصاءات دولة الإمارات العربية المتحدة لاتخاذ القرارات.', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: - isDarkTheme ? Colors.white : Color(0xFF898C81)), ), - ), - ], - ), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Icon( - Icons.brightness_1, - size: 5, - color: isDarkTheme ? Colors.white : Color(0xFF414042), - ), - ), // Bullet point - SizedBox(width: 8), // Space between bullet and text - Expanded( - child: Text( - context.translate( - 'Students and educators needing reliable data for study and teaching.', - 'الطلاب والمعلمين الذين يحتاجون إلى بيانات موثوقة للدراسة والتعليم.', + ], + ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + SizedBox(width: 8), // Space between bullet and text + Expanded( + child: Text( + context.translate( + 'Business professionals and researchers analyzing market trends.', + 'المتخصصين في مجال الأعمال والباحثين الذين يقومون بتحليل اتجاهات السوق.', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), ), - textAlign: TextAlign.justify, // Align the text - softWrap: true, - style: TextStyle( - color: - isDarkTheme ? Colors.white : Color(0xFF898C81)), ), - ), - ], - ), - ], - ),) - + ], + ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Icon( + Icons.brightness_1, + size: 5, + color: isDarkTheme + ? Colors.white + : Color(0xFF414042), + ), + ), // Bullet point + SizedBox(width: 8), // Space between bullet and text + Expanded( + child: Text( + context.translate( + 'Students and educators needing reliable data for study and teaching.', + 'الطلاب والمعلمين الذين يحتاجون إلى بيانات موثوقة للدراسة والتعليم.', + ), + textAlign: TextAlign.justify, // Align the text + softWrap: true, + style: TextStyle( + color: isDarkTheme + ? Colors.white + : Color(0xFF898C81)), + ), + ), + ], + ), + ], + ), + ) ], ), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/aboutApp.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/aboutApp.dart index 6df33714..835da171 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/aboutApp.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/aboutApp.dart @@ -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 { 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 { ), 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 { 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 { ), 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 ), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/faq_page.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/faq_page.dart index d4d0bace..d728abe8 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/faq_page.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/faq_page.dart @@ -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 { 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 { '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 { 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; diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/features.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/features.dart index f82f2307..34ec1b92 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/features.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/features.dart @@ -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 { @@ -136,7 +137,7 @@ class _UsingFeaturesState extends ConsumerState { 'Roboto', 'NotoKufi', ), - color: isDarkTheme ? Colors.white : Colors.black, + color: isDarkTheme ? Colors.white : Colors.black, fontWeight: FontWeight.w500, // fontWeight: FontWeight.w500, ), @@ -173,7 +174,13 @@ class _UsingFeaturesState extends ConsumerState { ), 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 { ), 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 { ), 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 { ), 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 { ), 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 { ), 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 { ), 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 ), ), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/userguide.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/userguide.dart index b5638e72..49fd9e8d 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/userguide.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/userguide.dart @@ -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 { { '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 { initState() { super.initState(); print('123456789'); - } @override @@ -107,14 +107,12 @@ class _UserguideState extends ConsumerState { 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, - style: TextStyle( - color: isDarkTheme ? Colors.white : Color(0xFF414042) - ) - ), + title: Text(AppLocalizations.of(context)!.guide_title, + style: TextStyle( + color: isDarkTheme ? Colors.white : Color(0xFF414042))), body: Container( color: isDarkTheme ? Color(0xFF111111) : Colors.white, padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20), @@ -181,7 +179,7 @@ class _HoverContainerState extends ConsumerState { width: screenWidth * 0.30, margin: EdgeInsets.all(1), decoration: BoxDecoration( - color: isDarkTheme ? Color(0xFF111111) : Colors.white, + color: isDarkTheme ? Color(0xFF111111) : Colors.white, borderRadius: BorderRadius.circular(10), boxShadow: isHovered diff --git a/lib/presentation/routes/drawer_routes/custom_drawer_routes.dart b/lib/presentation/routes/drawer_routes/custom_drawer_routes.dart index c8eb3a78..fd64d26f 100644 --- a/lib/presentation/routes/drawer_routes/custom_drawer_routes.dart +++ b/lib/presentation/routes/drawer_routes/custom_drawer_routes.dart @@ -713,7 +713,7 @@ class _BaseScaffoldState extends ConsumerState { 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 { : 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 { 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 { // : 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 { 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 { ), ), ), - onTap: () => _showLogoutConfirmationDialog(context), + onTap: () => _showLogoutConfirmationDialog(context,isDarkTheme), ), if (userId == 'guest') ListTile( @@ -1477,22 +1486,22 @@ class _BaseScaffoldState extends ConsumerState { ])), 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 { 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 { 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 { 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 { 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 { ), ], 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 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), diff --git a/lib/presentation/routes/drawer_routes/feedback_route.dart b/lib/presentation/routes/drawer_routes/feedback_route.dart index 02cc918e..494984d3 100644 --- a/lib/presentation/routes/drawer_routes/feedback_route.dart +++ b/lib/presentation/routes/drawer_routes/feedback_route.dart @@ -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, + ), ); } } diff --git a/pubspec.yaml b/pubspec.yaml index 5659dff6..2bc3372a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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