diff --git a/android/app/.cxx/Debug/6k676t62/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/6k676t62/arm64-v8a/configure_fingerprint.bin index d9056f6c..15b9d3d1 100644 --- a/android/app/.cxx/Debug/6k676t62/arm64-v8a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/6k676t62/arm64-v8a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Loge c aC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  ̲2b +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  ̲2b ` -^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build.json  2 ز2g +^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build.json  2 ز2g e -cC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build_mini.json  2 粊2T +cC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build_mini.json  2 粊2T R -PC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja  2 Ʊ2X +PC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja  2 Ʊ2X V -TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja.txt  2] +TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja.txt  2] [ -YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build_file_index.txt  2 S 2^ +YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build_file_index.txt  2 S 2^ \ -ZC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json  2b +ZC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json  2b ` -^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json.bin  2 h +^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json.bin  2 h f -dC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\metadata_generation_command.txt  2 +dC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\metadata_generation_command.txt  2  벊2[ Y -WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\prefab_config.json  2  ( 첊2` +WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\prefab_config.json  2  ( 첊2` ^ -\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\symbol_folder_index.txt  2  S 2W +\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\symbol_folder_index.txt  2  S 2W U -SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file +SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/6k676t62/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/6k676t62/armeabi-v7a/configure_fingerprint.bin index 771596e7..b6af0154 100644 --- a/android/app/.cxx/Debug/6k676t62/armeabi-v7a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/6k676t62/armeabi-v7a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logg e cC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ⼓2  啋2d +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  啋2d b -`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build.json  ⼓2 땋2i +`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build.json  2 땋2i g -eC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build_mini.json  ⼓2 2V +eC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build_mini.json  2 2V T -RC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja  ⼓2 ͓2Z +RC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja  2 ͓2Z X -VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja.txt  ⼓2_ +VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja.txt  2_ ] -[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build_file_index.txt  ⼓2 S 2` +[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build_file_index.txt  2 S 2` ^ -\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json  ⼓2d +\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json  2d b -`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json.bin  ⼓2 j +`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json.bin  2 j h -fC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\metadata_generation_command.txt  ⼓2 +fC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\metadata_generation_command.txt  2  2] [ -YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\prefab_config.json  ⼓2  ( 2b +YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\prefab_config.json  2  ( 2b ` -^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\symbol_folder_index.txt  ⼓2  U 2W +^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\symbol_folder_index.txt  2  U 2W U -SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ⼓2  2 \ No newline at end of file +SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/6k676t62/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/6k676t62/x86/configure_fingerprint.bin index 3ff98ec2..03eefe15 100644 --- a/android/app/.cxx/Debug/6k676t62/x86/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/6k676t62/x86/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log_ ] [C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2\ +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2\ Z -XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build.json  2 2a +XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build.json  2 2a _ -]C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build_mini.json  2 2N +]C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build_mini.json  2 2N L -JC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja  2 2R +JC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja  2 2R P -NC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja.txt  2W +NC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja.txt  2W U -SC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build_file_index.txt  2 S 2X +SC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build_file_index.txt  2 S 2X V -TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json  2\ +TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json  2\ Z -XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json.bin  2 b +XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json.bin  2 b ` -^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\metadata_generation_command.txt  2 +^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\metadata_generation_command.txt  2  2U S -QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\prefab_config.json  2  ( 2Z +QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\prefab_config.json  2  ( 2Z X -VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\symbol_folder_index.txt  2  M 2W +VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\symbol_folder_index.txt  2  M 2W U -SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file +SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/6k676t62/x86_64/configure_fingerprint.bin b/android/app/.cxx/Debug/6k676t62/x86_64/configure_fingerprint.bin index 5d08449f..0a433249 100644 --- a/android/app/.cxx/Debug/6k676t62/x86_64/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/6k676t62/x86_64/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logb ` ^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  ˋ2_ +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  ˋ2_ ] -[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build.json  2 ˋ2d +[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build.json  2 ˋ2d b -`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build_mini.json  2 ˋ2Q +`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build_mini.json  2 ˋ2Q O -MC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja  2 ʋ2U +MC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja  2 ʋ2U S -QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja.txt  2Z +QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja.txt  2Z X -VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build_file_index.txt  2 S ˋ2[ +VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build_file_index.txt  2 S ˋ2[ Y -WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json  2_ +WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json  2_ ] -[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json.bin  2 e +[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json.bin  2 e c -aC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\metadata_generation_command.txt  2 +aC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\metadata_generation_command.txt  2  ˋ2X V -TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\prefab_config.json  2  ( ˋ2] +TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\prefab_config.json  2  ( ˋ2] [ -YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\symbol_folder_index.txt  2  P ˋ2W +YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\symbol_folder_index.txt  2  P ˋ2W U -SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file +SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file diff --git a/assets/competitiveness/multi-frame.jpg b/assets/competitiveness/multi-frame.jpg new file mode 100644 index 00000000..96a54797 Binary files /dev/null and b/assets/competitiveness/multi-frame.jpg differ diff --git a/lib/config/my_router.dart b/lib/config/my_router.dart index c4c31ad6..60f755d3 100644 --- a/lib/config/my_router.dart +++ b/lib/config/my_router.dart @@ -372,8 +372,8 @@ final GoRouter router = GoRouter( routes: [ GoRoute( path: '/', - builder: (context, state) => Competitiveness(), - // builder: (context, state) => SessionCheckScreen(), + // builder: (context, state) => Competitiveness(), + builder: (context, state) => SessionCheckScreen(), ), // GoRoute( // path: '/', diff --git a/lib/presentation/Screens/Bottom Navigation Pages/Competitiveness/Detailedcompetitiveness.dart b/lib/presentation/Screens/Bottom Navigation Pages/Competitiveness/Detailedcompetitiveness.dart index 2b6001f2..84b0ecb1 100644 --- a/lib/presentation/Screens/Bottom Navigation Pages/Competitiveness/Detailedcompetitiveness.dart +++ b/lib/presentation/Screens/Bottom Navigation Pages/Competitiveness/Detailedcompetitiveness.dart @@ -15,10 +15,7 @@ class ReportDetailPage extends StatelessWidget { 'التقارير التنافسيه لدولة الامارات', ), style: TextStyle( - fontFamily: context.translate( - 'Roboto', - 'NotoKufi', - ) + fontFamily: context.translate('Roboto', 'NotoKufi'), ), ), showBackButton: true, @@ -27,10 +24,11 @@ class ReportDetailPage extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ + // Header Container( - padding: EdgeInsets.all(12), + padding: const EdgeInsets.all(12), decoration: BoxDecoration( - color: Colors.grey[100], + color: Colors.grey.shade200, borderRadius: BorderRadius.circular(12), ), child: Row( @@ -40,7 +38,7 @@ class ReportDetailPage extends StatelessWidget { child: Text( 'Prosperity Index (2023)', style: TextStyle( - fontSize: 14, + fontSize: 20, fontWeight: FontWeight.bold, ), ), @@ -57,7 +55,7 @@ class ReportDetailPage extends StatelessWidget { const Text( 'The Legatum Prosperity Index is published annually by the Legatum Institute. It is a policy-focused report that measures the current state of prosperity since 2007. Using the Prosperity Index framework, nations around the world can assess their strengths and weaknesses in order to determine the economic and strategic choices that need to be made to further build inclusive societies, open economies, and empowered people to drive greater levels of prosperity.', - style: TextStyle(fontSize: 13), + style: TextStyle(fontSize: 14), ), const SizedBox(height: 24), @@ -68,7 +66,7 @@ class ReportDetailPage extends StatelessWidget { _RankingCard( title: 'Rank in 2023', value: '44', - icon: const Icon(Icons.arrow_downward, color: Colors.red, size: 25,weight: 50), + icon: const Icon(Icons.arrow_downward, color: Colors.red, size: 25, weight: 50), ), _RankingCard( title: 'vs. Previous Edition', @@ -80,22 +78,58 @@ class ReportDetailPage extends StatelessWidget { const SizedBox(height: 24), // Country ranking section - _CountryRankingItem( - title: 'First Globally', - country: 'DENMARK', - flagPath: 'assets/country_flags/de.png', - ), - const Divider(), - _CountryRankingItem( - title: 'First in Oman', - country: 'Oman', - flagPath: 'assets/country_flags/fk.png', - ), - const Divider(), - _CountryRankingItem( - title: 'First in Arab Countries', - country: 'UNITED ARAB EMIRATES', - flagPath: 'assets/country_flags/ga.png', + Container( + decoration: BoxDecoration( + color: const Color(0xFFF5F5F5), + borderRadius: BorderRadius.circular(12), + ), + padding: const EdgeInsets.symmetric(vertical: 8), + child: Column( + children: [ + _CountryRankingItem( + title: 'First Globally', + country: 'DENMARK', + flagPath: 'assets/country_flags/de.png', + ), + const Divider(), + _CountryRankingItem( + title: 'First in GCC', + country: 'MULTIPLE COUNTRIES', + flagPath: 'assets/competitiveness/multi-frame.jpg', + onTap: () => showDialog( + context: context, + builder: (context) => Dialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + child: Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + _CountryItem(name: 'Argentina', flag: 'assets/country_flags/ar.png'), + _CountryItem(name: 'Bahrain', flag: 'assets/country_flags/ba.png'), + _CountryItem(name: 'Denmark', flag: 'assets/country_flags/de.png'), + _CountryItem(name: 'Finland', flag: 'assets/country_flags/fi.png'), + _CountryItem(name: 'Oman', flag: 'assets/country_flags/am.png'), + _CountryItem(name: 'Singapore', flag: 'assets/country_flags/si.png'), + _CountryItem(name: 'Saudi Arabia', flag: 'assets/country_flags/sa.png'), + ], + ), + ), + ), + ), + ), + const Divider(), + _CountryRankingItem( + title: 'First in Arab Countries', + country: 'UNITED ARAB EMIRATES', + flagPath: 'assets/country_flags/ga.png', + ), + ], + ), ), ], ), @@ -103,6 +137,7 @@ class ReportDetailPage extends StatelessWidget { ); } } + class _RankingCard extends StatelessWidget { final String title; final String value; @@ -151,57 +186,86 @@ class _RankingCard extends StatelessWidget { ); } } -class _CountryRankingItem extends StatelessWidget { +class _CountryRankingItem extends StatelessWidget { final String title; final String country; final String flagPath; + final VoidCallback? onTap; const _CountryRankingItem({ required this.title, required this.country, required this.flagPath, + this.onTap, }); @override Widget build(BuildContext context) { - return Container( - color: Colors.grey[100], - padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 8), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - title, - style: const TextStyle(fontSize: 14, color: Colors.black54), - ), - const SizedBox(height: 4), - Text( - country, - style: const TextStyle( - fontSize: 20, - fontWeight: FontWeight.bold, + return GestureDetector( + onTap: onTap, + child: Container( + color: const Color(0xFFF5F5F5), + padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 8), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: const TextStyle(fontSize: 14, color: Colors.black54), ), - ), - ], - ), - ), - const SizedBox(width: 16), - ClipOval( - child: Container( - width: 50, - height: 50, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.transparent, + const SizedBox(height: 4), + Text( + country, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + ], ), - child: Image.asset(flagPath, width: 50, height: 50, fit: BoxFit.cover), ), + const SizedBox(width: 16), + ClipOval( + child: Container( + width: 50, + height: 50, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.transparent, + ), + child: Image.asset(flagPath, width: 50, height: 50, fit: BoxFit.cover), + ), + ), + ], + ), + ), + ); + } +} + +class _CountryItem extends StatelessWidget { + final String name; + final String flag; + + const _CountryItem({required this.name, required this.flag}); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8), + child: Row( + children: [ + ClipOval( + child: Image.asset(flag, width: 40, height: 40, fit: BoxFit.cover, + errorBuilder: (context, error, stackTrace) => const Icon(Icons.flag),), ), + const SizedBox(width: 12), + Text(name), ], ), );