release: bring v1.5.1 (R8 + edge-to-edge fixes, version bump) onto main - #11
Merged
Merged
Conversation
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>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Why
PR #9 was squash-merged before its last four commits were pushed, so
mainis 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. Taggingmainas it stands would publish old 1.5.0 content, and the release workflow would find nodoc/RELEASE_NOTES_v1.5.1.md.This PR brings them onto
main. It is the four commits fromfix/i18n-store-screenshotscherry-picked unchanged onto currentmain(which already has #9 and #10). They applied cleanly. Only.gitignoreauto-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 callingenableEdgeToEdge(). That call pulled in the deprecatedLAYOUT_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 bilingualdoc/RELEASE_NOTES_v1.5.1.mdwith the Play "What's new" text, and git-ignores the local/release/staging dir.Verification
proguard-rules.prox2,MainActivity.kt, bothbuild.gradle.kts, the release notes) are byte-identical to the tips offix/i18n-store-screenshots.Not verified
BleManagercharacteristic lookup affects every connection, so please smoke-test an M365 before tagging.Before tagging v1.5.1
release/v1.5.1/AABs staged locally were built from the branch without feat(model): per-model board addressing, from m365 Tools reverse engineering #10.v1.5.0tag, then tag and pushv1.5.1🤖 Generated with Claude Code