Impacted files:
* `background_task_add_other_price.dart`: minor refactoring
* `background_task_add_price.dart`: minor refactoring
* `background_task_price.dart`: now using new method `ProductQuery.getPriceToken` to get the token; never closing the token session at the end
* `infinite_scroll_manager.dart`: minor refactoring
* `prices_proofs_page.dart`: minor refactoring
* `product_query.dart`: new method `getPriceToken` that caches the token
* feat: 4679 - added a way to edit traces
New file:
* `simple_input_page_trace_helper.dart`: Implementation for "Traces" of an AbstractSimpleInputPageHelper.
Impacted files:
* `analytics_helper.dart`: added an entry for "traces"
* `app_en.arb`: added labels for "traces"
* `background_task_details.dart`: added an entry for "traces"
* `edit_product_page.dart`: added a button for "traces"
* `product_query.dart`: added entries for "traces"
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded to off-dart 3.21.0, where we can edit traces
* `simple_input_page_helpers.dart`: added a warning "TODO" about the file being too big
* `up_to_date_changes.dart`: added an entry for "traces"
* stupid formatter error
* my bad, this time
Impacted files:
* `folksonomy_provider.dart`: used a specific folksonomy server instead of systematically the prod server
* `product_query.dart`: specific folksonomy server
* `user_preferences_dev_mode.dart`: settings for the specific folksonomy server
Impacted files:
* `osm_location.dart`: minor refactoring due to 3.18.0 - now we may have proofs without osm location (e.g. internet)
* `price_model.dart`: minor refactoring due to 3.18.0 - now we may have proofs without osm location (e.g. internet)
* `product_query.dart`: added the `OWNER` product field to be retrieved
* `product_refresher.dart`: now we use only the `food` server for single barcode queries, but with `ProductTypeFilter.all`
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded to off-dart 3.18.0
* feat: 5855 - no visible product type filter by default
Impacted files:
* `background_task_price.dart`: minor unrelated fix due to off-dart 3.17.0
* `dao_product.dart`: we overwrite the products product_type with the server product type only if null
* `product_query.dart`: now retrieving product_type field in products found on a server
* `product_refresher.dart`: unrelated minor refactoring
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded off-dart to 3.17.0
* `search_product_helper.dart`: visible/invisible product type filter, by default invisible and working on food
* `user_preferences_dev_mode.dart`: on/off switch for visible product type filter, off by default
* Move the setting to "App settings"
---------
Co-authored-by: Edouard Marquez <moi@edouard-marquez.me>
Co-authored-by: Edouard Marquez <g123k@users.noreply.github.com>
* feat: 5638 - 5 dimensions for matomo
Impacted files:
* `add_basic_details_page.dart`: minor refactoring
* `add_new_product_page.dart`: using new method `trackProductEvent`
* `add_other_details_page.dart`: minor refactoring
* `analytics_helper.dart`: new method `trackProductEvent`; added 5 dimensions to matomo event track methods
* `attribute_first_row_helper.dart`: minor refactoring
* `barcode_product_query.dart`: using new method `trackProductEvent`
* `edit_new_packagings.dart`: minor refactoring
* `edit_ocr_page.dart`: minor refactoring
* `edit_product_page.dart`: minor refactoring
* `new_product_footer.dart`: using new method `trackProductEvent`
* `nutrition_page_loaded.dart`: minor refactoring
* `product_field_editor.dart`: minor refactoring
* `product_image_gallery_view.dart`: minor refactoring
* `product_incomplete_card.dart`: using new method `trackProductEvent`
* `product_questions_widget.dart`: using new method `trackProductEvent`
* `simple_input_page.dart`: minor refactoring
* `summary_card.dart`: using new method `trackProductEvent`
* minor refactoring
* minor refactoring
* feat: 5741 - respecting the "search products" access limitations
New file:
* `search_products_manager.dart`: Management of "search products" access limitations.
Impacted files:
* `background_task_download_products.dart`: refactored using `SearchProductsManager`
* `background_task_language_refresh.dart`: refactored using `SearchProductsManager`
* `background_task_top_barcodes.dart`: refactored using `SearchProductsManager`
* `lazy_counter.dart`: refactored using `SearchProductsManager`
* `paged_product_query.dart`: refactored using `SearchProductsManager`
* `product_list_page.dart`: refactored using `SearchProductsManager`
* `product_refresher.dart`: refactored using `SearchProductsManager`
* `pubspec.lock`: wtf
* fix: 5618 - category comparison for OxF
Impacted files:
* `background_task_language_refresh.dart`: explicitly setting the product_type
* `dao_product.dart`: made `productType` mandatory and not null for `put` and `putAll`
* `new_product_footer.dart`: fixed case with unexploitable `comparedToCategory` field
* `product_list_page.dart`: explicitly setting the product_type
* `product_refresher.dart`: explicitly setting the product_type
* `pubspec.lock`: wtf
* `query_product_list_supplier.dart`: explicitly setting the product_type
* fix: 5617 - share link to correct Oxf server
* fix: 5617 - share link to correct Oxf server
Impacted files:
* `app_en.arb`: added labels for sharing an Oxf product
* `new_product_footer.dart`: now displaying a correct label for product sharing - in addition to correct url
* `product_query.dart`: added labels for sharing an Oxf product
* `pubspec.lock`: wtf
* `pubspec.yaml`: downgraded sentry_flutter from problematic version
---------
Co-authored-by: Edouard Marquez <g123k@users.noreply.github.com>
New file:
* `work_type.dart`: Type of long download work for some background tasks.
Impacted files:
* `background_task.dart`: removed the default `uriProductHelper` getter
* `background_task_barcode.dart`: added a `uriProductHelper` getter that depends on the `productType`
* `background_task_download_products.dart`: refactored the access to product type
* `background_task_full_refresh.dart`: split by product type
* `background_task_language_refresh.dart`: split by product type
* `background_task_offline.dart`: refactored the access to product type
* `background_task_progressing.dart`: added the `productType` parameter; moved code to new `WorkType` class
* `background_task_top_barcodes.dart`: refactored the access to product type
* `dao_product.dart`: new methods `getProductTypes` and `splitAllProducts`; refactored with product type
* `lazy_counter.dart`: explicitly counting the "food" products
* `newsfeed_provider.dart`: explicitly getting the news from "food"
* `offline_data_page.dart`: now displaying "download top N products" buttons for each product type; stats for each product type
* `offline_tasks_page.dart`: enhanced "work text" algo, now depending on product type
* `operation_type.dart`: enhanced "key" algo, now depending on product type
* `ordered_nutrients_cache.dart`: explicitly using the "food" nutrients
* `product_list_page.dart`: now reloading products from their server
* `product_list_popup_items.dart`: now linking to the first server with products
* `product_query.dart`: made product type a mandatory parameter
* `product_refresher.dart`: added mandatory parameter product type
* `random_questions_query.dart`: explicitly ask for "food" robotoff products
* `temp_product_list_share_helper.dart`: added mandatory parameter product type
* `user_preferences_dev_debug_info.dart`: added explicit use of "food" data
Impacted files:
* `add_basic_details_page.dart`: added product type
* `add_new_product_page.dart`: added a "set product type page" for new products; added product type; minor refactoring
* `add_other_details_page.dart`: added product type
* `app_en.arb`: added 1 label per product type, and 4 labels for product type input
* `background_task_barcode.dart`: added product type
* `background_task_crop.dart`: added product type
* `background_task_details.dart`: added product type
* `background_task_hunger_games.dart`: added product type
* `background_task_image.dart`: added product type
* `background_task_refresh_later.dart`: added product type
* `background_task_unselect.dart`: added product type
* `background_task_upload.dart`: added product type
* `edit_new_packagings.dart`: added product type
* `edit_ocr_page.dart`: added product type
* `image_crop_page.dart`: added product type
* `nutrition_page_loaded.dart`: added product type
* `product_crop_helper.dart`: added product type
* `product_dialog_helper.dart`: removed irrelevant nutriscore and ecoscore logos for new found products, as we cannot say already if it's food
* `product_image_button.dart`: added product type
* `product_image_carousel_item.dart`: added product type
* `product_image_crop_button.dart`: added product type
* `product_image_gallery_view.dart`: added product type
* `product_image_local_button.dart`: added product type
* `product_image_unselect_button.dart`: added product type
* `product_image_viewer.dart`: added product type
* `product_query.dart`: localized labels for product type
* `simple_input_page.dart`: added product type
* `simple_input_page_helpers.dart`: added product type
* `up_to_date_changes.dart`: added product type
* `uploaded_image_gallery.dart`: added product type
Impacted files:
* `category_product_query.dart`: refactored with new `productType` parameter
* `keywords_product_query.dart`: refactored with new `productType` parameter
* `paged_product_query.dart`: refactored with new `productType` parameter
* `paged_search_product_query.dart`: refactored with new `productType` parameter
* `paged_to_be_completed_product_query.dart`: refactored with new `productType` parameter
* `paged_user_product_query.dart`: refactored with new `productType` parameter
* `product_list.dart`: refactored with new `productType` parameter
* `product_query.dart`: added a "get label" method for `ProductType`
* `search_field.dart`: displayed the new optional "additional filter" (e.g. OxF)
* `search_helper.dart`: added a new optional "additional filter"
* `search_product_helper.dart`: new "product type filter" widget
* `summary_card.dart`: minor "productType" fix
* `user_preferences_account.dart`: added "productType.food" to user page counts
* `user_preferences_contribute.dart`: added "productType.food" to "to be completed" products
Impacted files:
* `add_basic_details_page.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `background_task.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `background_task_download_products.dart`: saved new field `Product.productType`
* `dao_product.dart`: now we're storing the `Product.productType` field
* `edit_new_packagings.dart`: now using new field `Product.productType`
* `edit_new_packagings_component.dart`: now using new field `Product.productType`
* `edit_product_page.dart`: specific icon for "food" categories; no nutrition for "beauty" and "product"
* `forgot_password_page.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `lazy_counter.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `login_result.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `newsfeed_provider.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `ocr_ingredients_helper.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `ocr_packaging_helper.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `onboarding_data_product.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `ordered_nutrients_cache.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `paged_product_query.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `product_cards_helper.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `product_image_crop_button.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `product_image_gallery_other_view.dart`: now using new field `Product.productType`
* `product_image_other_page.dart`: now using new field `Product.productType`
* `product_image_server_button.dart`: now using new field `Product.productType`
* `product_image_widget.dart`: now using new field `Product.productType`
* `product_list_page.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `product_query.dart`: now when we look for a barcode (or refresh a product), we use all productTypes if needed
* `product_refresher.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded `openfoodfacts` to `3.15.0` for new `Product.productType` field
* `sign_up_page.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `simple_input_page_helpers.dart`: new class dedicated to non-food categories
* `simple_input_text_field.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `simple_input_widget.dart`: now using new field `Product.productType`
* `temp_product_list_share_helper.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
* `uploaded_image_gallery.dart`: now using new field `Product.productType`
* `user_preferences_dev_debug_info.dart`: replaced getter `ProductQuery.uriProductHelper` with method `ProductQuery.getUriProductHelper`
Impacted files:
* `background_task_add_prices.dart`: Prices API called using new Prices prod/test url
* `get_prices_model.dart`: Prices API called using new Prices prod/test url
* `price_user_button.dart`: Prices API called using new Prices prod/test url
* `prices_proofs_page.dart`: Prices API called using new Prices prod/test url
* `prices_users_page.dart`: Prices API called using new Prices prod/test url
* `product_prices_list.dart`: Prices API called using new Prices prod/test url
* `product_query.dart`: new Prices prod/test url
* `user_preferences_account.dart`: Prices API called using new Prices prod/test url
* `user_preferences_dev_mode.dart`: new prod/test flag for Prices url
* feat: 5201 - change currency with country when relevant
Impacted files:
* `app_en.arb`: message for a "change currency too?" dialog
* `country_selector.dart`: new method to change the currency at the same time as the country if relevant
* `product_query.dart`: init currency if null
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded `openfoodfacts` to `3.8.0`
* `user_preferences_country_selector.dart`: asking to change the currency at the same time as the country only if confirmed or relevant
* `welcome_page.dart`: explicitly asking to change the currency at the same time as the country
* refactoring
* minor changes about labels
* feat: 5014 - track all READ server queries when consented
Impacted files:
* `analytics_helper.dart`: added a public static `isEnabled` method
* `background_task.dart`: now explicitly using the WRITE user
* `background_task_download_products.dart`: now explicitly using the READ user
* `background_task_top_barcodes.dart`: now explicitly using the READ user
* `brand_suggestion_manager.dart`: now explicitly using the READ user
* `ocr_helper.dart`: now explicitly using the READ user
* `paged_product_query.dart`: now explicitly using the READ user
* `product_list_page.dart`: now explicitly using the READ user
* `product_query.dart`: split the user into READ and WRITE users
* `product_refresher.dart`: now explicitly using the READ user
* `random_questions_query.dart`: now explicitly using the READ user
* `simple_input_text_field.dart`: now explicitly using the READ user
* `user_management_provider.dart`: now explicitly using the WRITE user
* `user_preferences_account.dart`: now explicitly using the WRITE user
* minor refactoring
* merge conflicts desperate fix
* feat: 5005 - "obsolete product" matomo event
Impacted files:
* `analytics_helper.dart`: added an "obsolete product" matomo event
* `barcode_product_query.dart`: sent an "obsolete product" matomo event when relevant
* `product_query.dart`: added the new OBSOLETE product field to the fields we retrieve
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded to openfoodfacts 3.4.0
* refactor: now using AutocompleteManager
* feat: 4836 - clickable link to "open new issue" when relevant
Impacted files:
* `app_en.arb`: added an "open new issue if relevant" label.
* `app_fr.arb`: added an "open new issue if relevant" label.
* `loading_dialog.dart`: added an optional `shouldOpenNewIssue` parameter with appropriate display
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded openfoodfacts to 3.2.1
* `sign_up_page.dart`: use the new `shouldOpenNewIssue` parameter when server error
* lint fixes
Impacted files:
* `background_task.dart`: minor refactoring
* `background_task_crop.dart`: added the `UriProductHelper` parameter
* `background_task_details.dart`: added the `UriProductHelper` parameter
* `background_task_download_products.dart`: added the `UriProductHelper` parameter
* `background_task_image.dart`: added the `UriProductHelper` parameter
* `background_task_top_barcodes.dart`: added the `UriProductHelper` parameter
* `background_task_unselect.dart`: added the `UriProductHelper` parameter
* `forgot_password_page.dart`: added the `UriProductHelper` parameter
* `ocr_ingredients_helper.dart`: added the `UriProductHelper` parameter
* `ocr_packaging_helper.dart`: added the `UriProductHelper` parameter
* `onboarding_data_product.dart`: added the `UriProductHelper` parameter
* `ordered_nutrients_cache.dart`: added the `UriProductHelper` parameter
* `paged_product_query.dart`: added the `UriProductHelper` parameter
* `product_cards_helper.dart`: now using an off-dart method
* `product_image_server_button.dart`: added the `UriProductHelper` parameter
* `product_list_import_export.dart`: added the `UriProductHelper` parameter
* `product_list_page.dart`: added the `UriProductHelper` parameter
* `product_query.dart`: added a static `UriProductHelper` that more or less replaces the `QueryType`; minor refactoring
* `product_refresher.dart`: added the `UriProductHelper` parameter
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded off-dart to 3.0.0
* `random_questions_query.dart`: `countries` instead of `country`
* `sign_up_page.dart`: added the `UriProductHelper` parameter
* `temp_product_list_share_helper.dart`: now using a `UriProductHelper`
* `user_management_provider.dart`: added the `UriProductHelper` parameter
* `user_preferences_account.dart`: added the `UriProductHelper` parameter
* `user_preferences_dev_debug_info.dart`: minor refactoring
* `user_preferences_dev_mode.dart`: minor refactoring
* feat: 4554 - new links in FAQ
Impacted files:
* `app_en.arb`: added labels for the 9 new items
* `app_fr.arb`: added labels for 4 new items
* `user_preferences_faq.dart`: added 9 items; fixed 2 items
* `product_query.dart`: new `replaceSubdomain` method
* feat: 4554 - new icons for app install
Impacted files:
* `RVB_ICON_BLACK_BG_OBF.svg`: dark version of Beauty app icon
* `RVB_ICON_BLACK_BG_OPF.svg`: dark version of Product app icon
* `RVB_ICON_BLACK_BG_OPFF.svg`: dark version of Pet Food app icon
* `RVB_ICON_WHITE_BG_OBF.svg`: light version of Beauty app icon
* `RVB_ICON_WHITE_BG_OPF.svg`: light version of Product app icon
* `RVB_ICON_WHITE_BG_OPFF.svg`: light version of Pet Food app icon
* `user_preferences_faq.dart`: new icons for app install, dark and light
* feat: 4554 - new icon layout
Impacted file:
* `user_preferences_faq.dart`: all icons are now centered on a 48x48 square, the real icons have the standard size, and the svg icons have a width of 48
* feat: 4554 - new 5 items for the contact page
Impacted files:
* `app_en.arb`: added labels for the new 5 items
* `user_preferences_connect.dart`: added 5 items
* `user_preferences_faq.dart`: minor refactoring
* feat: 4423 - specific "Not connected to internet" displayed error
Impacted files:
* `barcode_product_query.dart`: removed useless `try` as already `catch`'ed
* `continuous_scan_model.dart`: removed the `codeInvalid` case that could never happen
* `fetched_product.dart`: refactored with explicit constructors and additional exception and connectivity fields; removed the `codeInvalid` case that could never happen
* `new_product_page.dart`: minor refactoring
* `product_dialog_helper.dart`: removed the `codeInvalid` case that could never happen; minor refactoting
* `product_list_item_simple.dart`: removed the `codeInvalid` case that could never happen
* `product_loader_page.dart`: removed useless `try` as already `catch`'ed
* `product_refresher.dart`: added a specific "You're not connected to the internet" error message; refactored using more `FetchedProduct`; removed useless method
* `pubspec.lock`: wtf
* `pubspec.yaml`: added package `connectivity_plus`
* `question_card.dart`: refactored using `FetchedProduct`
* feat: 4423 - fixed pubspec.yaml
* feat: 4423 - new "server down" message after a ping attempt
Impacted files:
* `fetched_product.dart`: added field `failedPingedHost` where we store the host that we couldn't ping
* `generated_plugin_registrant.cc`: wtf
* `generated_plugins.cmake`: wtf
* `GeneratedPluginRegistrant.swift`: wtf
* `main.dart`: registered `DartPingIOS`
* `product_refresher.dart`: now trying to ping the server if exception and connection
* `pubspec.lock`: wtf
* `pubspec.yaml: added packages `dart_ping` and `dart_ping_ios`
* feat: 4423 - stupid lint check part 1
* feat: 4423 - stupid lint check part 2
* feat: 4423 - stupid lint check part 3
* feat: 4423 - stupid lint check part 5
* feat: 4423 - localizations
Impacted files:
* `app_en.arb`: 4 new labels when we couldn't retrieve a product (not found, no internet, server down, server error)
* `product_refresher.dart`: used the new labels
* App review in the "scan card"
* Add a keep alive to prevent many requests
* Add a missing call to super (for the KeepAlive mixin)
* Don't really understand what happened with this file 🤨
Impacted files:
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded to off-dart 2.6.0
* `random_questions_query.dart`: added a country filter for hunger games
* Migration to Flutter 3.10
* Bump Flutter version on actions
* GitHub Actions: use channel instead of a fixed version of Flutter
* Add a missing argument due to the upgrade to Flutter 3.10
* Regenerate goldens
---------
Co-authored-by: monsieurtanuki <fabrice_fontaine@hotmail.com>
Impacted files:
* `app_en.arb`: added the "next n questions" label for hunger games
* `app_fr.arb`: added the "next n questions" label for hunger games
* `congrats.dart`: "continue" button label as a String parameter
* `product_questions_query.dart`: added a `count` parameter
* `product_questions_widget.dart`: added the `count` parameter
* `question_page.dart`: different `count` parameters; set the "continue" button label
* `questions_query.dart`: added a `count` parameter
* `random_questions_query.dart`: added a `count` parameter
* `robotoff_insight_helper.dart`: added the `count` parameter
* feat: 4020 - instant answers for hunger games
New files:
* `background_task_hunger_games.dart`: Background task about answering a hunger games question.
* `random_questions_query.dart`: Robotoff questions helper, for random product questions.
Deleted file:
* `product_question_page.dart`
Impacted files:
* `abstract_background_task.dart`: added "hunger games"
* `background_task_crop.dart`: minor refactoring
* `background_task_details.dart`: minor refactoring
* `background_task_image.dart`: minor refactoring
* `background_task_manager.dart`: simplified the code, as we now always work on tasks with different stamps
* `background_task_refresh.dart`: minor refactoring
* `background_task_unselect.dart`: minor refactoring
* `new_product_page.dart`: minor refactoring
* `offline_data_page.dart`: minor refactoring
* `operation_type.dart`: added a type for "hunger games" background task
* `product_list_import_export.dart`: minor refactoring
* `product_list_page.dart`: minor refactoring
* `product_questions_query.dart`: pre-loads the product if relevant
* `product_questions_widget.dart`: minor refactoring
* `product_refresher.dart`: new standard configuration for product lists; new silent download of product lists; minor refactoring
* `question_card.dart`: now downloading the product only if not in the local database
* `question_page.dart`: now saving the answer with background tasks; refactored
* `questions_query.dart`: refactored as abstract, with code moved to new file `random_questions_query.dart`
* `robotoff_insight_helper.dart`: minor refactoring
* feat: 4020 - unrelated package upgrade
* fix: 4098 - new enum value from iOS 12
Impacted files:
* `consent_analytics_page.dart`: minor refactoring
* `country_selector.dart`: now using the preferences for initial country code; same UI as language selector
* `main.dart`: minor refactoring
* `next_button.dart`: minor refactoring
* `onboarding_flow_navigator.dart`: refactoring around `OnboardingPage`
* `permissions_page.dart`: minor refactoring
* `product_query.dart`: minor refactoring
* `user_preferences.dart`: minor refactoring
* `user_preferences_dev_mode.dart`: minor refactoring
* `user_preferences_page.dart`: minor UI fix (app bar title on 2 lines)
* `user_preferences_settings.dart`: added the "selected language" parameter; minor refactoring
* `welcome_page.dart`: fixed a visual overflow bug
New file:
* `multilingual_helper.dart`: Helper for multilingual inputs (e.g. product name).
Deleted file:
* `ocr_widget.dart`: moved code to `edit_ingredients_page.dart`, for better state refresh
Impacted files:
* `add_basic_details_page.dart`: refactored with new class `MultilingualHelper`
* `edit_ingredients_page.dart`: added multilingual management; moved code from `ocr_widget.dart`
* `ocr_helper.dart`: refactored with multilingual management
* `ocr_ingredients_helper.dart`: refactored with multilingual management
* `ocr_packaging_helper.dart`: refactored with multilingual management
* `product_query.dart`: added multilingual ingredients field; removed duplicate field
Impacted files:
* `background_task_crop.dart`: added language to transient file key
* `background_task_image.dart`: added language to transient file key
* `background_task_unselect.dart`: unrelated removal of not used fields
* `edit_ingredients_page.dart`: now we display localized images
* `image_upload_card.dart`: added language to transient file key
* `ocr_widget.dart`: added language to transient file key
* `product_cards_helper.dart`: now returns a localized image; refactored; new method `getLocalizedProductImageUrl`
* `product_image_carousel.dart`: now we display localized images
* `product_image_gallery_view.dart`: now we display localized images
* `product_image_swipeable_view.dart`: now we display localized images
* `product_image_viewer.dart`: now we display localized images
* `product_query.dart`: unrelated removal of not used field
* `product_refresher.dart`: unrelated minor refactoring
* `smooth_product_image.dart`: now we display localized images
* `transient_file.dart`: added language to transient file key
* `up_to_date_changes.dart`: unrelated removal of not used fields
* feat: 3863 - language selector refactoring
Impacted files:
* `language_selector.dart`: moved code to new static method `openLanguageSelector`
* `user_preferences_languages_list.dart`: minor refactoring
* `user_preferences_settings.dart`: minor refactoring
* feat: 3863 - language selector with preselections
Impacted files:
* `language_selector.dart`: added the concept of "pre selected languages" and their different displays
* `product_query.dart`: added a `TODO`
* `user_preferences_settings.dart`: minor refactoring
* feat: 3863 - multilingual input for product name
Impacted files:
* `add_basic_details_page.dart`: introduced the multilingual input
* `language_selector.dart`: added an optional "displayed language" parameter, useful for `AddBasicDetailsPage`
* `product_query.dart`: now we download the `NAME_ALL_LANGUAGES` product field too
* `up_to_date_changes.dart`: now we manage the `productNameInLanguages` product field too
Impacted files:
* `pubspec.lock`: wtf
* `pubspec.yaml`: used new version of off-dart, with optional user for robotoff random questions
* `questions_query.dart`: the user may be null
Impacted files:
* `app_en.arb`: added a label for the "send image" button (instead of vague "confirm")
* `background_task_crop.dart`: added a product change where we store the crop parameters
* `background_task_image.dart`: added a fake product change where we remove the crop parameters
* `new_crop_page.dart`: added constructor parameters `initialCropRect` and `initialRotation`; removed the "new photo" button for UI/UX consistency
* `product_image_viewer.dart`: refactored with 2 or 4 buttons and cleaner code
* `product_query.dart`: added `IMAGES` product field
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded `openfoodfacts` to `2.2.1` (about `ProductImage`)
* `rotation.dart`: added method `fromDegrees`
* `up_to_date_changes.dart`: added `images` to "overwritable" product fields; now accepts all operation types
Impacted files:
* `app_en.arb`: added a label about "packaging complete"
* `background_task_details.dart`: added field `packagingComplete`
* `edit_new_packagings.dart`: added a `packagingComplete` editor; fixed a bug by populating the controllers at init time and not on demand; now disposes the controllers; aligned the titles
* `product_query.dart`: added field `PACKAGINGS_COMPLETE`
* `up_to_date_changes.dart`: added field `packagingComplete`
Impacted files:
* `paged_to_be_completed_product_query.dart`: renamed `State` as `ProductState`
* `paged_user_product_query.dart`: created local `UserSearchType` instead of deprecated off-dart `UserProductSearchType`; used `ProductSearchQueryConfiguration` instead of deprecated `UserProductSearchQueryConfiguration`
* `product_query.dart`: now that we use fully v3, we don't need the temporary field list for user-related queries with v2
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgrade to off-dart 2.0.0
* `user_preferences_account.dart`: now using new local class `UserSearchType`
* and reduced all off-dart imports to a single `import 'package:openfoodfacts/openfoodfacts.dart';`
* feat: 3430 - new packagings edit page based on api v3
New file:
* `edit_new_packagings.dart`: Edit display of a product packagings (the new api V3 version).
Impacted files:
* `background_task_details.dart`: added specific save method call for api V3
* `edit_product_page.dart`: added call to new page `EditNewPackagings`
* `ocr_packaging_helper.dart`: minor unrelated refactoring
* `paged_user_product_query.dart`: specific field list
* `product_query.dart`: upgraded to api V3; added field `PACKAGINGS`; added specific field list for user-related searches (they do not support `PACKAGINGS`)
* `product_refresher.dart`: upgraded to api V3
* `simple_input_page.dart`: minor refactoring
* `simple_input_widget.dart`: refactoring about making the autocomplete widget reusable
* `up_to_date_changes.dart`: added new field `packagings`; minor unrelated refactoring
* Update packages/smooth_app/lib/pages/product/edit_product_page.dart
Co-authored-by: Pierre Slamich <pierre.slamich@gmail.com>
* feat: 3430 - dart format
Co-authored-by: Pierre Slamich <pierre@openfoodfacts.org>
Co-authored-by: Pierre Slamich <pierre.slamich@gmail.com>
* refactor: integrating off-dart 1.30.1
Impacted files:
* `background_task_details.dart`: minor refactoring
* `background_task_image.dart`: minor refactoring
* `background_task_refresh_later.dart`: minor refactoring
* `country_selector.dart`: minor refactoring
* `new_product_page.dart`: minor refactoring
* `ocr_packaging_helper.dart`: minor refactoring
* `offline_data_page.dart`: now using an explicit api version
* `ordered_nutrients_cache.dart`: minor refactoring
* `paged_search_product_query.dart`: now using an explicit api version
* `paged_to_be_completed_product_query.dart`: now using an explicit api version
* `Podfile.lock`: wtf
* `product_image_data.dart`: minor refactoring
* `product_list.dart`: minor refactoring
* `product_list_import_export.dart`: now using an explicit api version
* `product_list_page.dart`: now using an explicit api version
* `product_query.dart`: explicit api version
* `product_query_page.dart`: minor refactoring
* `product_refresher.dart`: now using an explicit api version
* `products_preload_helper.dart`: now using an explicit api version
* `app/pubspec.lock`: wtf
* `smooth_app/pubspec.lock`: wtf
* `pubspec.yaml`: upgraded off-dart version to 1.30.1
* `up_to_date_changes.dart`: minor refactoring
* refactor: fix 3470
Impacted file:
* `user_preferences_account.dart`: now logging error and displaying nothing if cannot count, and optimized the code
Impacted files:
* `app_en.arb`: added 1 label for "website field title"
* `app_fr.arb`: added 1 label for "website field title"
* `new_product_page.dart`: now displays a card for website, if available
* `product_query.dart`: added "website" product field