Skip to content

release: bring v1.5.1 (R8 + edge-to-edge fixes, version bump) onto main - #11

Merged
zero2005x merged 4 commits into
mainfrom
chore/release-v1.5.1
Oct 1, 2026
Merged

zero2005x merged 4 commits into
mainfrom
chore/release-v1.5.1

Conversation

@zero2005x

Copy link
Copy Markdown
Owner

Why

PR #9 was squash-merged before its last four commits were pushed, so main is missing the v1.5.1 changes: the R8 keep-rule fix, the edge-to-edge fix, the Demo Ride promo, and the 1.5.1 version bump. Tagging main as it stands would publish old 1.5.0 content, and the release workflow would find no doc/RELEASE_NOTES_v1.5.1.md.

This PR brings them onto main. It is the four commits from fix/i18n-store-screenshots cherry-picked unchanged onto current main (which already has #9 and #10). They applied cleanly. Only .gitignore auto-merged, and it keeps both /.kotlin/ from #10 and /release/ from the bump commit.

Changes

  • fix(build): narrow R8 keep rules so release code is actually optimized. This addresses the Play Console "DEX optimization 13%" warning. Phone DEX goes from 22.5 MB to 2.5 MB, with 91% of classes renamed. Glasses are at 95%.
  • fix(ui): set up edge-to-edge ourselves instead of calling enableEdgeToEdge(). That call pulled in the deprecated LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES.
  • docs: Demo Ride promo video and README GIF.
  • release: bump app to 1.5.1 (versionCode 10) and glass-hud to 1.5.1 (versionCode 7). Adds bilingual doc/RELEASE_NOTES_v1.5.1.md with the Play "What's new" text, and git-ignores the local /release/ staging dir.

Verification

  • The touched files (proguard-rules.pro x2, MainActivity.kt, both build.gradle.kts, the release notes) are byte-identical to the tips of fix/i18n-store-screenshots.
  • CI on this PR runs the unit tests, the debug build and the 16 KB alignment check.

Not verified

Before tagging v1.5.1

🤖 Generated with Claude Code

zero2005x and others added 4 commits October 1, 2026 14:05
Play Console reported the phone app's DEX at 13% optimized, obfuscated and
shrunk (below the 25% threshold that affects visibility and eligibility).
The cause was blanket keep rules: androidx.compose.**, com.m365bleapp.**,
Tink, security-crypto and coroutines-android were kept whole, overriding
the consumer rules those libraries ship with "touch nothing".

Keep only what is reached by name:
- com.m365bleapp.ffi.M365Native native methods (JNI symbols); the Rust side
  never calls back into Java.
- JNA, which binds by name at runtime.
- Tink's shaded protobuf-lite message fields.
App preferences are stored as ids and bit masks, not enum/class names, so
renaming app classes does not orphan saved settings.

glass-hud drops the same androidx.compose.** keep and a no-op
android.bluetooth.** keep; its Rokid CXR keep stays (reflective access).

Measured with R8 in the WSL build (minifyReleaseWithR8):
  app       22.5 MB -> 2.5 MB DEX, classes renamed 4% -> 91%
  glass-hud 1.3 MB DEX, 95% renamed
A test-signed minified release APK ran on an API 34 emulator through every
screen; the native library, EncryptedSharedPreferences and Demo Ride all
worked with no crash.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Play Console flagged LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES (deprecated
in Android 15) at obfuscated b.r.a. Disassembling the release DEX shows it
is androidx.activity's EdgeToEdgeApi28, reached from enableEdgeToEdge();
with minSdk 28 that path is always compiled in.

Replace the helper with WindowCompat.setDecorFitsSystemWindows(false),
LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS on API 30+ (what the helper used
there) and contrast enforcement off on API 29+. Bar colours already come
from the window theme and icon appearance from M365BleAppTheme. The
release DEX no longer writes SHORT_EDGES anywhere.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- doc/play-store/promo/promo_1920x1080.mp4: 26 s landscape walkthrough
  (dashboard, details, glasses display settings, closing card) recorded
  from the minified release build, for the Play listing's promo video
  (upload to YouTube and paste the link).
- doc/play-store/promo/demo.gif: the same walkthrough as a small loop,
  shown at the top of the Screenshots section in all three READMEs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bump both modules to versionName 1.5.1 (kept aligned) with new
versionCodes for the Play upload that clears the R8 13% and edge-to-edge
warnings, and add bilingual release notes including the Play "What's new"
text. Ignore /release/, where the signed AABs and R8 mapping files are
staged locally for upload.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sonarqubecloud

sonarqubecloud Bot commented Oct 1, 2026

Copy link
Copy Markdown

@zero2005x
zero2005x merged commit 8b91f73 into main Oct 1, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant