Filter history: product list integration - #16423
Open
AdamGrzybkowski wants to merge 1 commit into
Open
Conversation
Collaborator
|
|
AdamGrzybkowski
force-pushed
the
issue/WOOMOB-3827-product-list-integration
branch
from
August 14, 2026 14:49
a1ca77f to
f82a1c1
Compare
There was a problem hiding this comment.
AI Code Review - No issues found. The changes look good.
This PR integrates filter history into the product list, closely mirroring the existing order-list use case. I verified the following and found the change correct and safe:
- The referenced nav action (
action_productFilterListFragment_to_filterHistoryFragment),R.menu.menu_filter_history, and the analytics constants (FILTER_HISTORY_BUTTON_TAPPED,VALUE_FILTER_HISTORY_SOURCE_PRODUCTS) all already exist in the codebase, so the new code compiles and wires up correctly. ProductFilterHistoryMapperis a pure codec:fromPayloadswallows malformed JSON viarunCatchingand returns null, and the category-name is only persisted when a category id is present, keeping dedup by payload reliable.SaveProductFilterToHistoryis a fire-and-forget best-effort write on the app scope, guarded by the feature flag and ahasSelection()check, with failures logged rather than propagated.onPastFilterSelectedrebuilds the in-memory options andsavedStateconsistently beforeloadFilters(), and the feature flag also gates menu visibility.- Test coverage is thorough: round-trip/dedup for the mapper, save/skip/label-resolution for the use case, and repopulation + undecodable-payload handling for the ViewModel.
Automatic review · claude-opus-4-8 · Workflow run
How to reply to a finding
Reply on this review (or inline at the line the finding refers to) with one of:
@claude addressed- I made the change. Bot verifies against the next diff before marking resolved.@claude rejected: <reason>- Will not fix; reason gets quoted on the next review.@claude not-applicable- Finding does not apply (wrong file, already covered elsewhere, etc.).
The bot honours these on the next review pass.
AdamGrzybkowski
force-pushed
the
issue/WOOMOB-3827-product-list-integration
branch
from
August 14, 2026 15:04
f82a1c1 to
8b65f8e
Compare
AdamGrzybkowski
force-pushed
the
issue/WOOMOB-3827-product-list-integration
branch
from
August 14, 2026 15:07
8b65f8e to
60a111a
Compare
AdamGrzybkowski
force-pushed
the
issue/WOOMOB-3827-product-list-integration
branch
from
August 14, 2026 15:14
60a111a to
7c973a6
Compare
AdamGrzybkowski
force-pushed
the
issue/WOOMOB-3827-product-list-integration
branch
2 times, most recently
from
August 14, 2026 15:22
f5a595b to
2bb1d60
Compare
Adds a flag-gated clock entry point on the product filter screen, saves the current selection to history on Show Products (via SaveProductFilterToHistory on the app scope), and applies a picked past filter. Part 4 of WOOMOB-3326 (WOOMOB-3827).
AdamGrzybkowski
force-pushed
the
issue/WOOMOB-3827-product-list-integration
branch
from
August 14, 2026 15:27
2bb1d60 to
c57d377
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Part of WOOMOB-3326 — WOOMOB-3827
Description
Final PR in the filter history stack: wires the shared history screen into the product list filters (reusing the clock entry point from #16422). Behind the
FILTER_HISTORYflag.source=productsandfilter_history_button_tapped.SaveProductFilterToHistory(app-scope, fire-and-forget,runCatching). Products use a single shared ViewModel, so the save is covered whether Show Products is tapped from the list or an options sub-screen.productFilterOptionsmap + category name, then reloading the filters.ProductFilterHistoryMapperis a pure JSON codec (matching the order side); label resolution lives in the use case. The category name is only persisted when a category id is actually selected, so clearing to "Any" can't leak a stale name or break dedup.Test Steps
Enable Filter History in the developer feature-flag screen, then on the Products tab:
source=products.Stacked PRs
PR 4 of 4. Base branch:
issue/WOOMOB-3826-order-list-integration(#16422).