Repository navigation
Add adaptive landscape layouts, playback customization, SAF metadata writes, and DSP telemetry - #360
Merged
Merged
Conversation
Surface managed-output callback stats (counts, durations, overruns, xruns, buffer sizing) and PCM callback counters (lock misses, starved samples, skipped DSP stages, peak/clipping, non-finite samples) in the diagnostics report.
Extend PcmCallbackStats and ManagedOutputStats with lock contention, DSP skips, peak/clipping, callback timing, and xrun counters, all published through atomics so the audio callback never logs or blocks. Replace the EQ mutex path with a coalesced mailbox of precomputed EqParams applied at block boundaries, and add lock-free enabled mirrors for fx, convolver, dynamics, and crossfade to skip inactive stages without contention. Publish playback progress via a seqlock snapshot instead of locking.
Stage content:// documents into a private cache copy so the Rust tagger can open them by path, and stream edited copies back over the original URI. "wt" truncation is retried with "w" for providers that reject it, and stale edit copies older than 24h are pruned.
Inject the Rust tagger, DB persistence, and temp directory so the content:// staging and SAF fallback paths can be unit tested. Add coverage for content URI write-back, permission failures, path normalization, and read staging.
Make AmbientBackground opacity configurable so the full player can render un-scrimmed blurred artwork under a dstIn shader mask that fades into the foreground, with a softer gradient overlay. Add a background style selector to the player layout sheet and mirror the style in its immersive and full-screen previews.
Persist the choice in SharedPreferences, defaulting to the color gradient and falling back to it for unknown or missing values.
Add metadata editor strings for missing files and lost edit permission.
Add a slider and preview in UI customization for waveform height and line thickness, with per-style reset to defaults. Seek bars scale their painted size while keeping a 48dp touch area.
Persist waveform height and line thickness independently, clamping saved values to supported ranges. Queue rapid edits so the final state is written, and show a non-interactive preview at the current size.
Remove forced portrait lock and add progress bar size localization strings.
Add a side navigation rail and compact side mini player for wide/landscape layouts. Unlock the bottom sheet width cap so sheets use the full window on tablets and landscape, and ignore horizontal scroll notifications when toggling the nav bar.
Document that Track Thumbnails, Progress Bar and Album Colors sections use the English role catalog in Taglish, mirroring the Player Layout pattern.
Introduce a shared AdaptiveLayout policy keyed off window size rather than MediaQuery.orientation, and use it to split the player into a stage/controls side-by-side composition, swap bottom navigation for a scrollable side rail, and render a vertical side mini player in short landscape windows. Rework bottom sheets onto AppBottomSheetSurface so they fill more of the window, scroll under enlarged text, and respect keyboard insets. Also localize UI Customization descriptions via the English copy role so Taglish uses English copy.
Add descriptionFor helpers to the progress bar and thumbnail label extensions so callers can resolve copy from a specific locale, and mark the progress bar style strings English-only in the Taglish catalog.
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
FlickNavRailon wide screens, the full player switches to a bounded artwork/controls layout, and short landscape windows use a compact side mini player.AppBottomSheetSurfacecaps height and width, scrolls when needed, and keeps actions above the keyboard.content://documents: stage the document to private cache, edit with the Rust tagger, stream the result back, re-read it to verify, then persist the database change.managed_output_debug_json()without logging or blocking in the audio callback.Related issue
none
Checklist
flutter analyzepassesflutter testpassescargo test --manifest-path rust/Cargo.tomlpassesflutter run --flavor full)CHANGELOG.mdupdated for user-facing changes