* 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
* 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
Impacted files:
* `analytics_helper.dart`: new getter `_anonymousVisitorId`; refactoring
* `main.dart`: minor refactoring
* `user_preferences.dart`: new method `getUniqueRandom()` that is used to compute and store the first letter of the anonymous visitor ID.
* 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
* 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 🤨
* Robotoff question in a product, visible as a banner (at the bottom of the screen) or in a button (current implementation)
We split the users into two cohorts and we will have some Analytics to understand if one is better than the other.
The CongratsWidget is also improved by some animations and accessibility
* Now with a better animation
* feat: 4163 - "incomplete product" card added to product summary
New files:
* `product_compatibility_header.dart`: Header showing the product compatibility (color + text). Used to be private in `summary_card.dart`.
* `product_incomplete_card.dart`: "Incomplete product!" card to be displayed in product summary, if relevant.
* `summary_attribute_group.dart`: Shows the attribute groups in a product summary card. Used to be private in `summary_card.dart`.
Impacted files:
* `add_new_product_page.dart`: added a constructor for product instead of barcode; added display parameters; now using new "nutrition field editor"
* `add_nutrition_button.dart`: minor refactoring
* `app_en.arb`: added 1 label for the "hey! please complete the product!" message
* `app_navigator.dart`: minor refactoring
* `edit_product_page.dart`: minor refactoring
* `nutrition_page_loaded.dart`: minor refactoring
* `product_field_editor.dart`: new "nutrition field editor"
* `smooth_product_card_not_found.dart`: minor refactoring
* `summary_card.dart`: refactored into additional files because the file was getting too big and possibly too confusing; added the "incomplete product" card (if relevant)
* feat: 4163 - after review
Impacted files:
* `app_en.arb`: changed the label
* `product_incomplete_card.dart`: changed the border radius
* feat: 4163 - after comment
Impacted files:
* `add_new_product_page.dart`: added an `AnalyticsEvent` in the constructors; simplified the constructors.
* `analytics_helper.dart`: added 2 events
* `product_incomplete_card.dart`: minor refactoring
* `summary_card.dart`: added a matomo
* feat: 4163 - after comment
Impacted files:
* `add_new_product_page.dart`: added an `AnalyticsEvent` in the constructors; simplified the constructors.
* `analytics_helper.dart`: added 2 events
* `product_incomplete_card.dart`: minor refactoring
* `summary_card.dart`: added a matomo
* feat: 4163 - new analytics category "fast track edit product"
Impacted files:
* `add_new_product_page.dart`: specific events for each case
* `analytics_helper.dart`: added 1 category and 4 events
* feat: 3843 - matomo for new product page
Impacted files:
* `add_new_product_page.dart`: implemented the tracking of 6 events for matomo
* `analytics_helper.dart`: added 1 category and 6 related events for the "new product page"
* feat: 3843 - TraceableClientMixin
* Support for deep links on Android
* Deep links: Better support for network errors / unknown product
* iOS configuration for deep links
* Improve documentation
* Improve doc
* Support other domains
* Add an error page
* Upgrade to go_router 7.0.2
* Add some Sentry events
* Update packages/smooth_app/lib/helpers/extension_on_text_helper.dart
Co-authored-by: monsieurtanuki <fabrice_fontaine@hotmail.com>
* SizedBox -> EMPTY_WIDGET
* PreferencePageType: from name to tag
* Remove an unused async keyword
* Move internal app routes to an enum
* Add a clarification about `ProductLoaderPage`
* Update packages/smooth_app/lib/pages/navigator/app_navigator.dart
Co-authored-by: Pierre Slamich <pierre.slamich@gmail.com>
* Revert how we open the product addition/creation on the product not found card
---------
Co-authored-by: monsieurtanuki <fabrice_fontaine@hotmail.com>
Co-authored-by: Pierre Slamich <pierre.slamich@gmail.com>
* fix: test that if user opts out he/she will be
tracked with a user id of 0000000000000000
* fix: implement to make test work
* fix: Implement suggestions from review
* fix: change to init
Co-authored-by: monsieurtanuki <fabrice_fontaine@hotmail.com>
* fix: add comment
Co-authored-by: monsieurtanuki <fabrice_fontaine@hotmail.com>
* fix: add explicit optOut
Co-authored-by: monsieurtanuki <fabrice_fontaine@hotmail.com>
* fix: remove surplus statement
Co-authored-by: monsieurtanuki <fabrice_fontaine@hotmail.com>
* fix: remove test
* fix: use old imports
* fix: format with dart format
---------
Co-authored-by: markdurst <mark.durst@deutschebahn.com>
Co-authored-by: monsieurtanuki <fabrice_fontaine@hotmail.com>
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';`
Impacted files:
* `analytics_helper.dart`: new method about barcode not found; fixed typos
* `barcode_product_query.dart`: added Matomo (and not Sentry) message when barcode is not found