[TV] Add the Listening History screen - #5792
Conversation
Generated by 🚫 Danger |
|
Claude finished @sztomek's task in 4m 13s —— View job ReviewThe screen itself is a faithful copy of the Up Next pattern and the view model/tests mirror Blocking
Non-blocking
|
58c9dfd to
b46fa11
Compare
|
Claude finished @sztomek's task in 1m 3s —— View job ReviewNo new commits since my last review ( Blocking
Non-blocking
--- • branch |
b46fa11 to
bee11b6
Compare
|
Claude finished @sztomek's task in 58s —— View job Review
Non-blocking
|
bee11b6 to
f4d55dc
Compare
|
Claude finished @sztomek's task in 45s —— View job ReviewThis push is a rebase onto the updated |
f4d55dc to
edf5b84
Compare
edf5b84 to
f48f27c
Compare
|
Claude finished @sztomek's task in 52s —— View job ReviewThe only change since my last review is |
Description
Adds the Listening History screen to the Android TV app, reaching parity with tvOS (
UI/History/ListeningHistoryView.swift). The profile modal already rendered a "Listening History" button wired to{}with a TODO; this PR builds the screen and wires the action to open it.TvListeningHistoryScreen+TvListeningHistoryViewModelundertv/.../history/.EpisodeManager.findPlaybackHistoryEpisodesFlow(), whose Room query matches tvOS exactly:last_playback_interaction_date > 0 ORDER BY last_playback_interaction_date DESC LIMIT 1000. It is observed reactively, so the list live-updates as playback interactions change (equivalent to tvOSlisteningHistoryChanged/playbackTrackChanged/playbackEnded). No server-history fetch and no clear-history, matching tvOS.TvEpisodeListItem,TvEpisodeActionsModal/TvEpisodeInfoModal,TvEmptyState,LoadingView, and theTvDetailOverlay+tvFocusInactiveWhenpresentation pattern used by the other full-screen destinations.TvEpisodeActionContext.ListeningHistory(sourcelistening_history). Episode actions omit Go to podcast, mirroring tvOS.other(showGoToPodcast: false).tv_history_empty_title/tv_history_empty_subtitle("No listening history" / "Episodes you play will show up here"), matching the tvOS copy.Analytics
ListeningHistoryShownEvent(no properties) when the screen appears, matching tvOSlistening_history_shown, using the sameEventHorizon.trackpattern as the other TV screens.listening_historysource via the new action context.Fixes PCDROID-736 https://linear.app/a8c/issue/PCDROID-736/listening-history-screen
Testing Instructions
Screenshots or Screencast
Checklist
./gradlew spotlessApplyto automatically apply formatting/linting)modules/services/localization/src/main/res/values/strings.xmllistening_history_shownalready exists in the schema for tvOS; this reuses it — Android already listsListeningHistoryShownEvent.)