Skip to content

v2.1.0 — Responsive UI (phone + tablet, portrait + landscape)

Choose a tag to compare

@Kaiser0733 Kaiser0733 released this 08 Sep 18:10
· 6 commits to main since this release

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+)

  1. Portrait: balanced centered controls, presets in 4x2 grid, scroll works.
  2. Rotate to landscape: two-panel layout, no overlap, cursor stable, NO command sent from rotation.
  3. RGB OFF -> RGB ON -> color + APPLY (behavior unchanged).
  4. All 6 effects — dynamic controls appear per effect in both orientations.
  5. Rotate back and forth several times: no crash, no lag growth, no ghost cursors, no auto RGB.
  6. Diagnostics expand in both orientations.
    If anything fails: COPY DIAGNOSTICS + test number + last button.

APK SHA-256: 6c74e6206973ba537451b760d526ce27e4160af049d90535dcb5cc8436376c92