Krolyxon
Commit 832675a

Branches

Refs →

budctl832675a

Verification log: A4, and the Android plan is done

budctl status on the laptop works while the Android app is connected,
not only after it lets go: with dual connection on, the T310 gives each
host a control link of its own (the owner's report, no log). With A4,
every step and checkpoint of docs/android.md is done; 0.1.4 carries the
app, and the other control app is gone from the phone.
Author
krolyxon
Date
2026-11-02 09:50 +0530
Parent
d4e9ca9
Commit
832675a943d83f6d3b75dd2942590c31f4c4625c

+7 −2

3 files changed

  1. M CLAUDE.md +1 −1
  2. M docs/android.md +5 −1
  3. M docs/protocol/realme_t310.md +1 −0
M CLAUDE.md View
@@ -114,7 +114,7 @@ Exit codes:
114114 10. ~~fit test~~ (dropped: the T310 acks it but runs no test)
115115 11. custom EQ
116116 4. **GUI** (`budctl-gui`, see [GUI](#gui)): first the look, with demo data; then the keys; then the live connection; then the pages, one at a time.
117−5. **Android app** (`docs/android.md#steps`): a Kotlin app with budctl-core inside, to replace the other control app on the owner's phone. First the core builds for Android and the session worker moves into core; then the JNI crate, the Bluetooth link and a plain screen (phone checkpoints A1, A2); then the pages, one at a time.
117+5. **Android app** (`docs/android.md#steps`): done in 0.1.4. A Kotlin app with budctl-core inside, replacing the other control app on the owner's phone: every desktop page, released as a signed `budctl.apk`, phone checkpoints A1–A4 passed.
118118 6. **More devices**: as acquired.
119119
120120 ## GUI
M docs/android.md View
@@ -7,6 +7,9 @@ app.
77 This file is the plan. Each step says when it is done. The phone checkpoints go into the
88 [verification log](protocol/realme_t310.md#verification-log), like the desktop app's.
99
10+**Done** (2026-11-02): every step, and every checkpoint passed. Release 0.1.4 carries the app as
11+`budctl.apk`, and the owner has removed the other control app from the phone.
12+
1013 ## Why Kotlin as well as Rust
1114
1215 - Android has no BlueZ, and apps cannot open the kernel Bluetooth sockets that
@@ -184,7 +187,8 @@ Run on the phone with debug on, and paste the in-app log.
184187 after the last command, and when the app leaves the screen.
185188 - **A3:** each page's writes, as G3–G8 were for the desktop app.
186189 - **A4:** take turns between the phone app and `budctl status` on the laptop. Each gets the
187− channel once the other has let go.
190+ channel once the other has let go. (On the T310 with dual connection on, both work at once:
191+ each host has a control link of its own.)
188192
189193 <a id="decisions"></a>
190194 ## Decisions
M docs/protocol/realme_t310.md View
@@ -618,6 +618,7 @@ The owner will not install realme Link (2026-10-27), so there is no app capture.
618618
619619 | Date | Checkpoint | Result | Notes |
620620 |---|---|---|---|
621+| 2026-11-02 | A4 Android app (v0.1.4) and `budctl status` on the laptop | pass (owner's report) | `budctl status` on the laptop works while the Android app is open and connected, not only once the app has let go: with dual connection on, the T310 gives each host a control link of its own, as with a phone app on 2026-10-27. No log was taken of this run |
621622 | 2026-11-01 | A3 Android app, Gestures and Earbud settings pages | pass | Right double tap set to `none` and back to `play-pause`, each written (`0x0401`) and read back in about 1 s. Six hold-cycle writes (`0x0404 02 01`), each acked and read back in 0.25-1.8 s, ending at off → anc as before. Ring and Stop (`0x0400 01`/`00`) acked; the buds rang. The devices list showed. The owner confirmed it all on screen |
622623 | 2026-11-01 | A3 Android app, Equalizer page: built-in presets, the custom one, its bands, a new preset, a delete | pass | Each built-in preset (`0x0406`) and the custom one were put in use and read back in 0.25-0.45 s. Fifteen band saves on `custom-4` were each acked and read back in 0.4-0.7 s; bands moved while a save was on its way went out as soon as it was answered, the latest winning. "New preset" created `custom-5` and opened its bands, five saves went to it, and the bin deleted it. Rename was not tried on the phone |
623624 | 2026-11-01 | A3 Android app, Overview page | pass, in part | Noise cancelling → off → noise cancelling, each acked and read back in about 0.25 s; game mode on → off; Refresh; the dual-connection question (cancelled) and the colors switch. Transparency, the strength (light, medium) and the bass level were not tried on the phone: W1, W2 and W6b cover their bytes, but the app's bass write, sent when the finger lifts, is still to try |