Skip to content

Add option for trickplay preview mode when D-Pad seeking#1650

Merged
damontecres merged 5 commits into
damontecres:mainfrom
calebvetter:feature/dpad-seek-options
Jul 23, 2026
Merged

Add option for trickplay preview mode when D-Pad seeking#1650
damontecres merged 5 commits into
damontecres:mainfrom
calebvetter:feature/dpad-seek-options

Conversation

@calebvetter

Copy link
Copy Markdown
Contributor

Description

Adds a setting to allow the user to choose between the current D-Pad skip functionality, and a new simple trickplay overlay.

The setting is added in Advanced, under the Playback section, called "D-Pad seek mode". The options are "Skip time" and "Trickplay previews". I left the default as "Skip time" since that's how it operates now, and nothing would change for users after this option is added unless they go and set it.

When "Trickplay previews" is enabled, it shows an simple overlay when using the D-Pad to seek (without the full overlay open). The new simple overlay is the same implementation of the components in the full overlay: seekbar, trickplay images, current playhead time, remaining time. The components were pulled from the full overlay's inline UI code into their own reusable components, now used in both the full overlay and the simple overlay.

Notes

I could see there being an adjustment for the overlay hide delay. It's currently hard coded to 1.5s.

This could be the default method, but it seems like preference is split as to whether people want this, or the minimalistic skipped seconds only version.

Related issues

This is directly in response to this issue, as well as my own desire for the feature :)
#1084

It's also loosely related to this issue, in that it would solve it since it shows the playhead and remaining times.
#1122

Testing

Built and tested on an Amazon Fire TV Stick 4K Max. I wouldn't anticipate and compatibility or performance changes since it's a simple settings/UI change involving already-used UI components.

Screenshots

wholphin-20260630-155708 wholphin-20260630-155723 wholphin-20260630-153825

AI or LLM usage

AI was used to generate the change, automate some testing, and provide information surrounding the change. I manually did some refactoring and cleanup to keep it clean and consistent with the rest of the code conventions.

@damontecres

Copy link
Copy Markdown
Owner

Thanks for the contribution @calebvetter ! Can you resolve the merge conflicts so I can review?

@damontecres damontecres added user interface Related to the user interface playback Related to media playback labels Jul 16, 2026
@calebvetter
calebvetter force-pushed the feature/dpad-seek-options branch from 8c16605 to 00eb94f Compare July 17, 2026 22:26
@calebvetter

Copy link
Copy Markdown
Contributor Author

Done! Let me know what you think and if there's anything you'd like to see different!

@damontecres

Copy link
Copy Markdown
Owner

Thanks again! The code looks pretty solid. However, I'm not sure it's the right behavior.

This shows the trickplay and seeks simultaneously, but I think the desired behavior would be how the full UI seek bar works: trickplay shows immediately, but there is a slight delay before seeking.

What do you (and others) think?

@ktm0589-design

Copy link
Copy Markdown

I think the desired behavior would be how the full UI seek bar works: trickplay shows immediately, but there is a slight delay before seeking.

This!

@calebvetter
calebvetter force-pushed the feature/dpad-seek-options branch from 00eb94f to 7825535 Compare July 20, 2026 15:47
@calebvetter
calebvetter force-pushed the feature/dpad-seek-options branch from 7825535 to 105e0bb Compare July 20, 2026 15:49
@calebvetter

calebvetter commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

Ahh, yes that does sound better. My mind was stuck closer to the current dpad seek functionality when making this, haha.

Updated to use the same seek bar state update as the full UI, which has the built in 750ms debounce. Added a helper function in the playback key handler so all seek calls get funneled correctly based on user prefs, handled by the playback page in the callback function.

@ScottESanDiego

Copy link
Copy Markdown

I'm not personally a fan of the current seekbar behavior, but +1 to consistency.

@ktm0589-design

Copy link
Copy Markdown

Maybe a setting to set the delay time?

If this gets accepted, when will the android TV app gets the update? Does that take long usually?

@calebvetter

calebvetter commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

Maybe a setting to set the delay time?

I could see that, but it would be outside the scope of this PR since the delay time is directly tied to the full UI's seekbar delay time (as it should be, I think). So it would probably be something for a new PR if there's enough interest in that.

If this gets accepted, when will the android TV app gets the update? Does that take long usually?

It looks like they publish a version every couple weeks or so, as needed, which would include any features/fixes that have been merged up to that point.

@damontecres

Copy link
Copy Markdown
Owner

I pushed a few changes. I prefer to separate the functions that get state from ones that perform actions, so I split the new onDpadSeek & onEnterHiddenControls functions.

I also added animation for the seek bar to slide in & out.

@damontecres damontecres left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Thanks!

@damontecres

Copy link
Copy Markdown
Owner

If this gets accepted, when will the android TV app gets the update? Does that take long usually?

Not a hard and fast rule, but I've been pushing a new release about every two weeks. I'm planning to release early next week.

@damontecres damontecres changed the title Feature: Add trickplay preview mode for D-Pad seeking Add option for trickplay preview mode when D-Pad seeking Jul 23, 2026
@damontecres
damontecres merged commit cf3c00a into damontecres:main Jul 23, 2026
2 checks passed
@calebvetter

Copy link
Copy Markdown
Contributor Author

I pushed a few changes. I prefer to separate the functions that get state from ones that perform actions, so I split the new onDpadSeek & onEnterHiddenControls functions.

I also added animation for the seek bar to slide in & out.

Sweet! I'll keep this in mind if I work on anything else! :)

damontecres added a commit that referenced this pull request Jul 25, 2026
## Description
Adds a third option for d-pad seeking to not show any seek bar which
only shows the skip indicator and not the seek bar along the bottom

### Related issues
Original work to add other mode in #1650
Closes #1520

### Testing
Emulator testing

## Screenshots
<img width="546" height="347" alt="image"
src="https://github.com/user-attachments/assets/2872566e-4598-4284-92cb-95a45b307835"
/>

## AI or LLM usage
None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

playback Related to media playback user interface Related to the user interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants