Repository navigation
Conversation
… devices - Start the auto connect service on MY_PACKAGE_REPLACED, not only on boot, so updating the app doesn't disable auto connect until the next reboot. - When the service starts, connect to a paired device that is already connected over Bluetooth, since it won't send another ACTION_ACL_CONNECTED (resolves the TODO in AutoConnectService). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015ExfGKqc1qgteZLvhaNzew
…ct alive - When the app is opened while exactly one paired device is connected over Bluetooth, connect to it instead of showing the device list. - Closing the app no longer stops the device service when auto connect is enabled, so the status notification keeps working in the background. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015ExfGKqc1qgteZLvhaNzew
… for A39xx models Models missing from the icon list fall back on their model number, so e.g. the Liberty 5 (A3957) shows an earbuds icon rather than headphones. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015ExfGKqc1qgteZLvhaNzew
The settings changed most often were two levels deep: the sound modes category, then a dialog per select and a slider for the noise canceling level. The first screen after connecting now shows: - battery levels of each earbud and the case - a sound mode card with the ambient sound mode as large icon buttons and the mode specific settings below - the remaining categories under "More Settings" (sound modes is no longer listed separately) Selects with a few short options use segmented buttons or chips instead of a dialog, and small integer ranges (e.g. noise canceling level 1-5) use buttons instead of a slider. Settings that aren't currently in effect are dimmed but still usable: picking e.g. "Car" while in transparency mode also sends the parent values (noise canceling, transportation), so the choice takes effect immediately instead of only changing a stored value. The legacy equalizer profile migration entry is only listed when there are profiles to migrate. Instrumented tests are updated for the new layout and wait for settings that load asynchronously. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015ExfGKqc1qgteZLvhaNzew
Shows the current mode and its detail (noise canceling level, transportation mode, transparency mode). Tapping it cycles through the ambient sound modes, following the device's own cycle settings when available; long pressing it opens the app. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015ExfGKqc1qgteZLvhaNzew
kennyfs
force-pushed
the
liberty5-home-screen-zh-tw
branch
from
November 10, 2026 11:59
e0936b1 to
6eee4d5
Compare
kennyfs
marked this pull request as draft
November 11, 2026 05:16
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.
Motivation
On a Soundcore Liberty 5 (A3957), the controls people change all the time were two levels deep: ambient sound mode (noise canceling / transparency / normal), noise canceling level, transportation mode, transparency mode (e.g. vocal mode) and wind noise suppression. You had to open the Sound Modes category, then a dialog for each select or a slider for the noise canceling level. This PR puts them on the first screen after connecting and adds a Quick Settings tile. It also fixes a few auto connect issues, so the app works better in the background.
What changed
Device home screen
feat(android): device home screen with sound mode controlsui/utils/ChoiceControls.kt.SoundModeChangesTestcovers this.Quick Settings tile
feat(android): quick settings tile for the ambient sound modeAuto connect
fix(android): auto connect after app updates and to already connected devices,feat(android): open the connected device directly and keep auto connect aliveMY_PACKAGE_REPLACED, not only on boot, so updating the app no longer disables auto connect until the next reboot.ACTION_ACL_CONNECTEDwill arrive for it. This resolves the TODO inAutoConnectService.Small fixes
fix(android): translatable notification channel name and earbuds icon for A39xx modelsTranslations
Traditional Chinese (zh_Hant) translations are going through Codeberg Translate instead of this PR. The strings added here will be translated there once this is merged.
Testing
cargo test -p openscq30-lib --lib --features bundled-dependencies: 228/228 passedandroidTest. build(android): fix instrumented tests, shrink the native library, update rusqlite to 0.41 #438 fixes that, and these results are with it applied.format-check-kotlin): cleanThis branch doesn't depend on #438 (no shared files). The two merge cleanly in either order.
AI disclosure
These changes were developed with the help of Claude (AI, via Claude Code), and the commits carry
Co-Authored-Bytrailers. The zh_Hant translations on Codeberg Translate were also prepared with Claude's help and reviewed before submission.🤖 Generated with Claude Code