* feat: 4223 - comparison page for 3 random products on dev mode
New file:
* `compare_products3_page.dart`: Test page about comparing 3 products. Work in progress.
Impacted files:
* `attributes_card_helper.dart`: refactored introducing two new reusable methods
* `nutrition_container.dart`: refactored introducing one reusable getter
* `product_cards_helper.dart`: refactored introducing one new reusable method
* `user_preferences_dev_mode.dart`: added an item computing 3 random products and showing the product comparison page
* feat: 4223 - stupid lint check part 4
* feat: 4223 - access to boosted comparison from list page via dev mode
Impacted files:
* `product_list_page.dart`: slightly refactored the app bar text in selection mode, in order to have several possible actions; replaced the FAB with an explicit (?) "multi-select" button; added a "boosted comparison" icon button when 2 or 3 products are selected; added a "ranking" icon button
* `user_preferences_dev_mode.dart`: added a dev mode flag for "boosted comparison" (sic)
* feat: 4223 - minor warning fix
* feat: 4223 - now displays item actions in a "more..." menu
New file:
* `product_list_item_popup_items.dart`: Popup menu items for the product list page, for selected items.
Impacted files:
* `product_list_page.dart`: now displays item actions in a "more..." menu
* `product_list_popup_items.dart`: minor refactoring
Impacted files:
* `attributes_card_helper.dart`: refactor as advanced `enum` from `score_card_helper.dart`
* `knowledge_panel_summary_card.dart`: now using the new `ScoreCard.titleElement` constructor
* `score_card.dart`: refactored `CardEvaluation` as advanced `enum` from `score_card_helper.dart`; refactored `ScoreCard` with 2 explicit constructors instead of a single nameless one
* `score_card_helper.dart`: refactored `enum`s and moved code to more relevant files
* `summary_card.dart`: now using the new `ScoreCard.attribute` constructor
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';`
New file:
* `Podfile.lock`: related to a fresh iOS restart
Impacted file:
* `attributes_card_helper.dart`: icons instead of unicode for score items
* `contents.xcworkspacedata`: related to a fresh iOS restart
* `Debug.xcconfig`: related to a fresh iOS restart
* `project.pbxproj`: related to a fresh iOS restart
* `Release.xcconfig`: related to a fresh iOS restart
New file:
* `user_preferences_dev_mode.dart`: Collapsed/expanded display of "dev mode" for the preferences page.
Impacted files:
* `attributes_card_helper.dart`: unrelated - removed useless cupertino.dart imports
* `forgot_password_page.dart`: added a system to trigger the dev mode (click 10 times on the action button)
* `product_cards_helper.dart`: unrelated - removed useless cupertino.dart imports
* `score_card_helper.dart`: unrelated - removed useless cupertino.dart imports
* `smooth_reveal_animation.dart`: unrelated - removed useless cupertino.dart imports
* `svg_icon_chip.dart`: unrelated - removed useless cupertino.dart imports
* `user_preferences.dart`: added a getter/setter for dev mode
* `user_preferences_page.dart`: display the dev mode options - if activated
* Don't show label attribute widgets when their status is unknown
* Create named arguments
* First version of displaying eco card with knowledge panels
* Pubspec changes revert
* Pubspec changes revert
* Pubspec changes revert
* Pubspec changes revert
* Comments resolution and adhere to new BE format
* Revert pubspec.yaml
* Work with nullable elements
* Fix padding
* Add a padding after Icon in Score Card (otherwise on smaller devices the text appears right next to the icon)
* Create a place for shared constants in Smoothie to go
* Merge conflicts resolution
* Add comment
* Make new_product_page responsive on multiple devices
* Update constants.dart
* Tiny
* Update sorting order
* Add some more consts
* Move ui_helpers to -> smooth_ui_library
* Format
* Some more changes
* Merge
* Merge
* Merge
* Updates to ui_helper
* Format
* Remove 'Loading..' text and fix some padding
* Remove 'Loading..' text and fix some padding
* Remove 'Loading..' text and fix some padding
* Fix how to process attribute match score
Co-authored-by: Jasmeet Singh <jasmeetsingh@google.com>
Please note that there are a lot of moving elements that are not final in this PR, specifically:
1. The group ordering or the attributes inside groups will change on the server
2. Attribute titles will change from the server
3. Attribute icons are still not final, and will change, currently we have 3 shades of colors that will most likely change to 5, instead of emojis we will most likely use icons.
4. The red panel on top of the card is currently static, it will be modified based on a new field from backend.
5. the styling of the Divider will change
6. None of the UI elements are currently final, (padding, text style, colors etc).
Please also note that this PR has a side-effect of changing the background color of the app's theme to material-light-blue from material-blue. This is in sync with the current mocks.
Example summary card:

Add a new product page that follows the new design, reuses as much code as possible with the old one, some of the code is copy pasted, eventually the old product page will be deleted..