diff --git a/packages/smooth_app/lib/l10n/app_en.arb b/packages/smooth_app/lib/l10n/app_en.arb index 161f98ed9204..3f85a6abf845 100644 --- a/packages/smooth_app/lib/l10n/app_en.arb +++ b/packages/smooth_app/lib/l10n/app_en.arb @@ -1617,51 +1617,16 @@ "@dev_preferences_import_history_subtitle": { "description": "User dev preferences - Import history - Subtitle" }, + "prices_app_dev_mode_flag": "Shortcut to Prices app on product page", + "prices_app_button": "Go to Prices app", "dev_preferences_import_history_result_success": "Done", "@dev_preferences_import_history_result_success": { "description": "User dev preferences - Import history - Result successful" }, - "dev_mode_scan_mode_title": "Scan Mode", - "@dev_mode_scan_mode_title": { - "description": "User dev preferences - Scan mode - Title" - }, - "dev_mode_scan_mode_subtitle": "Current scan mode is: \"{mode}\"", - "@dev_mode_scan_mode_subtitle": { - "description": "User dev preferences - Scan mode - Subtitle", - "placeholders": { - "mode": { - "type": "String" - } - } - }, - "dev_mode_scan_mode_dialog_title": "Scan Mode", - "@dev_mode_scan_mode_dialog_title": { - "description": "User dev preferences - Scan mode - Dialog Title" - }, "dev_mode_hide_ecoscore_title": "Exclude Eco-Score", "@dev_mode_hide_ecoscore_title": { "description": "User dev preferences - Disable Ecoscore - Title" }, - "dev_mode_scan_camera_only": "Only camera stream, no scanning", - "@dev_mode_scan_camera_only": { - "description": "Scan mode - Camera only" - }, - "dev_mode_scan_preprocess_full_image": "Camera stream and full image preprocessing, no scanning", - "@dev_mode_scan_preprocess_full_image": { - "description": "Scan mode - Preprocess full image" - }, - "dev_mode_scan_preprocess_half_image": "Camera stream and half image preprocessing, no scanning", - "@dev_mode_scan_preprocess_half_image": { - "description": "Scan mode - Preprocess half image" - }, - "dev_mode_scan_scan_full_image": "Full image scanning", - "@dev_mode_scan_scan_full_image": { - "description": "Scan mode - Scan full image" - }, - "dev_mode_scan_scan_half_image": "Half image scanning", - "@dev_mode_scan_scan_half_image": { - "description": "Scan mode - Scan half image" - }, "search_history_item_edit_tooltip": "Reuse and edit this search", "@search_history_item_edit_tooltip": { "description": "A tooltip to explain the Pen button near a search term -> it allows to reuse the item" diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart index 861dd6adb435..d97bdd2331d1 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart @@ -50,6 +50,8 @@ class UserPreferencesDevMode extends AbstractUserPreferences { static const String userPreferencesFlagAccessibilityEmoji = '__accessibilityEmoji'; static const String userPreferencesFlagUserOrderedKP = '__userOrderedKP'; + static const String userPreferencesFlagShortcutToPrices = + '__shortcutToPrices'; final TextEditingController _textFieldController = TextEditingController(); @@ -316,6 +318,16 @@ class UserPreferencesDevMode extends AbstractUserPreferences { _showSuccessMessage(); }, ), + UserPreferencesItemSwitch( + title: appLocalizations.prices_app_dev_mode_flag, + value: userPreferences.getFlag(userPreferencesFlagShortcutToPrices) ?? + false, + onChanged: (bool value) async { + await userPreferences.setFlag( + userPreferencesFlagShortcutToPrices, value); + _showSuccessMessage(); + }, + ), UserPreferencesItemTile( title: 'Preference Search...', onTap: () async => Navigator.of(context).push( diff --git a/packages/smooth_app/lib/pages/product/new_product_page.dart b/packages/smooth_app/lib/pages/product/new_product_page.dart index 4d99c38fa124..0139be9952b1 100644 --- a/packages/smooth_app/lib/pages/product/new_product_page.dart +++ b/packages/smooth_app/lib/pages/product/new_product_page.dart @@ -1,5 +1,6 @@ import 'package:assorted_layout_widgets/assorted_layout_widgets.dart'; import 'package:auto_size_text/auto_size_text.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -20,6 +21,7 @@ import 'package:smooth_app/generic_lib/duration_constants.dart'; import 'package:smooth_app/generic_lib/widgets/smooth_back_button.dart'; import 'package:smooth_app/generic_lib/widgets/smooth_card.dart'; import 'package:smooth_app/helpers/analytics_helper.dart'; +import 'package:smooth_app/helpers/launch_url_helper.dart'; import 'package:smooth_app/pages/carousel_manager.dart'; import 'package:smooth_app/pages/preferences/user_preferences_dev_mode.dart'; import 'package:smooth_app/pages/product/common/product_list_page.dart'; @@ -234,6 +236,20 @@ class _ProductPageState extends State if (upToDateProduct.website != null && upToDateProduct.website!.trim().isNotEmpty) WebsiteCard(upToDateProduct.website!), + if (userPreferences.getFlag( + UserPreferencesDevMode.userPreferencesFlagShortcutToPrices) ?? + false) + Padding( + padding: const EdgeInsets.all(SMALL_SPACE), + child: SmoothLargeButtonWithIcon( + text: appLocalizations.prices_app_button, + icon: CupertinoIcons.tag_fill, + onPressed: () async => LaunchUrlHelper.launchURL( + 'https://prices.openfoodfacts.org/app/products/${upToDateProduct.barcode!}', + false, + ), + ), + ), if (userPreferences.getFlag( UserPreferencesDevMode.userPreferencesFlagUserOrderedKP) ?? false) diff --git a/packages/smooth_app/pubspec.lock b/packages/smooth_app/pubspec.lock index 804e318e87f4..387452b3be3a 100644 --- a/packages/smooth_app/pubspec.lock +++ b/packages/smooth_app/pubspec.lock @@ -65,10 +65,10 @@ packages: dependency: transitive description: name: archive - sha256: "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b" + sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d" url: "https://pub.dev" source: hosted - version: "3.4.9" + version: "3.4.10" args: dependency: transitive description: @@ -161,10 +161,10 @@ packages: dependency: transitive description: name: barcode - sha256: "2a8b2ee065f419c2aeda141436cc556d91ae772d220fd80679f4d431d6c2ab43" + sha256: "91b143666f7bb13636f716b6d4e412e372ab15ff7969799af8c9e30a382e9385" url: "https://pub.dev" source: hosted - version: "2.2.5" + version: "2.2.6" barcode_widget: dependency: "direct main" description: @@ -217,34 +217,34 @@ packages: dependency: transitive description: name: camera_android - sha256: "7215e38fa0be58cc3203a6e48de3636fb9b1bf93d6eeedf667f882d51b3a4bf3" + sha256: "351429510121d179b9aac5a2e8cb525c3cd6c39f4d709c5f72dfb21726e52371" url: "https://pub.dev" source: hosted - version: "0.10.8+15" + version: "0.10.8+16" camera_avfoundation: dependency: transitive description: name: camera_avfoundation - sha256: "3c8dd395f18722f01b5f325ddd7f5256e9bcdce538fb9243b378ba759df3283c" + sha256: "608b56b0880722f703871329c4d7d4c2f379c8e2936940851df7fc041abc6f51" url: "https://pub.dev" source: hosted - version: "0.9.13+8" + version: "0.9.13+10" camera_platform_interface: dependency: transitive description: name: camera_platform_interface - sha256: b6a568984254cadaca41a6b896d87d3b2e79a2e5791afa036f8d524c6783b93a + sha256: e971ebca970f7cfee396f76ef02070b5e441b4aa04942da9c108d725f57bbd32 url: "https://pub.dev" source: hosted - version: "2.7.0" + version: "2.7.2" camera_web: dependency: transitive description: name: camera_web - sha256: d4c2c571c7af04f8b10702ca16bb9ed2a26e64534171e8f75c9349b2c004d8f1 + sha256: f18ccfb33b2a7c49a52ad5aa3f07330b7422faaecbdfd9b9fe8e51182f6ad67d url: "https://pub.dev" source: hosted - version: "0.3.2+3" + version: "0.3.2+4" carousel_slider: dependency: "direct main" description: @@ -289,10 +289,10 @@ packages: dependency: transitive description: name: code_builder - sha256: feee43a5c05e7b3199bb375a86430b8ada1b04104f2923d0e03cc01ca87b6d84 + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 url: "https://pub.dev" source: hosted - version: "4.9.0" + version: "4.10.0" collection: dependency: "direct main" description: @@ -489,10 +489,10 @@ packages: dependency: transitive description: name: file_selector_platform_interface - sha256: "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262" + sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b url: "https://pub.dev" source: hosted - version: "2.6.1" + version: "2.6.2" file_selector_windows: dependency: transitive description: @@ -839,34 +839,34 @@ packages: dependency: "direct main" description: name: image_picker - sha256: "7d7f2768df2a8b0a3cefa5ef4f84636121987d403130e70b17ef7e2cf650ba84" + sha256: "26222b01a0c9a2c8fe02fc90b8208bd3325da5ed1f4a2acabf75939031ac0bdd" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.7" image_picker_android: dependency: transitive description: name: image_picker_android - sha256: ecdc963d2aa67af5195e723a40580f802d4392e31457a12a562b3e2bd6a396fe + sha256: "39f2bfe497e495450c81abcd44b62f56c2a36a37a175da7d137b4454977b51b1" url: "https://pub.dev" source: hosted - version: "0.8.9+1" + version: "0.8.9+3" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: "50bc9ae6a77eea3a8b11af5eb6c661eeb858fdd2f734c2a4fd17086922347ef7" + sha256: e2423c53a68b579a7c37a1eda967b8ae536c3d98518e5db95ca1fe5719a730a3 url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" image_picker_ios: dependency: transitive description: name: image_picker_ios - sha256: eac0a62104fa12feed213596df0321f57ce5a572562f72a68c4ff81e9e4caacf + sha256: fadafce49e8569257a0cad56d24438a6fa1f0cbd7ee0af9b631f7492818a4ca3 url: "https://pub.dev" source: hosted - version: "0.8.9" + version: "0.8.9+1" image_picker_linux: dependency: transitive description: @@ -887,10 +887,10 @@ packages: dependency: transitive description: name: image_picker_platform_interface - sha256: ed9b00e63977c93b0d2d2b343685bed9c324534ba5abafbb3dfbd6a780b1b514 + sha256: fa4e815e6fcada50e35718727d83ba1c92f1edf95c0b4436554cec301b56233b url: "https://pub.dev" source: hosted - version: "2.9.1" + version: "2.9.3" image_picker_windows: dependency: transitive description: @@ -1101,7 +1101,7 @@ packages: description: path: "." ref: HEAD - resolved-ref: "215b1027d8df69f621e18c855c8cb09db2fa9640" + resolved-ref: e91bc71bccc317948dc769b8c5d55052d949ec2e url: "https://github.com/openfoodfacts/openfoodfacts_flutter_lints.git" source: git version: "1.0.0" @@ -1157,18 +1157,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72 + sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" path_provider_linux: dependency: transitive description: @@ -1450,10 +1450,10 @@ packages: dependency: transitive description: name: shared_preferences_foundation - sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7" + sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" url: "https://pub.dev" source: hosted - version: "2.3.4" + version: "2.3.5" shared_preferences_linux: dependency: transitive description: @@ -1466,10 +1466,10 @@ packages: dependency: transitive description: name: shared_preferences_platform_interface - sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a + sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" shared_preferences_web: dependency: transitive description: @@ -1639,18 +1639,18 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def" + sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f" url: "https://pub.dev" source: hosted - version: "6.2.0" + version: "6.2.2" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3 + sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "6.2.4" url_launcher_linux: dependency: transitive description: @@ -1671,18 +1671,18 @@ packages: dependency: transitive description: name: url_launcher_platform_interface - sha256: "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50" + sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.1" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "7286aec002c8feecc338cc33269e96b73955ab227456e9fb2a91f7fab8a358e9" + sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" url_launcher_windows: dependency: transitive description: @@ -1703,26 +1703,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "0f0c746dd2d6254a0057218ff980fc7f5670fd0fcf5e4db38a490d31eed4ad43" + sha256: "18f6690295af52d081f6808f2f7c69f0eed6d7e23a71539d75f4aeb8f0062172" url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.9+2" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "0edf6d630d1bfd5589114138ed8fada3234deacc37966bec033d3047c29248b7" + sha256: "531d20465c10dfac7f5cd90b60bbe4dd9921f1ec4ca54c83ebb176dbacb7bb2d" url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.9+2" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: d24333727332d9bd20990f1483af4e09abdb9b1fc7c3db940b56ab5c42790c26 + sha256: "03012b0a33775c5530576b70240308080e1d5050f0faf000118c20e6463bc0ad" url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.9+2" vector_math: dependency: transitive description: @@ -1807,10 +1807,10 @@ packages: dependency: transitive description: name: win32 - sha256: b0f37db61ba2f2e9b7a78a1caece0052564d1bc70668156cf3a29d676fe4e574 + sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" url: "https://pub.dev" source: hosted - version: "5.1.1" + version: "5.2.0" win32_registry: dependency: transitive description: @@ -1831,10 +1831,10 @@ packages: dependency: transitive description: name: xdg_directories - sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" xml: dependency: transitive description: diff --git a/packages/smooth_app/pubspec.yaml b/packages/smooth_app/pubspec.yaml index c9c12e7737e4..bb15facf8767 100644 --- a/packages/smooth_app/pubspec.yaml +++ b/packages/smooth_app/pubspec.yaml @@ -26,7 +26,7 @@ dependencies: hive: 2.2.3 hive_flutter: 1.1.0 http: 1.1.2 - image_picker: 1.0.4 + image_picker: 1.0.7 iso_countries: 2.2.0 latlong2: 0.9.0 matomo_tracker: 4.1.1 diff --git a/packages/smooth_app/test/plural_translation_test.dart b/packages/smooth_app/test/plural_translation_test.dart index a00c1711a05d..f9ca725e08eb 100644 --- a/packages/smooth_app/test/plural_translation_test.dart +++ b/packages/smooth_app/test/plural_translation_test.dart @@ -163,10 +163,6 @@ void main() { appLocalizations.dev_preferences_migration_subtitle(crazyString), contains(crazyString), ); - expect( - appLocalizations.dev_mode_scan_mode_subtitle(crazyString), - contains(crazyString), - ); expect( appLocalizations.product_search_no_more_results(crazyInt), contains(crazyInt.toString()), diff --git a/version.txt b/version.txt index 813b83b65323..56d2fb548a22 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -4.13.0 +4.13.1