Skip to content

feat: refine external player settings and selective routing options#510

Open
mattsigal wants to merge 1 commit into
Moonfin-Client:mainfrom
mattsigal:feature/external-player-check
Open

feat: refine external player settings and selective routing options#510
mattsigal wants to merge 1 commit into
Moonfin-Client:mainfrom
mattsigal:feature/external-player-check

Conversation

@mattsigal

Copy link
Copy Markdown
Contributor

Cleaning up External Player Behaviours

Summary

Refines the settings representation and conditional routing logic for external media players.

Related Issues

Link related issues or tickets separated by commas.

  • Closes #
  • Fixes #
  • Related to #

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • UI/UX update
  • Documentation update
  • Build/CI change
  • Other (describe):

Changes Made

  • Centralized player filtering in ExternalPlayerService.listPlayers to omit system stubs (Gallery, Lightbox, etc.) from picker dialog and launching.
  • Decoupled configuration of the "External player app" preference tile from the default "Use external player" toggle setting.
  • Styled the "External player app" preference tile to use TvFocusHighlight and selection bubbles on the right.
  • Hidden "Open in External Player" from advanced playback menu when "Ask each time" (empty component name) is configured in settings. Now will only show when a player is set.
  • Directly routes play requests to the configured external player (e.g. VLC) immediately without showing the app chooser.
  • Skip cinema mode prerolls during external player media routing.
  • Updated "Use external player" to "Always use external player"
  • Ran localization scripts to prepare for translations

Platform

  • Android
  • iOS
  • macOS
  • Windows
  • Linux
  • All / Shared code

Testing

Describe how this change was tested.

  • Tested on emulator / simulator
  • Tested on physical device
  • Manual testing completed
  • Not tested (explain why):

Test Steps

  1. Navigate to Settings -> Advanced Options.
  2. Confirm the "External player app" tile has focus highlighting, shows a selection bubble on the right, and is interactable even when "Use external player" is toggled off.
  3. Open the "External player app" picker and verify "Video player" (com.android.gallery3d) is absent.
  4. Set the player app to "Ask each time". Verify "Open in External Player" does not appear in the long-press advanced playback menu.
  5. Set the player app to "VLC". Verify "Open in External Player" does appear in the long-press advanced playback menu and directly launches VLC when clicked.
  6. Verify cinema mode prerolls are bypassed when launching VLC.

Screenshots (if applicable)

Include screenshots or recordings for UI changes.

Shield_Screenshot_2026-06-12_11-55-37

With an external player chosen:
Shield_Screenshot_2026-06-12_11-56-02

Without an external player chosen:
Shield_Screenshot_2026-06-12_12-09-05

Checklist

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

- Centrally filter out system stubs (e.g. Gallery and lightbox) in ExternalPlayerService.
- Decouple "External player app" preference tile configuration from "Use external player" toggle.
- Style the "External player app" tile with focus highlighting and an option selection bubble.
- Hide the "Open in External Player" advanced play option when no player is configured.
- Route direct launches to the configured external player (e.g. VLC) immediately without the app chooser.
- Skip cinema mode prerolls during external player playback routing.
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.

1 participant