diff --git a/android/app/.cxx/Debug/29y7472m/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/29y7472m/arm64-v8a/configure_fingerprint.bin index 2910651f..90727238 100644 --- a/android/app/.cxx/Debug/29y7472m/arm64-v8a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/29y7472m/arm64-v8a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logo m kC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  踌2  2l +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2l j -hC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\android_gradle_build.json  踌2 2q +hC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\android_gradle_build.json  2 2q o -mC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\android_gradle_build_mini.json  踌2 2^ +mC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\android_gradle_build_mini.json  2 2^ \ -ZC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\build.ninja  踌2 2b +ZC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\build.ninja  2 2b ` -^C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\build.ninja.txt  踌2g +^C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\build.ninja.txt  2g e -cC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\build_file_index.txt  踌2 K 2h +cC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\build_file_index.txt  2 K 2h f -dC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\compile_commands.json  踌2l +dC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\compile_commands.json  2l j -hC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\compile_commands.json.bin  踌2 r +hC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\compile_commands.json.bin  2 r p -nC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\metadata_generation_command.txt  踌2 +nC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\metadata_generation_command.txt  2  2e c -aC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\prefab_config.json  踌2  ( 2j +aC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\prefab_config.json  2  ( 2j h -fC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\symbol_folder_index.txt  踌2  ] 2O +fC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\arm64-v8a\symbol_folder_index.txt  2  ] 2O M -KC:\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  踌2  2 \ No newline at end of file +KC:\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/29y7472m/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/29y7472m/armeabi-v7a/configure_fingerprint.bin index 64371f1e..24dcbb24 100644 --- a/android/app/.cxx/Debug/29y7472m/armeabi-v7a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/29y7472m/armeabi-v7a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logq o mC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  Ǡ2n +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ᓡ2  Ǡ2n l -jC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\android_gradle_build.json  2 Ǡ2s +jC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\android_gradle_build.json  ᓡ2 Ǡ2s q -oC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\android_gradle_build_mini.json  2 Ǡ2` +oC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\android_gradle_build_mini.json  ᓡ2 Ǡ2` ^ -\C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\build.ninja  2 Š2d +\C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\build.ninja  ᓡ2 Š2d b -`C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\build.ninja.txt  2i +`C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\build.ninja.txt  ᓡ2i g -eC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\build_file_index.txt  2 K Ǡ2j +eC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\build_file_index.txt  ᓡ2 K Ǡ2j h -fC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\compile_commands.json  2n +fC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\compile_commands.json  ᓡ2n l -jC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\compile_commands.json.bin  2 t +jC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\compile_commands.json.bin  ᓡ2 t r -pC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\metadata_generation_command.txt  2 +pC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\metadata_generation_command.txt  ᓡ2  Ǡ2g e -cC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\prefab_config.json  2  ( Ǡ2l +cC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\prefab_config.json  ᓡ2  ( Ǡ2l j -hC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\symbol_folder_index.txt  2  _ Ǡ2O +hC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\armeabi-v7a\symbol_folder_index.txt  ᓡ2  _ Ǡ2O M -KC:\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file +KC:\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/29y7472m/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/29y7472m/x86/configure_fingerprint.bin index 1c029ba6..0b40aaf1 100644 --- a/android/app/.cxx/Debug/29y7472m/x86/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/29y7472m/x86/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logi g eC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2f +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2f d -bC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\android_gradle_build.json  2 2k +bC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\android_gradle_build.json  2 2k i -gC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\android_gradle_build_mini.json  2 2X +gC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\android_gradle_build_mini.json  2 2X V -TC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\build.ninja  2 2\ +TC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\build.ninja  2 2\ Z -XC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\build.ninja.txt  2a +XC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\build.ninja.txt  2a _ -]C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\build_file_index.txt  2 K 2b +]C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\build_file_index.txt  2 K 2b ` -^C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\compile_commands.json  2f +^C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\compile_commands.json  2f d -bC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\compile_commands.json.bin  2 l +bC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\compile_commands.json.bin  2 l j -hC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\metadata_generation_command.txt  2 +hC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\metadata_generation_command.txt  2  2_ ] -[C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\prefab_config.json  2  ( 2d +[C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\prefab_config.json  2  ( 2d b -`C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\symbol_folder_index.txt  2  W 2O +`C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86\symbol_folder_index.txt  2  W 2O M -KC:\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file +KC:\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/29y7472m/x86_64/configure_fingerprint.bin b/android/app/.cxx/Debug/29y7472m/x86_64/configure_fingerprint.bin index 32b131fe..19928d46 100644 --- a/android/app/.cxx/Debug/29y7472m/x86_64/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/29y7472m/x86_64/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logl j hC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ɹ2  2i +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2i g -eC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\android_gradle_build.json  ɹ2 2n +eC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\android_gradle_build.json  2 2n l -jC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\android_gradle_build_mini.json  ɹ2 2[ +jC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\android_gradle_build_mini.json  2 2[ Y -WC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\build.ninja  ɹ2 2_ +WC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\build.ninja  2 2_ ] -[C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\build.ninja.txt  ɹ2d +[C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\build.ninja.txt  2d b -`C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\build_file_index.txt  ɹ2 K 2e +`C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\build_file_index.txt  2 K 2e c -aC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\compile_commands.json  ɹ2i +aC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\compile_commands.json  2i g -eC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\compile_commands.json.bin  ɹ2 o +eC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\compile_commands.json.bin  2 o m -kC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\metadata_generation_command.txt  ɹ2 +kC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\metadata_generation_command.txt  2  2b ` -^C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\prefab_config.json  ɹ2  ( 2g +^C:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\prefab_config.json  2  ( 2g e -cC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\symbol_folder_index.txt  ɹ2  Z 2O +cC:\Flutter Applications\Git_New\FCSC\android\app\.cxx\Debug\29y7472m\x86_64\symbol_folder_index.txt  2  Z 2O M -KC:\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ɹ2  2 \ No newline at end of file +KC:\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file diff --git a/assets/country-profile/icons/IncomLevel.png b/assets/country-profile/icons/IncomLevel.png new file mode 100644 index 00000000..80b2f40d Binary files /dev/null and b/assets/country-profile/icons/IncomLevel.png differ diff --git a/assets/country-profile/icons/area.png b/assets/country-profile/icons/area.png new file mode 100644 index 00000000..9af57239 Binary files /dev/null and b/assets/country-profile/icons/area.png differ diff --git a/assets/country-profile/icons/capital.png b/assets/country-profile/icons/capital.png new file mode 100644 index 00000000..b97308ba Binary files /dev/null and b/assets/country-profile/icons/capital.png differ diff --git a/assets/country-profile/icons/exports.png b/assets/country-profile/icons/exports.png new file mode 100644 index 00000000..6b8c08a1 Binary files /dev/null and b/assets/country-profile/icons/exports.png differ diff --git a/assets/country-profile/icons/female.png b/assets/country-profile/icons/female.png new file mode 100644 index 00000000..1e3bfcdf Binary files /dev/null and b/assets/country-profile/icons/female.png differ diff --git a/assets/country-profile/icons/imports.png b/assets/country-profile/icons/imports.png new file mode 100644 index 00000000..803336d2 Binary files /dev/null and b/assets/country-profile/icons/imports.png differ diff --git a/assets/country-profile/icons/inflows.png b/assets/country-profile/icons/inflows.png new file mode 100644 index 00000000..d591c661 Binary files /dev/null and b/assets/country-profile/icons/inflows.png differ diff --git a/assets/country-profile/icons/male.png b/assets/country-profile/icons/male.png new file mode 100644 index 00000000..a9479165 Binary files /dev/null and b/assets/country-profile/icons/male.png differ diff --git a/assets/country-profile/icons/nominal.png b/assets/country-profile/icons/nominal.png new file mode 100644 index 00000000..dd0ae0ca Binary files /dev/null and b/assets/country-profile/icons/nominal.png differ diff --git a/assets/country-profile/icons/outflows.png b/assets/country-profile/icons/outflows.png new file mode 100644 index 00000000..1a913ed8 Binary files /dev/null and b/assets/country-profile/icons/outflows.png differ diff --git a/assets/country-profile/icons/perCapita.png b/assets/country-profile/icons/perCapita.png new file mode 100644 index 00000000..d95cd0b3 Binary files /dev/null and b/assets/country-profile/icons/perCapita.png differ diff --git a/assets/country-profile/icons/population.png b/assets/country-profile/icons/population.png new file mode 100644 index 00000000..8c1651e1 Binary files /dev/null and b/assets/country-profile/icons/population.png differ diff --git a/assets/country-profile/icons/real.png b/assets/country-profile/icons/real.png new file mode 100644 index 00000000..11194d04 Binary files /dev/null and b/assets/country-profile/icons/real.png differ diff --git a/assets/country-profile/icons/stocks.png b/assets/country-profile/icons/stocks.png new file mode 100644 index 00000000..9f2a360c Binary files /dev/null and b/assets/country-profile/icons/stocks.png differ diff --git a/assets/country-profile/icons/trade.png b/assets/country-profile/icons/trade.png new file mode 100644 index 00000000..a8bf8170 Binary files /dev/null and b/assets/country-profile/icons/trade.png differ diff --git a/lib/infrastructure/services/img_asset_paths/icons/popup_asset_path.dart b/lib/infrastructure/services/img_asset_paths/icons/popup_asset_path.dart new file mode 100644 index 00000000..4bf483ac --- /dev/null +++ b/lib/infrastructure/services/img_asset_paths/icons/popup_asset_path.dart @@ -0,0 +1,17 @@ +abstract class PopupAssetPath { + static const _basePath = 'assets/country-profile/icons'; + static const capital = '$_basePath/capital.png'; + static const area = '$_basePath/area.png'; + static const exports = '$_basePath/exports.png'; + static const female = '$_basePath/female.png'; + static const imports = '$_basePath/imports.png'; + static const IncomeLevel = '$_basePath/IncomLevel.png'; + static const inflows = '$_basePath/inflows.png'; + static const male = '$_basePath/male.png'; + static const nominal = '$_basePath/nominal.png'; + static const outflows = '$_basePath/outflows.png'; + static const perCapita = '$_basePath/perCapita.png'; + static const population = '$_basePath/population.png'; + static const real = '$_basePath/real.png'; + +} diff --git a/lib/presentation/Screens/Bottom Navigation Pages/Country_Profile/DetailedCountryProfilePage.dart b/lib/presentation/Screens/Bottom Navigation Pages/Country_Profile/DetailedCountryProfilePage.dart index ccc44536..a00d4e6a 100644 --- a/lib/presentation/Screens/Bottom Navigation Pages/Country_Profile/DetailedCountryProfilePage.dart +++ b/lib/presentation/Screens/Bottom Navigation Pages/Country_Profile/DetailedCountryProfilePage.dart @@ -1,6 +1,7 @@ import 'dart:ui'; import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; +import 'package:dotted_border/dotted_border.dart'; +import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/popup_asset_path.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; class DetailedCountryProfilePage extends StatelessWidget { @@ -281,56 +282,66 @@ class CategoryPopupContent extends StatelessWidget { @override Widget build(BuildContext context) { + final lineBorder=Padding( + padding: const EdgeInsets.only(top:8.0,bottom: 8.0), + child: DottedBorder( + borderPadding: EdgeInsets.zero, + padding: EdgeInsets.zero, + dashPattern: [8, 4], + strokeWidth: 2, + color: Colors.grey, + child: SizedBox( + width: double.maxFinite, + height: 0, + ), + ), + ); switch (category) { case 'Demography': return Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, children: [ - const SizedBox(height: 8), - Container( - width: 50, - height: 5, - decoration: BoxDecoration( - color: Colors.grey[300], - borderRadius: BorderRadius.circular(10), - ), - ), const SizedBox(height: 16), _DemographyItem( - icon: Icons.location_city, + icon: PopupAssetPath.capital, title: 'Capital City', value: 'Buenos Aires', ), - const Divider(), + lineBorder, _DemographyItem( - icon: Icons.map, + icon: PopupAssetPath.area, title: 'Surface Area', value: '2,780,400 sq. km', ), - const Divider(), + lineBorder, _DemographyStatItem( - icon: Icons.groups, + icon: PopupAssetPath.population, title: '2021 Population', value: '45.81 M', - suffix: '32 ↑ Rank', - suffixStyle: const TextStyle(color: Colors.green, fontSize: 12), + suffix: '32', + arrow:Icons.arrow_upward, + suffixText: 'Rank', ), - const Divider(), + lineBorder, _DemographyStatItem( - icon: Icons.male, + icon: PopupAssetPath.male, title: '2021 Male Population', value: '22.35 M', - suffix: '0.98% ↑ Growth Rate', - valueColor: Colors.deepPurple, + suffix: '0.98%', + arrow:Icons.arrow_upward, + suffixText: 'Growth Rate', + valueColor: Color(0xFF00205B), ), - const Divider(), + lineBorder, _DemographyStatItem( - icon: Icons.female, + icon:PopupAssetPath.female, title: '2021 Female Population', value: '23.46 M', - suffix: '0.93% ↑ Growth Rate', - valueColor: Colors.purple, + suffix: '0.93%', + arrow:Icons.arrow_upward, + suffixText: 'Growth Rate', + valueColor: Color(0xFF751398), ), const SizedBox(height: 16), ], @@ -340,43 +351,34 @@ class CategoryPopupContent extends StatelessWidget { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, children: [ - const SizedBox(height: 8), - Container( - width: 50, - height: 5, - decoration: BoxDecoration( - color: Colors.grey[300], - borderRadius: BorderRadius.circular(10), - ), - ), const SizedBox(height: 16), _GDPMetricItem( - icon: Icons.apartment, + icon: PopupAssetPath.nominal, title: '2021 Nominal GDP (AED)', value: '1.8 T', rank: '26', - rankDirection: '↓', - rankColor: Colors.red, + rankDirection: Icons.arrow_downward, + rankColor: Color(0xFFED1C24), ), - const Divider(), + lineBorder, _GDPMetricItem( - icon: Icons.public, + icon: PopupAssetPath.real, title: '2021 Real GDP (AED)', value: '2.08 T', rank: '22', - rankDirection: '↓', - rankColor: Colors.red, + rankDirection: Icons.arrow_downward, + rankColor: Color(0xFFED1C24), ), - const Divider(), + lineBorder, _GDPMetricItem( - icon: Icons.groups_3, + icon: PopupAssetPath.perCapita, title: '2021 GDP Per Capita (AED)', value: '39.38 K', rank: '64', - rankDirection: '↓', - rankColor: Colors.red, + rankDirection: Icons.arrow_downward, + rankColor: Color(0xFFED1C24), ), - const Divider(), + lineBorder, const SizedBox(height: 8), const Icon(Icons.stacked_bar_chart, color: Colors.grey), const SizedBox(height: 4), @@ -397,15 +399,6 @@ class CategoryPopupContent extends StatelessWidget { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, children: [ - const SizedBox(height: 8), - Container( - width: 50, - height: 5, - decoration: BoxDecoration( - color: Colors.grey[300], - borderRadius: BorderRadius.circular(10), - ), - ), const SizedBox(height: 16), _FDIItem( icon: Icons.trending_down, @@ -414,7 +407,7 @@ class CategoryPopupContent extends StatelessWidget { growthRate: '-15.94%', isPositive: false, ), - const Divider(), + lineBorder, _FDIItem( icon: Icons.swap_horizontal_circle_outlined, title: '2020 FDI Inflows (AED)', @@ -422,7 +415,7 @@ class CategoryPopupContent extends StatelessWidget { growthRate: '-39.68%', isPositive: false, ), - const Divider(), + lineBorder, _FDIItem( icon: Icons.thumb_up_alt_outlined, title: '2021 FDI Stocks (AED)', @@ -438,15 +431,6 @@ class CategoryPopupContent extends StatelessWidget { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, children: [ - const SizedBox(height: 8), - Container( - width: 50, - height: 5, - decoration: BoxDecoration( - color: Colors.grey[300], - borderRadius: BorderRadius.circular(10), - ), - ), const SizedBox(height: 16), _TradeItem( icon: Icons.cached, @@ -455,7 +439,7 @@ class CategoryPopupContent extends StatelessWidget { growthRate: '39.89%', isPositive: true, ), - const Divider(), + lineBorder, _TradeItem( icon: Icons.download_outlined, title: '2021 Imports (AED)', @@ -463,7 +447,7 @@ class CategoryPopupContent extends StatelessWidget { growthRate: '40.79%', isPositive: true, ), - const Divider(), + lineBorder, _TradeItem( icon: Icons.upload_outlined, title: '2021 Exports (AED)', @@ -479,17 +463,6 @@ class CategoryPopupContent extends StatelessWidget { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - const SizedBox(height: 8), - Center( - child: Container( - width: 50, - height: 5, - decoration: BoxDecoration( - color: Colors.grey[300], - borderRadius: BorderRadius.circular(10), - ), - ), - ), const SizedBox(height: 16), const Center( child: Text( @@ -563,15 +536,19 @@ class CategoryPopupContent extends StatelessWidget { } Widget _DemographyItem({ - required IconData icon, + required String icon, required String title, required String value, }) { return Column( children: [ - Icon(icon, size: 32, color: Colors.grey), + Image.asset( + icon, + width: 40, + height: 40, + ), const SizedBox(height: 4), - Text(title, style: const TextStyle(color: Colors.grey)), + Text(title, style: const TextStyle(color: Color(0xFF666666))), const SizedBox(height: 4), Text( value, @@ -583,83 +560,113 @@ Widget _DemographyItem({ } Widget _DemographyStatItem({ - required IconData icon, + required String icon, required String title, required String value, String? suffix, + IconData? arrow, + String ? suffixText, TextStyle? suffixStyle, Color? valueColor, }) { return Column( children: [ - Icon(icon, size: 32, color: Colors.grey), - const SizedBox(height: 4), - Text(title, style: const TextStyle(color: Colors.grey)), - const SizedBox(height: 4), - RichText( - textAlign: TextAlign.center, - text: TextSpan( - children: [ - TextSpan( - text: '$value ', - style: TextStyle( - fontWeight: FontWeight.bold, - fontSize: 16, - color: valueColor ?? Colors.black, - ), - ), - if (suffix != null) - TextSpan( - text: suffix, - style: suffixStyle ?? - const TextStyle(fontSize: 12, color: Colors.green), - ), - ], - ), + Image.asset( + icon, + width: 40, + height: 40, ), + const SizedBox(height: 4), + Text(title, style: const TextStyle(color: Color(0xFF666666))), + const SizedBox(height: 4), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + value, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 28, + color: valueColor ?? Colors.black, + ), + ), + SizedBox(width: 6,), + if (suffix != null) + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + suffix, + style: suffixStyle ?? + const TextStyle(fontSize: 16, color: Colors.green,fontWeight: FontWeight.w500), + ), + Icon(arrow, size: 16, color: Colors.green), + ], + ), + Text( + suffixText!, + style: suffixStyle ?? + const TextStyle(fontSize: 12, color: Color(0xFF666666)), + ), + ], + ), + ], + ) + ], ); } Widget _GDPMetricItem({ - required IconData icon, + required String icon, required String title, required String value, required String rank, - required String rankDirection, + required IconData rankDirection, required Color rankColor, }) { return Column( children: [ - Icon(icon, size: 32, color: Colors.grey), + Image.asset( + icon, + width: 40, + height: 40, + ), const SizedBox(height: 4), - Text(title, style: const TextStyle(color: Colors.grey)), + Text(title, style: const TextStyle(color: Color(0xFF666666))), const SizedBox(height: 4), - RichText( - textAlign: TextAlign.center, - text: TextSpan( - children: [ - TextSpan( - text: '$value ', - style: const TextStyle( - fontWeight: FontWeight.bold, - fontSize: 18, - color: Colors.black, - ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + value, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 28, + color: Colors.black, ), - TextSpan( - text: '$rank $rankDirection\n', - style: TextStyle( - fontSize: 12, - color: rankColor, - ), + ), + SizedBox(width: 12,), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + rank, + style: TextStyle(fontSize: 16, color:rankColor,fontWeight: FontWeight.w500),), + Icon(rankDirection, size: 16, color: rankColor), + ], + ), + Text( + 'Rank', + style: const TextStyle(fontSize: 12, color: Color(0xFF666666)), + ), + ], ), - const TextSpan( - text: 'Rank', - style: TextStyle(fontSize: 10, color: Colors.grey), - ), - ], - ), + ], ), ], ); @@ -808,10 +815,7 @@ void showCategoryPopup(BuildContext context, String category) { shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(16), ), - child: Padding( - padding: const EdgeInsets.all(16.0), child: CategoryPopupContent(category: category), - ), ), ), ); diff --git a/pubspec.lock b/pubspec.lock index c230560d..0b61b6cb 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -433,6 +433,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" + dotted_border: + dependency: "direct main" + description: + name: dotted_border + sha256: "108837e11848ca776c53b30bc870086f84b62ed6e01c503ed976e8f8c7df9c04" + url: "https://pub.dev" + source: hosted + version: "2.1.0" equatable: dependency: transitive description: @@ -1156,6 +1164,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + path_drawing: + dependency: transitive + description: + name: path_drawing + sha256: bbb1934c0cbb03091af082a6389ca2080345291ef07a5fa6d6e078ba8682f977 + url: "https://pub.dev" + source: hosted + version: "1.0.1" path_parsing: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0e72b58c..9deb7c5b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -27,6 +27,7 @@ dependencies: url_launcher: ^6.3.1 path_provider: ^2.1.5 screenshot: ^3.0.0 + dotted_border: 2.1.0 # dynamic_layouts: # git: # url: https://github.com/flutter/packages.git @@ -162,6 +163,7 @@ flutter: - assets/country-profile/ - assets/country-profile/CategoryFile/ - assets/competitiveness/ + - assets/country-profile/icons/ fonts: - family: Segoe