Skip to content

feat-sync - Add new loading animation properties to MoonfinSettingsProfile - #271

Open
mattsigal wants to merge 1 commit into
Moonfin-Client:masterfrom
mattsigal:feature/loading-animation-sync
Open

feat-sync - Add new loading animation properties to MoonfinSettingsProfile#271
mattsigal wants to merge 1 commit into
Moonfin-Client:masterfrom
mattsigal:feature/loading-animation-sync

Conversation

@mattsigal

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

Adds five loading animation preference properties (from Moonfin-Client/Moonfin-Core#1416) to MoonfinSettingsProfile in both Jellyfin and Emby plugin models to support cross-device synchronization with Moonfin clients.

Related Issues

Link related issues or tickets separated by commas.

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • API / endpoint change
  • Settings schema change
  • Documentation update
  • Build/CI change
  • Other (describe):

Area

  • Settings sync / profiles
  • Admin defaults / config page
  • Ratings (MDBList / TMDB)
  • Notifications / Push (FCM / relay)
  • Seerr integration
  • Games / Emulators
  • Custom home rows
  • Web Client (Go to Moonfin-Core repo)
  • Other / shared

Changes Made

List the key changes included in this PR.

  • Added LoadingAnimationImage, LoadingAnimationSize, LoadingAnimationPosition, LoadingAnimationSpeed, and ShowLoadingAnimationText nullable properties to MoonfinSettingsProfile in Jellyfin/backend/Models/MoonfinSettingsProfile.cs.
  • Added corresponding properties with explicit [JsonPropertyName] tags to MoonfinSettingsProfile in Emby/Emby.Plugins.Moonfin/Models/MoonfinSettingsProfile.cs.

Client Impact

Does this need matching changes in a client repo (Core, Smart-TV, Roku)?

  • No client changes needed
  • Companion client PR(s) required, linked here: feat-ui - The one about Custom Loading Animations Moonfin-Core#1416
  • New setting keys added. List each key and confirm it matches the client key exactly, including casing:
    • loadingAnimationImage
    • loadingAnimationSize
    • loadingAnimationPosition
    • loadingAnimationSpeed
    • showLoadingAnimationText

Compatibility

  • Change to the settings profile is additive only, no renamed or removed properties
  • New properties use the same type the client sends (a client bool maps to bool?, an int to int?)
  • Migration added for any renamed or removed settings
  • Older clients still work, unknown fields are ignored and no keys were removed

Testing

Describe how this change was tested.

  • Built the plugin and deployed to a Jellyfin server
  • Verified against a live client (which one:)
  • Manual testing completed
  • Not tested (explain why): Tested via build tests but not deployed yet as I need to build clients to sync between.

Test Steps

  1. Build Moonfin.Server.csproj with dotnet build.
  2. Build Emby.Plugins.Moonfin.csproj with dotnet build.
  3. Verify 0 compilation errors or warnings.
  4. Verify property reflection and serialization in MoonfinSettingsProfile.
  5. Verify matching client keys in companion PR feat-ui - The one about Custom Loading Animations Moonfin-Core#1416 with unit tests in test/data/synced_fields_test.dart.

Screenshots (if applicable)

Include config page screenshots or request/response samples where relevant.

N/A

Checklist

  • Code builds successfully
  • Code follows project style and conventions
  • No unnecessary commented-out code
  • No new warnings introduced
  • Any new setting keys match the client-side keys exactly

- Add LoadingAnimationImage, LoadingAnimationSize, LoadingAnimationPosition, LoadingAnimationSpeed, and ShowLoadingAnimationText to MoonfinSettingsProfile in Jellyfin plugin model
- Add matching properties to MoonfinSettingsProfile in Emby plugin model
- Supports cross-device settings synchronization with Moonfin-Core PR #1416
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown

Build Successful

The plugin compiled successfully against .NET 8 / Jellyfin 10.10.0.

Property Value
Commit 35c57c2
Workflow Build #360

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant