Skip to content

Jellyfin Session-API remote-control support - #1239

Open
controlfix87 wants to merge 1 commit into
Moonfin-Client:mainfrom
controlfix87:fix/jellymote-remote-and-rtl-detail-bars
Open

Jellyfin Session-API remote-control support#1239
controlfix87 wants to merge 1 commit into
Moonfin-Client:mainfrom
controlfix87:fix/jellymote-remote-and-rtl-detail-bars

Conversation

@controlfix87

@controlfix87 controlfix87 commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Pull Request

Summary

Implements the remaining Jellyfin Session-API remote-control support so Moonfin can be driven by any Jellyfin Session-API controller: volume up/down, fullscreen toggle, and TV-only D-pad navigation.

RTL fixes that were originally part of this PR have been split out into #1249.

Related Issues

Type of Change

  • New feature

Changes Made

  • Implemented VolumeUp/VolumeDown/ToggleFullscreen general commands and declared them in SupportedCommands.
  • Reported VolumeLevel in playback progress reports so a remote controller's volume slider can sync to Moonfin's actual volume.
  • Implemented TV-only D-pad navigation commands (MoveUp/MoveDown/MoveLeft/MoveRight/Select/Back/GoHome), declared only when PlatformDetection.isTV so non-TV builds never advertise support they can't back up.

Platform

  • Android (Android TV)
  • iOS
  • tvOS
  • Web
  • macOS
  • Windows
  • Linux
  • All / Shared code

Testing

  • Tested on physical device
  • Manual testing completed

Test Steps

  1. From a Jellyfin Session-API remote-control client, confirm the Android TV session declares and correctly handles VolumeUp/VolumeDown/ToggleFullscreen, and that its D-pad control moves focus/selects/backs out/goes home against the TV session.

Checklist

  • Code builds successfully
  • Code follows project style and conventions
  • No unnecessary commented-out code
  • No new warnings introduced

@RadicalMuffinMan

Copy link
Copy Markdown
Contributor

Please split the RTL into its own separate PR

@controlfix87

controlfix87 commented Aug 23, 2026

Copy link
Copy Markdown
Contributor Author

Split out — RTL fixes are now in #1249, this PR is remote-control support only.

@controlfix87 controlfix87 changed the title feat: JellyMote remote-control support, fix RTL action/tab bar alignment on Android TV JellyMote remote-control support Aug 23, 2026
Implements VolumeUp/VolumeDown/ToggleFullscreen general commands and
reports VolumeLevel in playback progress so a remote controller can
sync its volume slider. Adds TV-only D-pad navigation commands
(Move*/Select/Back/GoHome), declared only when PlatformDetection.isTV
so non-TV builds never advertise support they can't back up.

RTL fixes split out into a separate PR at reviewer request.
@controlfix87
controlfix87 force-pushed the fix/jellymote-remote-and-rtl-detail-bars branch from 56f4ff2 to 6477816 Compare August 23, 2026 09:04
@controlfix87 controlfix87 changed the title JellyMote remote-control support Jellyfin Session-API remote-control support Aug 23, 2026
@controlfix87
controlfix87 deleted the fix/jellymote-remote-and-rtl-detail-bars branch August 23, 2026 09:04
@controlfix87
controlfix87 restored the fix/jellymote-remote-and-rtl-detail-bars branch August 23, 2026 09:05
@controlfix87 controlfix87 reopened this Aug 23, 2026
@controlfix87

Copy link
Copy Markdown
Contributor Author

Fix RTL layout on Android TV details screen and top toolbar #1249

done. :)

RadicalMuffinMan pushed a commit that referenced this pull request Aug 23, 2026
The movie/show details screen's action button row (Play/Subtitles/
Trailer/etc.) had its D-pad Left/Right hardcoded to a fixed index step,
so a physical Right press moved focus left under RTL. The step
direction now flips under RTL, matching the fix already applied
elsewhere (LockedFocusRow, focusable_action_bar.dart). The action row
and the Cast/Crew/Studios/Details/Similar tab bar also hugged the
physical-left edge regardless of locale; both now use
AlignmentDirectional so they sit on the correct (reading-start) side
under RTL.

Split out of #1239 at reviewer request.
@controlfix87

Copy link
Copy Markdown
Contributor Author

Is there anything wrong here that I need to sort out? can you merge it?

@mattsigal

Copy link
Copy Markdown
Collaborator

You realize that this is a FOSS hobby project and reviewing PRs takes time right? It will be reviewed by @RadicalMuffinMan when he has time, and in the context of the entire app's codebase. Submitting a PR does not mean it is guaranteed to be merged at all, never-mind on an immediate timeline. Please be patient.

@controlfix87

controlfix87 commented Aug 23, 2026

Copy link
Copy Markdown
Contributor Author

You realize that this is a FOSS hobby project and reviewing PRs takes time right? It will be reviewed by @RadicalMuffinMan when he has time, and in the context of the entire app's codebase. Submitting a PR does not mean it is guaranteed to be merged at all, never-mind on an immediate timeline. Please be patient.

You're right. Thank you :)

Came from work (as a dev.. LOL)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants