IDE-294 Raise Android API level to 35#5157
Conversation
b6e7381 to
a029d8f
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates Catroid to target Android 15 (API 35) by bumping compileSdk / targetSdkVersion and applying compatibility changes across UI insets (edge-to-edge), PendingIntent mutability, and a few API deprecations, plus adding/adjusting instrumentation tests around audio focus behavior.
Changes:
- Bump Android
compileSdk/targetSdkVersionto 35. - Introduce
EdgeToEdgeinsets helper and apply it to various screens/views. - Update
PendingIntentcreation (immutability/mutability) and modernize locale casing (lowercase/uppercase), plus add API-35-specific audio focus tests.
Reviewed changes
Copilot reviewed 39 out of 39 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| catroid/build.gradle | Raises compileSdk/targetSdkVersion to 35. |
| catroid/src/main/java/org/catrobat/catroid/ui/EdgeToEdge.kt | Adds helper for applying window inset padding/margins. |
| catroid/src/main/java/org/catrobat/catroid/ui/BaseActivity.kt | Applies edge-to-edge adjustments to common activity views. |
| catroid/src/main/java/org/catrobat/catroid/ui/SettingsActivity.java | Applies bottom padding insets to the settings content container. |
| catroid/src/main/java/org/catrobat/catroid/ui/recyclerview/fragment/MainMenuFragment.kt | Applies bottom margin insets to the main menu FAB. |
| catroid/src/main/java/org/catrobat/catroid/ui/fragment/UserDefinedBrickListFragment.kt | Applies bottom margin insets to “add user brick” FAB/button. |
| catroid/src/main/java/org/catrobat/catroid/ui/fragment/FormulaEditorFragment.java | Applies bottom margin insets to the formula editor keyboard container. |
| catroid/src/main/java/org/catrobat/catroid/ui/fragment/BrickSearchFragment.kt | Applies edge-to-edge handling on resume; modernizes string casing usage. |
| catroid/src/main/res/layout/fragment_brick_search.xml | Fixes layout structure (TextView/ListView separation) and formatting. |
| catroid/src/main/java/org/catrobat/catroid/ui/fragment/BrickCategoryFragment.kt | Applies bottom padding insets to category list. |
| catroid/src/main/res/layout/fragment_brick_categories.xml | Disables clipToPadding for better inset/padding behavior. |
| catroid/src/main/java/org/catrobat/catroid/ui/fragment/AddBrickFragment.kt | Applies bottom padding insets to add-brick list container. |
| catroid/src/main/res/layout/fragment_brick_add.xml | Disables clipToPadding for list insets/padding behavior. |
| catroid/src/main/java/org/catrobat/catroid/ui/dialogs/NewProjectDialogFragment.kt | Applies top padding insets to the dialog toolbar. |
| catroid/src/main/java/org/catrobat/catroid/ui/ScriptFinder.kt | Uses lowercase(Locale.ROOT) and applies top padding insets to root. |
| catroid/src/main/java/org/catrobat/catroid/web/ServerCalls.java | Replaces double-brace map init with explicit put() calls. |
| catroid/src/main/java/org/catrobat/catroid/web/ProjectDownloader.kt | Replaces deprecated toLowerCase() usage with lowercase(). |
| catroid/src/main/java/org/catrobat/catroid/utils/notifications/StatusBarNotificationManager.java | Simplifies PendingIntent creation for upload/reject notifications. |
| catroid/src/main/java/org/catrobat/catroid/transfers/project/ProjectDownloadService.kt | Simplifies PendingIntent creation for download notification. |
| catroid/src/main/java/org/catrobat/catroid/ui/recyclerview/fragment/NfcTagListFragment.java | Updates NFC PendingIntent for mutability requirements. |
| catroid/src/main/java/org/catrobat/catroid/stage/StageResourceHolder.java | Adjusts stage PendingIntent flags and intent target class. |
| catroid/src/main/java/org/catrobat/catroid/stage/StageActivity.java | Exposes hasAudioFocus() for instrumentation tests. |
| catroid/src/main/java/org/catrobat/catroid/stage/SpeechRecognitionHolder.kt | Updates deprecated toUpperCase() to uppercase(). |
| catroid/src/main/java/org/catrobat/catroid/scratchconverter/protocol/message/job/JobMessage.java | Formatting/readability tweak around parsing UTC cached date. |
| catroid/src/main/java/org/catrobat/catroid/cast/CastManager.java | Simplifies cast service notification PendingIntent creation. |
| catroid/src/main/java/org/catrobat/catroid/ui/UiUtils.java | Copyright year update only. |
| catroid/src/main/java/org/catrobat/catroid/io/StageAudioFocus.java | Copyright year update only. |
| catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/stage/StageAudioFocusPostApi35Test.java | Adds post-API35 UI test coverage for audio focus behavior. |
| catroid/src/androidTest/java/org/catrobat/catroid/test/io/StageAudioFocusPreApi35Test.java | Splits/adjusts audio focus tests for pre/post API35 behavior. |
| catroid/src/androidTest/java/org/catrobat/catroid/test/content/bricks/BrickPermissionTest.java | Improves parameterized test naming to include API level. |
| catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/pocketmusic/PocketMusicActivityTest.java | Refactors formatting in a ViewAction description string. |
| catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/utils/UiNFCTestUtils.java | Updates NFC test PendingIntent flags for mutability requirement. |
| catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/stage/WhenNfcBrickStageFromScriptTest.java | Updates the selected string resource for NFC tag editing option. |
| catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/util/rules/ScreenshotOnFailRule.java | Reformats date format initialization for readability. |
| catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/ui/fragment/RenameSceneTest.kt | Formatting-only changes. |
| catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/ui/activity/rtl/RTLMainMenuTest.java | Formatting-only changes. |
| catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/ui/activity/rtl/HindiNumberAtShowDetailsAtProjectActivityTest.java | Formatting-only changes. |
| catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/rtl/RtlBrickTest.java | Formatting-only changes. |
| catroid/src/androidTest/java/org/catrobat/catroid/test/scratchconverter/protocol/WebSocketMessageListenerTest.java | Minor formatting for date format initialization. |
Comments suppressed due to low confidence (1)
catroid/src/androidTest/java/org/catrobat/catroid/test/io/StageAudioFocusPreApi35Test.java:83
- These tests are guarded by
if (SDK_INT < / >= VANILLA_ICE_CREAM)and will pass without assertions on the non-matching SDK. UsingAssume.assumeTrue(...)/Assume.assumeFalse(...)would make the test outcome explicit (skipped) instead of silently passing when it didn't run.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
854547e to
050898f
Compare
Changes: * Checked if we are affected by OpenJDK API changes and boyscout code on the way * Make UI Edge-to-Edge compatible * Check background activity launches and improve PendingIntents for NFC, cast and download (this also repaired the NFC feature since PendingIntents need used here to be mutable) * Improve tests for requesting audio focus to cover pre and post API35 scenarios * Minor test fixes
|



https://catrobat.atlassian.net/browse/IDE-294
This PR raises the compileSdk/targetSdkVersion to 35 (Android 15) and adapts the code
accordingly to ensure compatibility both to this new Android version as well as backwards
compatibility to older versions.
Changes:
Your checklist for this pull request
Please review the contributing guidelines and wiki pages of this repository.