-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Tags IA] Integrate subfilters and post list in Tags Feed #20747
[Tags IA] Integrate subfilters and post list in Tags Feed #20747
Conversation
The idea is that the Provider is the component responsible for fetching the correct SubFilterViewModel, but it doesn't necessarily own the ViewModel. This was done so we can use the current feed as the Owner of the SubFilter ViewModel without it actually declaring it, so the outermost layer of the Reader (ReaderFragment) is still the source of truth for getting the SubFilterViewModel but the actual lifecycle of the ViewModel is tied to the current feed fragment.
…ss-Android into issue/subfilter-viewmodel
Generated by 🚫 Danger |
|
App Name | ![]() |
|
Flavor | Jalapeno | |
Build Type | Debug | |
Version | pr20747-306dc7c | |
Commit | 306dc7c | |
Direct Download | jetpack-prototype-build-pr20747-306dc7c.apk |
|
App Name | ![]() |
|
Flavor | Jalapeno | |
Build Type | Debug | |
Version | pr20747-306dc7c | |
Commit | 306dc7c | |
Direct Download | wordpress-prototype-build-pr20747-306dc7c.apk |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## feature/tags-ia #20747 +/- ##
================================================
Coverage 40.75% 40.76%
================================================
Files 1492 1493 +1
Lines 68505 68525 +20
Branches 11309 11315 +6
================================================
+ Hits 27920 27931 +11
- Misses 38060 38065 +5
- Partials 2525 2529 +4 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 The code is well-structured with clear separation of concerns.
I noticed that PTR doesn't work anymore in the Tags Feed.
Aside from this, the feature seems to work as expected. I've also noticed a couple of things about the new UI; I'm 99% sure they are not related to this PR, but I want to collect my feedback here since we're now working with a UI that uses real data:
-
Having to deal with horizontal lists of non-homogeneous items sometimes made me think there was a problem with the UI, even though it's not a problem of the UI itself; it's because the posts don't have pictures in them.
-
Scrolling horizontally through a row can be stuttering, and it's definitely not smooth on my device, a Pixel 5. It's not a new device, but it's not that old either.
-
I see the same problem with vertical scrolling in the feed. Follow a few tags, and try to scroll vertically. (The same happens when you follow new tags and go back to the list; you see the placeholders, and vertical scrolling is a bit stuttering.)
We didn't implement it yet, so it never worked in the Tags Feed. There's an issue opened for implementing that: #20707 Regarding the stuttering, right now the tag loading is far from optimal, since we're requesting everything at once and I'm not even sure what's running on the UI thread and what's actually being sent to a background thread. We still have other tasks to improve that, like this: #20708 Thanks for bringing it up! |
I just added the |
|
Okay, thanks for the clarification; I didn't notice the ticket about PTR. Approving this PR! |
Fixes #20669
SubFilterViewModel
to move relevant observers toReaderFragment
and be able to reuse it properly in Tags FeedTo Test:
reader-tags-feed
feature flag is onRegression Notes
Potential unintended areas of impact
What I did to test those areas of impact (or what existing automated tests I relied on)
What automated tests I added (or what prevented me from doing so)
PR Submission Checklist:
RELEASE-NOTES.txt
if necessary.Testing Checklist (strike-out the not-applying and unnecessary ones):