* Improved nutrition input
* Translate all TODOs
* Loading + error states
* Update labeler
* "Add" icon with the same size as "Help"
* Fix light/dark mode switch issue
* Button to a nutrient at the bottom
* Remove warning
Impacted files:
* `add_new_product_page.dart`: editors different when not FOOD; minor refactoring
* `edit_product_page.dart`: no ingredient editor for PRODUCTS
* `image_field_extension.dart`: now the main image fields depend on product type; minor refactoring (more compact `switch` syntax)
* `knowledge_panels_builder.dart`: minor fix
* `product_cards_helper.dart`: now the main image fields depend on product type
* `product_image_gallery_view.dart`: now the main image fields depend on product type
* `product_image_swipeable_view.dart`: now the main image fields depend on product type
* Product Info Design Changed
* Product Design Page splitted
* Back Button Added
* Product info page fullscreen, and Back button Added
* Made Review Changes
* used the double format + trailing commas + removed hardcode values
* Trailling comma change
* Theme.of(Context) cached, added trailiing commas, Mediaquery.sizeof() used
* Print Removed and Colorsceme is now under build function
* Text style Edited with copywith()
* Text style Edited with copywith()
---------
Co-authored-by: Pierre Slamich <pierre@openfoodfacts.org>
Impacted files:
* `add_new_product_helper.dart`: minor refactoring
* `add_new_product_page.dart`: minor refactoring
* `image_field_extension.dart`: minor refactoring
* `product_cards_helper.dart`: removed references to fallback image - now we stick to the specified language; minor refactoring
* `product_image_carousel.dart`: minor refactoring
* `product_image_gallery_view.dart`: added a language selector; new UI
* `product_image_swipeable_view.dart`: added an optional language parameter; simplified the code now relying only on `ImageField`
* `product_image_viewer.dart`: minor refactoring
* `smooth_list_tile_card.dart`: minor refactoring
* `smooth_product_image.dart`: now we explicitly use the default image if needed
* feat: 3919 - select languages for new product images
New file:
* `add_new_product_helper.dart`: Helper classes for `AddNewProductPage` that was getting too big.
Impacted files:
* `add_basic_details_page.dart`: minor refactoring
* `add_new_product_page.dart`: moved code to new file `add_new_product_helper.dart`; refactored the trackers with new class `AnalyticsProductTracker`; refactored the access to image edit
* `add_simple_input_button.dart`: minor refactoring
* `crop_page.dart`: minor refactoring
* `edit_new_packagings.dart`: minor refactoring
* `edit_ocr_page.dart`: minor refactoring
* `edit_product_page.dart`: minor refactoring
* `image_crop_page.dart`: minor refactoring
* `image_field_extension.dart`: minor refactoring
* `nutrition_page_loaded.dart`: minor refactoring
* `product_cards_helper.dart`: minor refactoring
* `product_field_editor.dart`: minor refactoring
* `product_image_carousel.dart`: minor refactoring
* `product_image_carousel_item.dart`: renamed from `image_upload_card.dart`
* `product_image_gallery_view.dart`: minor refactoring
* `product_image_local_button.dart`: minor refactoring
* `product_image_server_button.dart`: minor refactoring
* `product_image_swipeable_view.dart`: minor refactoring
* `product_image_viewer.dart`: minor refactoring
* `product_refresher.dart`: minor refactoring
* `uploaded_image_gallery.dart`: minor refactoring
* feat: 3919 - merge conflict fixes
* feat: 3919 - conflict fix
---------
Co-authored-by: Pierre Slamich <pierre@openfoodfacts.org>
Impacted files:
* `edit_new_packagings.dart`: added a "get photo" button on top; refactored with the up-to-date provider
* `image_field_extension.dart`: new `getPhotoButton` method
* `nutrition_page_loaded.dart`: refactored with the up-to-date provider and the new `getPhotoButton` method
* feat: 3897 - no language selector for gallery, only for swipeable page
Main changes:
* `app_en.arb`: added 2 translations ("no image" / "no image for that language")
* `app_fr.arb`: added 2 translations ("no image" / "no image for that language")
* `nutrition_page_loaded.dart`: removed an implicit `language` parameter
* `product_cards_helper.dart`: refactoring
* `product_image_gallery_view.dart`: removed the language selector
* `product_image_swipeable_view.dart`: removed the language parameter; now we always start with the app language
* `product_image_viewer.dart`: now always displays the (non) image for the specified language, with additional labels; added explicit `language` parameters
* `transient_file.dart`: new method `getImageLanguages`
Added explicit `language` parameters for:
* `add_new_product_page.dart`: added an explicit `language` parameter
* `background_task_crop.dart`: added an explicit `language` parameter
* `background_task_image.dart`: added an explicit `language` parameter
* `background_task_unselect.dart`: added an explicit `language` parameter
* `edit_ingredients_page.dart`: added an explicit `language` parameter
* `edit_new_packagings.dart`: added an explicit `language` parameter
* `image_crop_page.dart`: added an explicit `language` parameter
* `image_upload_card.dart`: added an explicit `language` parameter
* `new_crop_page.dart`: added an explicit `language` parameter
* `product_image_local_button.dart`: added an explicit `language` parameter
* `product_image_server_button.dart`: added an explicit `language` parameter
* `uploaded_image_gallery.dart`: added an explicit `language` parameter
* feat: 3897 - slightly related refactoring around ImageFieldSmoothieExtension
* feat: 3897 - minor fix for TEST env
New file:
* `image_field_extension.dart`: moved code from `product_cards_helper.dart`
Deleted files:
* `product_image_unswipeable_view.dart`
* `smooth_images_sliver_list.dart`
* `smooth_images_view.dart`
Impacted files:
* `image_upload_card.dart`: minor refactoring
* `language_selector.dart`: added an optional foreground color (use case: explicit white for images on a black background)
* `new_crop_page.dart`: minor refactoring
* `nutrition_page_loaded.dart: now using a new special case constructor of `ProductImageSwipeableView` instead of now deleted `ProductImageUnswipeableView`
* `product_cards_helper.dart`: added language-related methods; refactored
* `product_image_carousel.dart`: minor refactoring
* `product_image_data.dart`: added language
* `product_image_gallery_view.dart`: simplified the display of the 4 images; added the language selector on top; refactored the title
* `product_image_swipeable_view.dart`: now handles the "mono imagefield" case; now manages languages; minor refactoring
* `product_image_viewer.dart`: added the language selector; removed the irrelevant `Scaffold`