13 Commits

Author SHA1 Message Date
e3bc40fdf3 chore: Migration to Dart 3.8 (#6668)
* Migration to Dart 3.8

* New GA

* Fix dartdoc
2025-06-23 18:14:17 +02:00
dda75e283e feat: Flutter 3.32 (#6665)
* Migration to Flutter 3.32

* Temporary ignore dart formatter issues
2025-06-23 09:56:00 +02:00
9c5b20bb88 ImageViewer fails with semi-empty product (#6374) 2025-02-12 09:21:29 +01:00
8324456818 feat: Improved nutrition input (#6261)
* 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
2025-01-21 19:20:48 +01:00
a3f44f4c3b KP enhancements (#6184) 2025-01-12 12:14:47 +01:00
e53b0f3c09 feat: An indicator if the photo may be locked by the producer (#5974)
* An indicator if the photo may be locked by the producer

* Implement suggestions
2024-12-01 11:09:19 +01:00
3c12fe0245 feat: 5643 - removed irrelevant editors for non-FOOD products (#5663)
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
2024-10-04 10:15:13 +02:00
bbf84d17d9 feat: Step-by-step fast-track (#4698)
* 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>
2023-11-15 19:08:46 +01:00
efb0483f60 feat: 4674 - new UI for main image page; fallback image only for product icon (#4738)
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
2023-10-28 12:23:00 +02:00
75683db4af feat: 3919 - select languages for new product images (#4255)
* 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>
2023-08-24 09:20:36 +02:00
72e98df762 feat: 3880 - added a "get photo" button on the edit packaging component page (#3942)
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
2023-05-13 10:18:27 +02:00
a8366fd49f feat: 3897 - no language selector for gallery, only for swipeable page (#3924)
* 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
2023-04-30 18:34:35 +02:00
558034fb6f feat: 3897 - mutilingual gallery and swipeable images - read only (#3917)
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`
2023-04-29 13:56:36 +02:00