Conversation
…ume as OK The dedicated Play and Pause keys open coded their own avplayPlay/avplayPause rather than sharing handlePlayPause's body, so the bookkeeping that hangs off a pause applied to some ways in and not others. Resuming with Play skipped the Unpause Rewind setting entirely, while resuming with OK or Play/Pause honoured it, so the same setting rewound or did not depending on which button was pressed. On Tizen those keys also skipped the pause and unpause progress reports, leaving the server to notice the change on the next ten second poll, and never told the health monitor it was paused. Pulled the two halves out as pausePlayback and resumePlayback. handlePlayPause is now the toggle that dispatches on AVPlay's state, and the one way keys call the halves directly so Play still cannot pause. The group guards move with the halves, and handlePlayPause keeps its own so a state that is neither playing nor paused still asks the server, as before. webOS had the same split: its Play key called video.play() straight, missing the rewind. The rest of its bookkeeping rides the media element's own play and pause events, so only the rewind needed moving. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
✅ Build SuccessfulAll platform builds and the test suite passed. You can download the artifacts below.
|
10 tasks
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.
Pull Request
Summary
The remote's dedicated Play and Pause keys open-coded their own
avplayPlay/avplayPauseinstead of sharinghandlePlayPause's body, so the bookkeeping that hangs off a pause applied to some ways in and not others. Most visibly, Unpause Rewind was skipped when resuming with Play but applied when resuming with OK — the same setting rewound or did not depending on which button was pressed.Follow-up to #436, which surfaced this. Independent of it — branched from
main, no overlap.Related Issues
Type of Change
Changes Made
handlePlayPauseout aspausePlaybackandresumePlayback.handlePlayPausebecomes the toggle that dispatches on AVPlay state; the one-way keys call the halves directly, so Play still cannot pause and Pause cannot resume — that asymmetry is why they were not simply calling the toggle already.KEYS.PLAY/KEYS.PAUSEalready had them), andhandlePlayPausekeeps its own so a state that is neitherPLAYINGnorPAUSED/READYstill sends a play request, exactly as before.video.play()directly and skipped the rewind. The rest of its bookkeeping rides the media element's ownplay/pauseevents, so only the rewind needed moving, hence the much smaller diff there.What each entry point did before, and now does uniformly:
unpauseRewindreportProgresshealthMonitor.setPausedKEYS.PLAY_PAUSE(10252)KEYS.PLAY(415)KEYS.PAUSE(19)On the two secondary columns, for honesty about severity:
reportProgresswas real but minor (the 10 s poll reported the state anyway, just late).healthMonitor.setPausedwas inert — Tizen'shandleUnhealthyonly logs, and webOS's guards onvideo.paused. Fixed for correctness, not because either misbehaved.One new behaviour worth noting: pressing Play from
READYnow applies Unpause Rewind and reports progress, where before it just played. Consistent with the OK button, but new for that key.Platform
Testing
.wgtwas built from it but not installed.enact lintis clean on both files and CI Build [Playback] When playback speed is applied there is no sound #290 passed all four platform builds and the test suite.Worth exercising with Unpause Rewind set to a non-zero value — with it Off every path looks identical and there is nothing to see.
Not exercised: SyncPlay. The guards are unchanged, but this is the part most worth a maintainer's eye.
Test Steps
Screenshots (if applicable)
Not applicable — no visual change; this is key handling and playback bookkeeping.
Checklist
enact lintclean🤖 Generated with Claude Code