24 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
5a88d11396 feat: 6289 - faster bulk proof upload without cropping (#6486)
* feat: 6289 - faster bulk proof upload without cropping

New file:
* `price_bulk_proof_card.dart`: Card that displays the bulk proof button for price adding.

Impacted files:
* `crop_helper.dart`: minor refactoring
* `crop_page.dart`: minor refactoring
* `crop_parameters.dart`: minor refactoring
* `eraser_model.dart`: minor refactoring
* `price_proof_card.dart`: minor refactoring
* `proof_bulk_add_page.dart`: simplified by removing the FAB and using new widget `PriceBulkProofCard`

* added warning

* added l10n
2025-04-13 12:29:50 +02:00
663a125740 Allow to retake a picture (#6228) 2025-01-19 12:13:35 +01:00
ea1893deb8 chore: Minor UI changes (#6095)
* Minor UI changes

* Remove warning
2025-01-03 11:03:49 +01:00
d021b23943 Fix crop buttons color + add tooltip (#6087) 2024-12-30 15:41:13 +01:00
b44a5f546c feat: Many improvements for the photo gallery (#5895)
* Improvements for the photo gallery (and many many other changes)

* Make the indicator white (temporary?)

---------

Co-authored-by: Edouard Marquez <edouard@marquez.cool>
2024-11-23 12:45:50 +01:00
ebb90b171a feat: Crop page: increase paddings (#5279)
* Crop page: increase paddings

* Fix: regression on Product image page
2024-06-20 17:45:56 +02:00
036bda1fec feat: 5301 - added an erasing tool for proofs (#5341)
New files:
* `eraser_model.dart`: Model about the eraser tool: coordinate computations.
* `eraser_painter.dart`:  Painter of the eraser tool: displaying thick lines.

Impacted files:
* `background_task_add_price.dart`: displaying the eraser bars if relevant; new `eraserCoordinates` field
* `background_task_image.dart`: minor refactoring
* `crop_helper.dart`: new `enableEraser` field `offsets` parameters
* `crop_page.dart`: added an erasing tool for proofs; refactored
* `crop_parameters.dart`: new `eraserCoordinates` parameter
* `operation_type.dart` unrelated minor refactoring
* `product_crop_helper.dart`: minor refactoring
* `product_price_item.dart`: unrelated fix for TEST env
* `proof_crop_helper.dart`: minor refactoring
* `pubspec.lock`: wtf
* `pubspec.yaml`: needed upgrade of `crop_image` to `1.0.13`
2024-06-07 09:22:22 +02:00
1728eff579 Replace all MediaQuery.of(context).size with MediaQuery.sizeOf(context) (#5328) 2024-06-03 17:09:37 +02:00
529fe8f5e1 feat: 5301 - price proofs can be cropped and will be displayed (#5305)
* feat: 5301 - price proofs can be cropped and will be displayed

New files:
* `crop_helper.dart`: Crop Helper for images in crop page: process to run when cropping an image.
* `crop_parameters.dart`: Parameters of the crop operation.
* `product_crop_helper.dart`: Crop Helpers for product images.
* `proof_crop_helper.dart`: Crop Helper for proof images.

Impacted files
* `add_new_product_page.dart`: minor refactoring
* `background_task.dart`: new method `isDeduplicable`
* `background_task_add_price.dart`:
* `background_task_image.dart`: made some methods `static` and public to be reused
* `background_task_manager.dart`: now using new method `isDeduplicable`
* `background_task_upload.dart`: new method `isDeduplicable`
* `crop_page.dart`: refactored using `CropHelper`
* `image_crop_page.dart`: minor refactoring
* `may_exit_page_helper.dart`: minor refactoring
* `price_model.dart`: minor refactoring
* `price_proof_card.dart`: now we may crop the image and we also display the result
* `product_image_crop_button.dart`: refactored using `CropHelper`
* `uploaded_image_gallery.dart`: minor refactoring

* feat: 5301 - fixed WillPopScope2

Impacted files
* `crop_page.dart`: fixed `WillPopScope2`
* `product_price_add_page.dart`: added a `TODO`
* `price_proof_card.dart`: minor refactoring

* Unrelated - fixed `getUrl` bug (was always PROD, never TEST)

New file:
* `signalconso.png`: new asset

Impacted files
* `product_cards_helper.dart`: fixed `getUrl` bug (was always PROD, never TEST)
* `product_image_crop_button.dart`: fixed `getUrl` bug (was always PROD, never TEST)
* `product_image_gallery_other_view.dart`: fixed `getUrl` bug (was always PROD, never TEST)
* `product_image_other_page.dart`: fixed `getUrl` bug (was always PROD, never TEST)
* `uploaded_image_gallery.dart`: fixed `getUrl` bug (was always PROD, never TEST)
2024-05-30 14:34:35 +02:00
6a2722f414 chore: Migration to Flutter 3.19 (#5154)
* Migration to Flutter 3.19.x

* Fix warnings about `(context).mounted`
2024-04-15 18:06:14 +02:00
bccdf1c5ce chore: Migration to Flutter 3.16 (#4917)
* Migration to Flutter 3.16

* Dart format

---------

Co-authored-by: monsieurtanuki <fabrice_fontaine@hotmail.com>
2024-01-09 12:02:00 +01:00
346c6e30c4 fix: 1815 - around context.mounted (#4768)
* fix: 1815 - around context.mounted

The PR is about two related topics:
* Removing all the `ignore: use_build_context_synchronously`
* Replacing all the `State<StatefulWidget> widget` by `BuildContext context`, now that it's possible in flutter

* Update packages/smooth_app/lib/pages/onboarding/permissions_page.dart

* format fix
2023-11-15 11:50:00 +01:00
ba9c3478ef fix: 4725 - refresh of the ios folder for background tasks (#4772)
Impacted files:
* `background_task_crop.dart`: now using new safe method `getFile` instead of just `File`
* `background_task_image.dart`: now using new safe method `getFile` instead of just `File`
* `background_task_upload.dart`: now fixing the ios directory
* `crop_page.dart`: now using a shared directory
2023-11-13 09:05:52 +01:00
4ab2150a60 chore: old TODOs (#4758)
Deleted files:
* `dao_hive_product.dart`: we don't store products in hive since 18 months ago
* `dao_unzipped_product.dart`: we don't store products as unzipped since 18 months ago

Impacted files:
* `background_task_hunger_games.dart`: impacted by off-dart new features
* `background_task_image.dart`: impacted by off-dart new features
* `crop_page.dart`: impacted by off-dart new features
* `local_database.dart`: removed hive and unzipped products
2023-11-04 13:56:58 +01: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
da4c265d95 fixed safearea issue (#4379) 2023-07-26 17:24:42 +02:00
5a72a46fbf feat: Better support error when saving the picture locally (#4305) 2023-07-17 13:17:52 +02:00
57eff4524e fix: 4219 - check if new picture is big enough before server upload (#4224)
Impacted files:
* `app_en.arb`: added 2 labels for a "too small image" dialog!
* `background_task_image.dart`: now we check before server call if the image is big enough
* `crop_page.dart`: now we check if the image is big enough before new image upload
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded crop_image for controller bug fix
2023-06-24 19:10:14 +02:00
1af41f27ff fix: 3964 - text messages instead of circular indicator for crop page + isolate (#3965)
Impacted files:
* `app_en.arb`: added 5 labels for the action progress on crop page
* `background_task_image.dart`: minor refactoring
* `crop_page.dart`: displays a text instead of a stuttering circular progress indicator; minor refatoring
* `image_compute_container.dart`: now using `compute` as much as possible - still not possible for `ui`
2023-05-18 18:14:07 +02:00
6e72ff0991 fix: 3595 - transient file refactoring and fixes (#3939)
New file:
* `background_task_upload.dart`: Background task about generic file upload.

Impacted files:
* `abstract_background_task.dart`: added a `recover` abstract method
* `background_task_crop.dart`: now extends new class `BackgroundTaskUpload`
* `background_task_image.dart`: now extends new class `BackgroundTaskUpload`
* `background_task_manager.dart`: now calls `recover`for each task at run time; minor fix about "internet error"
* `background_task_unselect.dart`: minor refactoring; minor fix removing the transient file
* `crop_page.dart`: minor refactoring
* `edit_ingredients_page.dart`: minor refactoring
* `image_upload_card.dart`: minor refactoring
* `product_cards_helper.dart`: minor refactoring
* `product_image_viewer.dart`: minor refactoring
* `smooth_product_image.dart`: minor refactoring
* `transient_file.dart`: refactored as a "real" class, not a static one
2023-05-13 10:12:52 +02:00
72f33964ab fix: 3899 - back to the main photo page after cropping from gallery (#3938)
Impacted files:
* `app_cs.arb`: unrelated warning fix
* `app_pl.arb`: unrelated warning fix
* `app_pt.arb`: unrelated warning fix
* `app_ro.arb`: unrelated warning fix
* `crop_page.dart`: unrelated fix - the new `CropImage` we use does already dispose the controller
* `uploaded_image_gallery.dart`: when a file was returned from the crop page, we go back to the previous page
2023-05-13 10:10:49 +02:00
2115b8b652 feat: 3765 - now using the "crop_image" package (#3926)
* feat: 3765 - now using the "crop_image" package

Deleted files:
* `crop_grid.dart`
* `rotated_crop_controller.dart`
* `rotated_crop_image.dart`
* `rotation.dart`

Impacted files:
* `background_task_image.dart`: minor refactoring
* `crop_page.dart`: renamed and moved; now using the `crop_image` package
* `image_compute_container.dart`: renamed and moved; refactored
* `image_crop_page.dart`: minor refactoring
* `product_image_viewer.dart`: minor refactoring
* `pubspec.lock`: wtf
* `pubspec.yaml`: added `crop_image`, upgraded `image` and related packages
* `uploaded_image_gallery.dart`: minor refactoring

* feat: 3765 - now using the CropController.getCroppedBitmap method

Impacted files:
* `background_task_image.dart`: minor refactoring
* `image_compute_container.dart`: removed code that is now in `CropController`
* `pubspec.lock`: wtf
* `pubspec.yaml`: upgraded `crop_image`
2023-05-02 07:29:04 +02:00