From f1d58e839dfff75cbe0233923ad9c47f25b001cb Mon Sep 17 00:00:00 2001 From: Vadim <44135514+vodemn@users.noreply.github.com> Date: Wed, 13 Sep 2023 17:10:34 +0200 Subject: [PATCH] indicate push/pull --- lib/l10n/intl_en.arb | 2 ++ lib/l10n/intl_fr.arb | 2 ++ lib/l10n/intl_ru.arb | 4 ++- lib/l10n/intl_zh.arb | 4 ++- .../widget_container_readings.dart | 28 +++++++++++++++++-- 5 files changed, 35 insertions(+), 5 deletions(-) diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index bdcbf1c..29fc107 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -41,6 +41,8 @@ "meteringScreenFeatureFilmPicker": "Film picker", "meteringScreenFeatureHistogram": "Histogram", "film": "Film", + "filmPush": "Film (push)", + "filmPull": "Film (pull)", "equipment": "Equipment", "equipmentProfileName": "Equipment profile name", "equipmentProfileNameHint": "Praktica MTL5B", diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb index 4c6f353..8fef781 100644 --- a/lib/l10n/intl_fr.arb +++ b/lib/l10n/intl_fr.arb @@ -41,6 +41,8 @@ "meteringScreenFeatureFilmPicker": "Sélecteur de film", "meteringScreenFeatureHistogram": "Histogramme", "film": "Pellicule", + "filmPush": "Pellicule (push)", + "filmPull": "Pellicule (pull)", "equipment": "Équipement", "equipmentProfileName": "Nom du profil de l'équipement", "tapToAdd": "Appuie pour ajouter", diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb index 7a7c772..1151ad0 100644 --- a/lib/l10n/intl_ru.arb +++ b/lib/l10n/intl_ru.arb @@ -41,6 +41,8 @@ "meteringScreenFeatureFilmPicker": "Выбор пленки", "meteringScreenFeatureHistogram": "Гистограмма", "film": "Пленка", + "filmPush": "Пленка (push)", + "filmPull": "Пленка (pull)", "equipment": "Оборудование", "equipmentProfileName": "Название профиля", "equipmentProfileNameHint": "Praktica MTL5B", @@ -88,4 +90,4 @@ } } } -} +} \ No newline at end of file diff --git a/lib/l10n/intl_zh.arb b/lib/l10n/intl_zh.arb index 8c4fb07..28a39ab 100644 --- a/lib/l10n/intl_zh.arb +++ b/lib/l10n/intl_zh.arb @@ -31,7 +31,7 @@ "thirdStops": "1/3", "calibration": "校准", "calibrationMessage": "此应用测量读数的准确性完全取决于设备的硬件。因此,请考虑测试此应用并手动设置 EV 校准,以获得准确的测量结果。", - "calibrationMessageCameraOnly": "此应用程序测量读数的准确性完全取决于设备的后置摄像头。因此,请考虑测试此应用并手动设置 EV 校准,以获得准确的测量结果。", + "calibrationMessageCameraOnly": "此应用程序测量读数的准确s性完全取决于设备的后置摄像头。因此,请考虑测试此应用并手动设置 EV 校准,以获得准确的测量结果。", "camera": "摄像头", "lightSensor": "光传感器", "meteringScreenLayout": "布局", @@ -41,6 +41,8 @@ "meteringScreenFeatureFilmPicker": "胶片选择", "meteringScreenFeatureHistogram": "直方图", "film": "胶片", + "filmPush": "胶片 (push)", + "filmPull": "胶片 (pull)", "equipment": "设备", "equipmentProfileName": "设备配置名称", "equipmentProfileNameHint": "Praktica MTL5B", diff --git a/lib/screens/metering/components/shared/readings_container/widget_container_readings.dart b/lib/screens/metering/components/shared/readings_container/widget_container_readings.dart index 1f2b75a..8802bd5 100644 --- a/lib/screens/metering/components/shared/readings_container/widget_container_readings.dart +++ b/lib/screens/metering/components/shared/readings_container/widget_container_readings.dart @@ -61,7 +61,7 @@ class ReadingsContainer extends StatelessWidget { context, MeteringScreenLayoutFeature.filmPicker, )) ...[ - const _FilmPicker(), + _FilmPicker(selectedIso: iso), const _InnerPadding(), ], Row( @@ -117,7 +117,9 @@ class _EquipmentProfilePicker extends StatelessWidget { } class _FilmPicker extends StatelessWidget { - const _FilmPicker(); + final IsoValue selectedIso; + + const _FilmPicker({required this.selectedIso}); @override Widget build(BuildContext context) { @@ -130,7 +132,7 @@ class _FilmPicker extends StatelessWidget { onChanged: FilmsProvider.of(context).setFilm, closedChild: ReadingValueContainer.singleValue( value: ReadingValue( - label: S.of(context).film, + label: _label(context), value: Films.selectedOf(context).name.isEmpty ? S.of(context).none : Films.selectedOf(context).name, @@ -138,6 +140,26 @@ class _FilmPicker extends StatelessWidget { ), ); } + + String _label(BuildContext context) { + if (Films.selectedOf(context) == const Film.other() || + Films.selectedOf(context).iso == selectedIso.value) { + return S.of(context).film; + } + + final evDiff = IsoValue( + Films.selectedOf(context).iso, + StopType.full, + ).difference(selectedIso); + + if (evDiff > 0) { + return S.of(context).filmPush; + } else if (evDiff < 0) { + return S.of(context).filmPull; + } else { + return S.of(context).film; + } + } } class _IsoValuePicker extends StatelessWidget {