Skip to content

feat-ui - The Return of the Identify#929

Merged
RadicalMuffinMan merged 2 commits into
Moonfin-Client:mainfrom
mattsigal:feature/identify-metadata
Jul 26, 2026
Merged

feat-ui - The Return of the Identify#929
RadicalMuffinMan merged 2 commits into
Moonfin-Client:mainfrom
mattsigal:feature/identify-metadata

Conversation

@mattsigal

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

One of the features I loved in base Jellyfin was to Identify media that might have the wrong meta-data attached to it. This PR incorporates a Jellyfin-style Identify metadata function that allows administrators to identify and update metadata for Movies, TV Shows, and Collections via item context menus and detail page admin controls. Interface improves upon Jellyfin's UI (shows searchable fields with keyboard entry points, that can also be populated from the currently detected meta-data, and is themed) and was designed to be TV-friendly with full d-pad traversal implementations included.

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

List the key changes included in this PR.

  • Add custom identify_dialog.dart with two-column layout: blank search parameters on the left with pull-arrows and current item metadata badges on the right.
  • Add Identify action to item long-press context menus (context_action.dart) and item detail page admin controls (item_detail_screen.dart and admin_metadata_edit_screen.dart).
  • Automatically redirect Identify action for TV Episode and TV Season items to identify the parent TV Series.
  • Add multi-attempt fallback search pipeline with TMDB, TVDB, and IMDb provider key handling.
  • Ensure safe dialog dismissal and unfocus handling to prevent FocusNode disposal crashes.
  • Add localization strings for Identify dialog UI elements across supported languages.

Platform

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

Testing

Describe how this change was tested.

  • Tested on emulator / simulator
  • Tested on physical device
  • Manual testing completed - Tested on Android TV and Windows Desktop
  • Not tested (explain why):

Test Steps

  1. Long press a Movie, TV Series, TV Episode, or TV Season card on the Home page or Library.
  2. Select "Identify" from the context menu.
  3. Verify for TV Episodes and Seasons that the dialog populates reference metadata and path for the parent TV Series.
  4. Perform search, select matching remote result, and apply metadata updates.
  5. Switch to a non-admin account and ensure that Identify is hidden from long-press menus.

Screenshots (if applicable)

Include screenshots or recordings for UI changes.

Jellyfin Identify Page and Search Results

2026-07-24_20-19-22_brave 2026-07-24_20-19-49_brave

Android TV Interface:

Shield_Screenshot_2026-07-24_23-28-40

Navigation between "Arrow" and Blank Text Field:

Shield_Screenshot_2026-07-24_23-39-41 Shield_Screenshot_2026-07-24_23-39-33

Moonfin Keyboard Support:

Shield_Screenshot_2026-07-24_23-39-50

Search Example (testing parameters):

Shield_Screenshot_2026-07-24_23-40-12 Shield_Screenshot_2026-07-24_23-40-22

Search Example (move name only):

Shield_Screenshot_2026-07-24_23-47-20

Series Identification from Episode Tile:

Shield_Screenshot_2026-07-25_01-30-20

Identify Hidden for Non-Admin Accounts:

Shield_Screenshot_2026-07-25_01-39-53

Matching Windows Desktop Interface:

2026-07-25_01-53-46_moonfin 2026-07-25_01-54-07_moonfin 2026-07-25_01-54-13_moonfin

Moonfin Theme

2026-07-25_01-55-12_moonfin

Checklist

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

…parent TV Series

- Add custom Identify dialog with search parameters, current metadata reference, and remote provider lookup
- Add Identify action to item context menus and detail page admin controls
- Redirect Identify action for TV Episode and TV Season items to target the parent TV Series
- Fix FocusNode disposal crash on dialog dismissal by unfocusing FocusScope before pop
- Update localization strings for Identify dialog components
@RadicalMuffinMan
RadicalMuffinMan merged commit 05c221a into Moonfin-Client:main Jul 26, 2026
5 of 6 checks passed
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.

2 participants