29 lines
1.7 KiB
Markdown
29 lines
1.7 KiB
Markdown
# andTunes — device facts
|
||
|
||
Measured facts about the Rabbit R1 that the app is built around.
|
||
(Moved out of the old andtunes/TASKS.md board on 2026-09-24.)
|
||
|
||
|
||
- Panel **480 × 640 px**, physical density 320, **override density 160** — so
|
||
the app sees a 480 × 640 **dp** canvas on a 2.88" screen (~278 real ppi).
|
||
- **One dp is about half its usual physical size here.** Double every stock
|
||
value: body text 28–32 sp, list rows ≥ 88 dp, menu tiles ~213 dp. A 48 dp
|
||
row would be 4.4 mm tall. Do not "fix" this by changing the device density —
|
||
trav likes it where it is.
|
||
- Android 13 / API 33, `gsi_r1-userdebug`, arm64-v8a, 65 GB free.
|
||
- **The wheel can only ever give us detents.** `getevent -pl` (2026-09-14):
|
||
`och1970_holl_key` advertises `KEY (0001): KEY_UP KEY_DOWN` and *nothing
|
||
else* — no `EV_REL`/`REL_WHEEL`, no `EV_ABS`, no resolution. The `och1970`
|
||
is a Hall latch, so the driver quantises the magnet into clicks and hands
|
||
userspace one key press each. There is no sub-detent position to read
|
||
without a kernel driver change, so every bit of nuance has to be derived
|
||
from the *timing* between detents (see `WheelScroll`).
|
||
- Scroll wheel = input device `och1970_holl_key` → **KEY_UP / KEY_DOWN**,
|
||
mapped by the stock `Generic.kl` (checked 2026-09-11 via `dumpsys input`)
|
||
to **`KEYCODE_DPAD_UP` / `DPAD_DOWN`** — not volume. Side/PTT button sits
|
||
on `mtk-kpd` with KEY_VOLUMEDOWN + KEY_POWER. Headset exposes
|
||
KEY_PLAYPAUSE, so a MediaSession gets media keys for free.
|
||
- USB: set to come up as **`mtp,adb`** whenever the screen is unlocked
|
||
(`adb shell svc usb setScreenUnlockedFunctions mtp`, 2026-09-11), so the
|
||
gvfs mount sync uses and the adb install uses are both there at once.
|