Tidy up after the Home tab: one Home state, shared row scaffolding, media keys in one place
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Refactor
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- kotlin
- Domain
- mobile-dev
Research direction
Start with the HomeViewModel and HomeScreen state flow, then inspect ChannelRow, MoviePosterRow, SeriesPosterRow, ChannelCard, and PosterCard for shared scaffolding. Follow the listed call sites in VodViewModel, HomeViewModel, OpenTvViewModels.kt, ViewerLibrary, and MainScreen; check existing tests and screenshots after each refactor. Done means all six tidy-ups are completed or declined with reasons, with behavior unchanged.
Written by the indexing model from the issue text.
Description
What to build
Tidy-ups the #16 code review (PR #61) found but left alone. None of them changes what a viewer sees.
- One Home state (already done, see the agent brief):
HomeViewModelexposes four nullable lists thatHomeScreennull-checks together. OneHomeState?built withcombinewould replace them, and with them thestateInrepeated four times. - Shared row and card scaffolding:
ChannelRowrepeats theMoviePosterRow/SeriesPosterRowshape (SectionHeaderand a paddedLazyRow).ChannelCardrepeatsPosterCard's focus scale and border. - Pass-through wrapper:
VodViewModel.resolveResumeonly calls the top-levelresumeItem, so callers could call it directly. - Types in the wrong place:
VodViewModel.ResumeItemandSeasonEpisodeare used byHomeViewModeltoo, so they belong at the top level. - Media keys built by hand:
"movie:${id}"and"ep:${id}"are written inOpenTvViewModels.ktand again asViewerLibrary's private prefixes. One place should build and parse them, so a format change happens once. - Leftover alias:
val homeTab = Tab.HOMEinMainScreen.
Acceptance criteria
The agent brief in the comments replaces this list where they differ.
- Each item above is done, or noted here as declined with a reason
- No behaviour change; existing tests and screenshots pass unchanged
- Dominant language
- Kotlin
- Stars
- 0
- Forks
- 0
- Avg merge
- 2h 13m
- Merged PRs (30d)
- 59
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from neutraltone/settee
-
bug ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
neutraltone/settee#132 · 1 comment ·
Maintainers usually reply within 1 day
-
bug ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
neutraltone/settee#91 · 1 comment ·
Maintainers usually reply within 1 day
-
enhancement needs-triage
Difficulty 3/5 1-2 days Newbie friendliness 48/100
neutraltone/settee#131 ·
Maintainers usually reply within 1 day
-
enhancement needs-triage
Difficulty 3/5 1-2 days Newbie friendliness 40/100
neutraltone/settee#130 ·
Maintainers usually reply within 1 day
-
bug needs-triage
Difficulty 4/5 3-5 days Newbie friendliness 25/100
neutraltone/settee#129 ·
Maintainers usually reply within 1 day
All issues in neutraltone/settee
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
open-telemetry/opentelemetry-android#2183 ·
Maintainers usually reply within 2 days
-
bug core p3
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
RunanywhereAI/runanywhere-sdks#1258 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Kotlin-server-squad/vizcore#278 ·
Maintainers usually reply within 1 day
-
Empty blood pressure handled as “null” string in exam editPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
open-learning-exchange/myplanet#18484 ·
Maintainers usually reply within 1 day