Repository navigation
v2.1.0 — Responsive UI (phone + tablet, portrait + landscape)
UI-ONLY release. Installs directly over 2.0.2 (pinned key, versionCode 5).
WHAT CHANGED (presentation only — zero USB/protocol/behavior changes)
- Four responsive layouts: phone portrait, phone landscape (2-column), tablet portrait (centered 560dp), tablet landscape (45/55 two-panel).
- 8 shared section includes — every layout carries every control, structurally (CI-enforced).
- Preset swatches now a 4x2 grid (was 8 cramped in one row); sizes scale by device class.
- Consistent spacing scale (4/8/12/16/24dp) via dimens; landscape is denser, tablets roomier.
- Rotation swaps layouts without recreating the Activity — no USB command can fire, hex draft preserved.
- New CI guard: every layout variant must expose all 24 view IDs exactly once.
VERIFY (same interaction -> same bytes)
- v1 RGB OFF sequence byte-identical, regression-pinned: 57/57 unit tests green.
- No-automatic-USB guard + layout structure guard green in CI.
- Kotlin diff vs 2.0.2: MainActivity presentation only (rotation re-inflate, GridLayout presets, dimen sizes, version-safe diagnostics string).
PHYSICAL TEST (Tab A9+)
- Portrait: balanced centered controls, presets in 4x2 grid, scroll works.
- Rotate to landscape: two-panel layout, no overlap, cursor stable, NO command sent from rotation.
- RGB OFF -> RGB ON -> color + APPLY (behavior unchanged).
- All 6 effects — dynamic controls appear per effect in both orientations.
- Rotate back and forth several times: no crash, no lag growth, no ghost cursors, no auto RGB.
- Diagnostics expand in both orientations.
If anything fails: COPY DIAGNOSTICS + test number + last button.
APK SHA-256: 6c74e6206973ba537451b760d526ce27e4160af049d90535dcb5cc8436376c92