* 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
New files:
* `app_test.dart`: Onboarding screenshots.
* `screenshot_driver.dart`: Screenshot driver.
Impacted files:
* `analytics_helper.dart`: added a special case for screenshot init.
* `main.dart`: refactored for screenshots, and more specifically moved init code to be run before calling the app.
* `next_button.dart`: added a `Key` for test/screenshots
* `Podfile.lock`: wtf
* `pubspec.lock`: impacted by `pubspec.yaml`
* `pubspec.yaml`: added integration_test and flutter_driver to dev_dependencies; upgraded the version numbers.
Impacted files:
* `analytics_helper.dart`: added 2 static bool fields to say if we should or not send crash and analytics reports
* `main.dart`: init of the crash and analytics report flags
* `user_preferences.dart`: getters/setters for the report flags
* `user_preferences_profile.dart`: added switches for the report flags