Repository navigation
Conversation
Addon sources are remote HTTP JSON services exposing /manifest.json,
/search and /stream/{id}. Flick is the client: the JSON is parsed and the
returned media URL is handed to the existing audio engine, so the addon's
code is never executed and bit-perfect playback, DSP, gapless and DSD are
unchanged.
- AddonService implements NetworkSourceService (the seam behind Subsonic,
Jellyfin, WebDAV, UPnP, SMB and Tidal). The manifest is cached in the
existing networkServers.token column, so no Isar migration is needed.
- Addon hits appear as a section in global search and play as ephemeral
Song objects: nothing is written to the database, and _savePosition skips
them so an ephemeral track cannot replace the local resume point.
- Only direct streams (manifest: none) are accepted. HLS, DASH and
encrypted renditions throw a typed error and are reported before a
playback spinner starts, rather than being silently downgraded.
- quality=LOSSLESS is requested on every search and stream call.
- Settings reuse the Network Sources screens: no username or password, no
sync action, and the manifest name/version replaces the song count.
Adds docs/ADDONS_PLAN.md with the wire contract and known limitations.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Adds a workflow that builds the full-flavor release APK and attaches it to a GitHub Release, so releases no longer depend on one machine having the SDK, NDK and Rust toolchain. Signing material comes from repository secrets and is written to the gitignored android/key.properties at build time; the job fails with the secret list if they are missing, instead of producing a build that cannot update over an existing install. google-services.json is also gitignored and the app does not use Firebase, but the plugin is applied and fails without the file, so a placeholder is written unless a real one is provided. Builds can also be started manually for either flavor, in which case the APK is uploaded as a workflow artifact and no release is touched. Co-Authored-By: Claude Code <noreply@anthropic.com>
Upstream tags releases as 0.23.0-beta.1, without a v prefix, so a v*-only trigger would never fire for them. Accept both forms. Co-Authored-By: Claude Code <noreply@anthropic.com>
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
Related issue
Checklist
flutter analyzepassesflutter testpassescargo test --manifest-path rust/Cargo.tomlpassesflutter run --flavor full)CHANGELOG.mdupdated for user-facing changes