[Feature] Code changes to support subtitle shadow + shadow depth control + background color + opacity control#134
Open
anilabhadatta wants to merge 8 commits into
Open
Conversation
feature: shadow on subtitle
…thness in style panel , also locale issue was present fixed it
…nto Dev_shadow_subtitle # Conflicts: # composeApp/src/desktopMain/kotlin/com/nuvio/app/features/player/desktop/NativePlayerController.kt
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
This PR implements full feature parity for Subtitle Shadow and Shadow Density controls on the Nuvio Desktop. It introduces the necessary UI controls in both the main application settings and the desktop webview player bridge, while ensuring correct serialization of the floating-point values without arbitrary limits.
PR type
Why
1. Shadow UI Controls Implementation:
SettingsFloatSliderRow) to properly allow fine-grained tweaking ofshadowDensityon the main settings page.controls.htmlandcontrols.jsto ensure the desktop video player respects and dynamically updates these new subtitle properties.2. Fixing Serialization Density Limits:
NativePlayerController.ktwas inadvertently clamping all JSON serializedFloatvalues between0.0and1.0. Because the max intended density is5.0, this bug artificially prevented the slider inside the desktop webview player from moving past1.0.appendJsonFieldforFloattypes inNativePlayerController.ktto serialize raw values without arbitrary coercion, solving the UI range discrepancy.3. Settings Search Indexing:
SettingsSearch.ktto ensure the new Shadow strings and toggle components are indexed and accessible via the main application search feature.Desktop scope
This PR modifies desktop and common compose settings UI logic and native player bridging logic.
PlaybackSettingsPage.ktto construct theSettingsSwitchRowandSettingsFloatSliderRow.NativePlayerController.ktto serialize shadow fields without clamping the float ranges.controls.htmlandcontrols.jsto build the shadow toggle and shadow density stepper in the webview.strings.xmlto include localization for subtitle shadow features.SettingsSearch.ktfor settings index.Issue or approval
NuvioMedia/NuvioMobile#1309 -> Sync with mobile feature request
Mobile PR: NuvioMedia/NuvioMobile#1388
UI / behavior impact
Policy check
CONTRIBUTING.md.Scope boundaries
None.
Testing
Manually verified:
PlaybackSettingsPageexactly beneath the Outline settings.SettingsFloatSliderRowhandles ranges of0.2to5.0seamlessly.controls.htmlbridge) correctly toggle the shadow style and dispatch density updates back to the Kotlin UI viaNativePlayerController.kt.NativePlayerController.ktwere fixed, ensuring that the Webview slider successfully matches the full 1.0 to 5.0 range instead of capping out at 1.0.Screenshots / Video
Mac result:



Breaking changes
None.
Linked issues
NuvioMedia/NuvioMobile#1309 -> Sync with mobile feature request
Mobile PR: NuvioMedia/NuvioMobile#1388