Repository navigation
Add a physical output safety ceiling, a live orbit preview, and the Spanish locale - #370
Merged
Merged
Conversation
Add app_es.arb with generated localizations and a review guide noting the translation is unverified. The language picker marks Spanish as a draft pending native-speaker review, matching the Taglish notice; system Spanish locales resolve to this `es` copy. Resource parity, arguments and language-switch behavior are covered by automated tests. Native-speaker approval and on-device checks remain unverified.
Wrap the player layout sheet title and action labels so long translations can't overflow, and add Spanish search keywords. Document the orbit header boundary setting and pin a live orbit preview to the top of the Orbit settings screen.
Wire the draft LatAm Spanish locale into the language picker and extend SettingsScaffold with an optional pinned header that stays above the scrollable body.
Render a browse-only miniature of the library header and orbit that tracks the settings below, with expand/collapse and a fullscreen view. Tapping cards only moves the preview focus; playback and the queue are untouched. Also wrap the detail header's lossless label in Flexible so long translations don't overflow, and cover the preview and Spanish search keywords with widget tests.
Register Latin American Spanish as a supported locale with a draft notice in the language picker, and localize the orbit header boundary and browse-only preview copy. Cover Spanish selection, persistence, regional resolution, and the language picker with widget and unit tests; a new es resource file is generated from app_es.arb.
Extend the playback device info with physical output type, id, connection id, and label, preferring wired/analog outputs and falling back to an attached UAC2 device when Android has not exposed a route. Notify the Dart side of device additions and removals via onPlaybackDevicesChanged so physical connection events are not missed.
Cover device info parsing, crossfade safety gain during volume changes, and the player service guard that lowers volume once per physical output connection, survives engine handoff, and keeps failed safety writes paused and retried.
Route framework volume changes through a single engine-level gain setter so the safety ceiling survives crossfade ramp ticks and player swaps, and let the secondary crossfade player be provided externally. Defer crossfade preparation when playback is paused, track ramp and generation state so a safety pause is not undone mid-preparation, and restore USB DAC volume on attach. Apply the physical output safety ceiling once per connection key on the non-direct-USB paths, blocking manual volume changes until the guard settles and resetting software-volume state on device change.
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
esfallback, search keywords, and no Baybayin toggle for Spanish.Spanish locale
esto the supported locales and language picker, resolveses_MX/es_419/es_ESto it, and persists the selection.Orbit preview
OrbitPreviewrenders the realOrbitScrollwith live preferences, using the library's first 40 songs when there are at least five, otherwise localized demo cards.Physical output safety
Tests
Related issue
none
Checklist
flutter analyzepassesflutter testpassescargo test --manifest-path rust/Cargo.tomlpassesflutter run --flavor full)CHANGELOG.mdupdated for user-facing changes