[TV] Search suggestions and history - #5746
Conversation
|
Claude finished @sztomek's task in 6m 3s —— View job Review: [TV] Search parity with Apple TV
Nice piece of work — the parity table in the description made this easy to follow, and calling out the podcast-ordering reversal for a decision rather than burying it is exactly right. The Most of what follows falls out of one thing: the search is now two-phase, and a few places still assume it's atomic. Blocking-ish1. Unguarded suspend calls can crash the app — 2. Transient false "No results for …" — 3. The two phases are serialised — Worth fixing before merge4. Three dead imports in 5. Preview coverage — the checklist claims previews cover the new components, but 6. Redundant truncation — 7. Focus / UX to verify on device8. Focus black hole after picking a suggestion — the focused tile is removed from composition in the same frame with no explicit focus target. Other restore sites here all use a 9. Rows inserted above the focus — when the full search lands, Featured and Episodes carousels appear above the podcasts row the user may already be scrolling. That's the price of progressive + Apple's row order; just flagging it as the thing to watch when you get a device. On your open question — podcast orderingWorth noting that the code doesn't quite do what the description says. The precedence is For what it's worth: subscribed-first is a stronger default on a 10-foot UI, where scrolling is expensive and the shows you follow are the ones you're most likely reaching for. If you keep remote-first, a "Your shows" section would recover most of that. Smaller notes
I did not build or run the test suite in this environment; findings are from reading the diff and surrounding code. |
Generated by 🚫 Danger |
69e600c to
489431e
Compare
|
Version |
489431e to
a596632
Compare
a596632 to
21d3ea9
Compare
|
Claude finished @sztomek's task in 4m 36s —— View job Review: [TV] Search suggestions and history
Re-reviewed at
Nothing here is a merge blocker on its own; the two focus items are the ones I'd want eyes on before this ships. Worth fixing1. Moving down into the suggestions row saves the half-typed term — 2. Focus is dropped when a click removes the focused tile — 3. Early publish skips the 4. Request volume —
Test coverageThe new tests are good and honest — The gap is the progressive publish itself, which is the centrepiece of the PR and has no test. A Turbine assertion that On the open design questionFor the record, the code still doesn't match what the description says. The precedence is My earlier view hasn't changed: subscribed-first is a stronger default on a 10-foot UI, where scrolling is expensive and the shows you follow are the ones you're most likely reaching for. If remote-first wins, a "Your shows" section recovers most of it. Smaller notes
I could not run |
|
Claude finished @sztomek's task in 2m 29s —— View job Review: [TV] Search suggestions and history
Re-reviewed at val earlyPodcasts = (predictivePodcasts + localPodcasts)
.distinctBy(ImprovedSearchResultItem.PodcastItem::uuid)
.map { if (it.uuid in localUuids) it.copy(isFollowed = true) else it }Status of the previous round:
One new findingThe 300ms debounce turns the
It's the same class of problem This also compounds finding #2: Still open from last roundHalf-typed terms reach shared history. Note that the new test Focus black hole on recent-search tap. Test coverageThe new tests are well chosen and honest — Still no test for the progressive publish, which is the centrepiece of the PR. A Turbine assertion that Smaller notes (unchanged, all optional)
On the open design questionUnchanged from last round, and worth restating since the Slack thread is still open: the code's precedence is I could not run |
Description
Brings the Android TV Search screen up to parity with the Apple TV app (
pocket-casts-ios/Pocket Casts TV App/UI/Search), closing a set of gaps found in a behavioural audit. Stacked on #5745 (the combined-search crash fix) — review/merge that first; this PR's diff excludes it.What changed
combinedSearch(all-at-once)autoCompleteSearch) → fast podcasts + term suggestions, then full search fills in episodeshas_videodropped by the DTOSearchTopResultsView)Shared
servers/modelchange:CombinedResult.EpisodeResultnow parseshas_video, andImprovedSearchResultItem.EpisodeItemcarrieshasVideo(additive, defaults false — benefits phone too).There is an ongoing conversation about the UX, see slack: p1786735532787109-slack-C0ATWH7BNH3
UPDATE
UX is approved!
Fixes POC-848 https://linear.app/a8c/issue/POC-848/search-suggestions-and-history
Notes / follow-ups
Testing Instructions
network-type results still error)../gradlew :tv:installDebug. Open Search, type a query:./gradlew :tv:testDebugUnitTest :modules:services:servers:testDebugUnitTest :modules:services:repositories:testDebugUnitTest.Screenshots or Screencast
Screen_recording_20260814_212101.mp4
Checklist
./gradlew spotlessApply)