build: bump targetSdkVersion/compileSdk to 35 (Android 15) - #179
Conversation
Google Play now requires targetSdkVersion >= 35. The v0.14.0 release CI failed with 'Target SDK of artifact is too low: 35'. Changes: - compileSdk 34 → 35 - targetSdkVersion 34 → 35 - Add values-v35/styles.xml: opt out of Android 15's mandatory edge-to-edge enforcement until the WebView-based UI is updated to handle insets properly - Add fastlane/metadata/android/en-US/changelogs/35.txt for v0.14.0 release notes (fixes the non-fatal CI warning about missing changelog for versionCode 35)
Greptile SummaryThis PR updates the Android app for Android 15 release requirements. The main changes are:
Confidence Score: 5/5This looks safe to merge.
Important Files Changed
Reviews (2): Last reviewed commit: "fix: apply Android 15 edge-to-edge opt-o..." | Re-trigger Greptile |
| <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> | ||
| <item name="colorPrimary">@color/colorPrimary</item> | ||
| <item name="colorPrimaryDark">@color/colorPrimaryDark</item> | ||
| <item name="colorAccent">@color/colorAccent</item> | ||
| <item name="android:textColor">@color/default_text_color</item> | ||
| <item name="android:windowOptOutEdgeToEdgeEnforcement">true</item> |
There was a problem hiding this comment.
MainActivity and OnboardingActivity use AppTheme.NoActionBar, but this API 35 override only adds android:windowOptOutEdgeToEdgeEnforcement to AppTheme. On Android 15, those activity windows can still use the NoActionBar theme without the opt-out, so the WebView UI can be forced edge-to-edge and draw under the system bars despite this mitigation.
There was a problem hiding this comment.
Fixed in f57e2ec — added the API 35 edge-to-edge opt-out to AppTheme.NoActionBar explicitly (the style the main activities actually use), matching the same item set as the existing values-v21 override.
The main activities use AppTheme.NoActionBar (not AppTheme), so the API 35 override needs to redeclare the opt-out there explicitly.
|
@greptileai review |
compileSdk 35's updated platform nullability annotations mark PackageInfo.versionName as String? instead of String, which broke Kotlin compilation of MainActivity.version after the SDK 35 bump.
|
CI-green and mergeable (Greptile 5/5) — waiting only on a maintainer click. This PR is ready to merge, but the bot has pull-only access to this repo and can't self-merge — surfacing it here so it isn't lost. The monitoring loop will stop re-flagging it now that this note is posted. |
Problem
The v0.14.0 release CI failed at the Play Store upload step with:
Google Play now requires
targetSdkVersion >= 35for new/updated app submissions (enforced as of August 2025).Changes
values-v35/styles.xml: Addandroid:windowOptOutEdgeToEdgeEnforcement=trueto opt out of Android 15's mandatory edge-to-edge display enforcement until the WebView-based UI is updated to properly handle window insetsfastlane/metadata/android/en-US/changelogs/35.txt: Adds v0.14.0 release notes for versionCode 35 (fixes the non-fatal CI warning "Could not find changelog for '35'")Why the edge-to-edge opt-out?
Android 15 (API 35) mandates edge-to-edge display for all apps targeting SDK 35. Since aw-android uses a WebView for the main UI, the layout would likely break (status/navigation bars overlapping content) without either implementing proper insets handling or opting out. The opt-out is placed in
values-v35/styles.xmlso it only applies on Android 15+ devices.Once the UI is updated to handle insets,
android:windowOptOutEdgeToEdgeEnforcementcan be removed.Next steps (follow-up, not in this PR)
changelogs/<versionCode>.txt)