Skip to content

Android: Update minSdk to API level 28#8485

Open
karlenDimla wants to merge 4 commits into
developfrom
feature/karl/min-sdk-update-level28
Open

Android: Update minSdk to API level 28#8485
karlenDimla wants to merge 4 commits into
developfrom
feature/karl/min-sdk-update-level28

Conversation

@karlenDimla
Copy link
Copy Markdown
Contributor

@karlenDimla karlenDimla commented May 7, 2026

Task/Issue URL: https://app.asana.com/1/137249556945/project/414730916066338/task/1211797465357970?focus=true

Description

Steps to test this PR

Feature 1

  • [ ]
  • [ ]

UI changes

Before After
!(Upload before screenshot) (Upload after screenshot)

Note

Medium Risk
Medium risk because it drops support for Android 8.x and removes multiple version-gated code paths (UI shadows, process detection, package signature parsing, clipboard behavior) which could alter runtime behavior on the remaining supported devices.

Overview
Bumps Android minSdk from 26 to 28 (docs + root build.gradle) and updates manifest commentary accordingly.

Removes pre-API-28 compatibility code and SDK checks across the app: shadow helpers (addBottomShadow) and callers are now unconditional, MultiProcessApplication relies on Process.isIsolated()/Application.getProcessName(), clipboard image injection always clears the primary clip, and various UI/system flows simplify version branching.

Updates/cleans tests to align with the new floor (adjusts @SdkSuppress ranges, removes API-26/27-only cases, and updates expectations), and simplifies autofill/verified-installation signing certificate logic by deleting legacy signature paths and removing AppBuildConfig plumbing where it was only used for SDK gating.

Reviewed by Cursor Bugbot for commit b9bc989. Bugbot is set up for automated code reviews on this repo. Configure here.

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@Test
fun whenOnNotifyMeButtonClickedOnAndroid8ThenOpenSettingsOnAndroid8PlusCommandIsSent() = runTest {
whenever(mockAppBuildConfig.sdkInt).thenReturn(Build.VERSION_CODES.O)
fun whenOnNotifyMeButtonClickedOnAndroid9ThenOpenSettingsOnAndroid8PlusCommandIsSent() = runTest {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Rename whenOnNotifyMeButtonClickedOnAndroid9ThenOpenSettingsOnAndroid8PlusCommandIsSent to whenOnNotifyMeButtonClickedOnAndroid9ThenOpenSettingsOnAndroid9PlusCommandIsSent

@Test
fun whenHandleRequestPermissionRationaleOnAndroid8WithShouldShowRationaleFalseThenOpenSettingsOnAndroid8PlusCommandIsSent() = runTest {
whenever(mockAppBuildConfig.sdkInt).thenReturn(Build.VERSION_CODES.O)
fun whenHandleRequestPermissionRationaleOnAndroid9WithShouldShowRationaleFalseThenOpenSettingsOnAndroid8PlusCommandIsSent() = runTest {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Rename whenHandleRequestPermissionRationaleOnAndroid9WithShouldShowRationaleFalseThenOpenSettingsOnAndroid8PlusCommandIsSent to whenHandleRequestPermissionRationaleOnAndroid9WithShouldShowRationaleFalseThenOpenSettingsOnAndroid9PlusCommandIsSent

@Test
@UserJourney
@FlakyTest
@SdkSuppress(minSdkVersion = Build.VERSION_CODES.O, maxSdkVersion = Build.VERSION_CODES.P)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Would this test work on OS > P? (it's also marked as FlakyTest).
Maybe keep @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.P)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants