diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json index ee32173..59a3a0b 100644 --- a/assets/langs/ar-SA.json +++ b/assets/langs/ar-SA.json @@ -779,5 +779,6 @@ "allCities": "الكل", "noBranchesFound": "لم يتم العثور على فروع مطابقة", "browseAllBranches": "تصفح جميع الفروع ({}) في مختلف المدن", - "branchesCount": "{} فرع" + "branchesCount": "{} فرع", + "kmAway": "على بعد {} كم" } diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index 03277bb..541ec48 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -779,5 +779,6 @@ "allCities": "All", "noBranchesFound": "No branches found", "browseAllBranches": "Browse all {} branches across cities", - "branchesCount": "{} Branches" + "branchesCount": "{} Branches", + "kmAway": "{} KM Away" } diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index 6fdfdfe..f3c750f 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -795,7 +795,8 @@ class CodegenLoader extends AssetLoader{ "allCities": "الكل", "noBranchesFound": "لم يتم العثور على فروع مطابقة", "browseAllBranches": "تصفح جميع الفروع ({}) في مختلف المدن", - "branchesCount": "{} فرع" + "branchesCount": "{} فرع", + "kmAway": "على بعد {} كم" }; static const Map _en_US = { "mohemm": "Mohemm", @@ -1578,7 +1579,8 @@ static const Map _en_US = { "allCities": "All", "noBranchesFound": "No branches found", "browseAllBranches": "Browse all {} branches across cities", - "branchesCount": "{} Branches" + "branchesCount": "{} Branches", + "kmAway": "{} KM Away" }; static const Map> mapLocales = {"ar_SA": _ar_SA, "en_US": _en_US}; } diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart index 3fb1e5b..064d201 100644 --- a/lib/generated/locale_keys.g.dart +++ b/lib/generated/locale_keys.g.dart @@ -768,6 +768,7 @@ abstract class LocaleKeys { static const noBranchesFound = 'noBranchesFound'; static const browseAllBranches = 'browseAllBranches'; static const branchesCount = 'branchesCount'; + static const kmAway = 'kmAway'; } diff --git a/lib/models/offers_and_discounts/wala_plus_retailer_model.dart b/lib/models/offers_and_discounts/wala_plus_retailer_model.dart index 628b3e5..dd062f1 100644 --- a/lib/models/offers_and_discounts/wala_plus_retailer_model.dart +++ b/lib/models/offers_and_discounts/wala_plus_retailer_model.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:developer'; import 'package:easy_localization/easy_localization.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/models/offers_and_discounts/wala_plus_category_model.dart'; @@ -749,6 +750,17 @@ class WalaPlusRetailerLocation { return data; } + // distance comes from the API as a raw numeric string (e.g. "14.729670498669968") - + // round to max 2 decimal places and append the localized "KM Away" label. + String? getDisplayDistance() { + if (distance == null) return null; + double? km = double.tryParse(distance!.trim()); + if (km == null) return null; + String formatted = km.toStringAsFixed(2); + log("formatted: ${[formatted]}"); + return LocaleKeys.kmAway.tr(args: [formatted]); + } + String getLocalizedCity(bool isAr) { if (isAr) { if (cityNameAr != null && cityNameAr!.trim().isNotEmpty && cityNameAr != "null") { diff --git a/lib/ui/landing/wala_plus_retailer_details_screen.dart b/lib/ui/landing/wala_plus_retailer_details_screen.dart index a9c0cbb..6496048 100644 --- a/lib/ui/landing/wala_plus_retailer_details_screen.dart +++ b/lib/ui/landing/wala_plus_retailer_details_screen.dart @@ -839,7 +839,7 @@ class _WalaPlusRetailerDetailsScreenState extends State