Skip to content

build: bump targetSdkVersion/compileSdk to 35 (Android 15) - #179

Merged
ErikBjare merged 3 commits into
ActivityWatch:masterfrom
TimeToBuildBob:fix/target-sdk-35
Jul 12, 2026
Merged

build: bump targetSdkVersion/compileSdk to 35 (Android 15)#179
ErikBjare merged 3 commits into
ActivityWatch:masterfrom
TimeToBuildBob:fix/target-sdk-35

Conversation

@TimeToBuildBob

Copy link
Copy Markdown
Contributor

Problem

The v0.14.0 release CI failed at the Play Store upload step with:

Google Api Error: Invalid request - Target SDK of artifact is too low: 35.

Google Play now requires targetSdkVersion >= 35 for new/updated app submissions (enforced as of August 2025).

Changes

  • compileSdk 34 → 35 and targetSdkVersion 34 → 35
  • values-v35/styles.xml: Add android:windowOptOutEdgeToEdgeEnforcement=true to opt out of Android 15's mandatory edge-to-edge display enforcement until the WebView-based UI is updated to properly handle window insets
  • fastlane/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.xml so it only applies on Android 15+ devices.

Once the UI is updated to handle insets, android:windowOptOutEdgeToEdgeEnforcement can be removed.

Next steps (follow-up, not in this PR)

  • Implement proper edge-to-edge insets handling in the WebView activity
  • Add automatic changelog generation to the release workflow (so each release doesn't need a manually-written changelogs/<versionCode>.txt)

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-apps

greptile-apps Bot commented Jul 12, 2026

Copy link
Copy Markdown

Greptile Summary

This PR updates the Android app for Android 15 release requirements. The main changes are:

  • Raised compileSdk and targetSdkVersion to 35.
  • Added API 35 theme overrides for the edge-to-edge opt-out.
  • Added Fastlane changelog text for versionCode 35.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
mobile/build.gradle Updates the Android SDK levels to 35.
mobile/src/main/res/values-v35/styles.xml Adds Android 15 theme overrides with the edge-to-edge opt-out on the app themes.
fastlane/metadata/android/en-US/changelogs/35.txt Adds release notes for versionCode 35.

Reviews (2): Last reviewed commit: "fix: apply Android 15 edge-to-edge opt-o..." | Re-trigger Greptile

Comment on lines +7 to +12
<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>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Activity Theme Misses Opt-Out

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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
@TimeToBuildBob

Copy link
Copy Markdown
Contributor Author

@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.
@TimeToBuildBob

Copy link
Copy Markdown
Contributor Author

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.

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.

2 participants