diff options
author | 2025-03-18 22:41:30 +0000 | |
---|---|---|
committer | 2025-03-18 17:40:28 -0700 | |
commit | 70f23c42c3498cc0b81d3ecf49a145187d09d5aa (patch) | |
tree | fbf938ea522090115f431673c34755365818595a | |
parent | a104bc288a2572a017a692382af0d947f1209181 (diff) |
Fix setMaxBound method not found error for tests
The method setMaxBound in
cts/tests/framework/base/windowmanager/util/src/android/server/wm/ProtoExtractors.java
is only available in S+. Hence fallback to the original behavior for R-
to avoid test failures
LOW_COVERAGE_REASON=TEST_ONLY
Test: BaseUsePermissionTest
Flag: EXEMPT bugfix
Fixes: 403393912
Relnote: N/A
Change-Id: I10170dd9e563705b1e27e3fa95c0d0b31e6e63c7
-rw-r--r-- | tests/cts/permissionui/src/android/permissionui/cts/BaseUsePermissionTest.kt | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/tests/cts/permissionui/src/android/permissionui/cts/BaseUsePermissionTest.kt b/tests/cts/permissionui/src/android/permissionui/cts/BaseUsePermissionTest.kt index 55f5eb07d..eda6e92be 100644 --- a/tests/cts/permissionui/src/android/permissionui/cts/BaseUsePermissionTest.kt +++ b/tests/cts/permissionui/src/android/permissionui/cts/BaseUsePermissionTest.kt @@ -55,6 +55,7 @@ import com.android.compatibility.common.util.SystemUtil.eventually import com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity import com.android.compatibility.common.util.UiDumpUtils import com.android.modules.utils.build.SdkLevel +import java.util.concurrent.CompletableFuture import java.util.concurrent.TimeUnit import java.util.concurrent.TimeoutException import java.util.regex.Pattern @@ -683,19 +684,16 @@ abstract class BaseUsePermissionTest : BasePermissionTest() { crossinline block: () -> Unit, ): Instrumentation.ActivityResult { // Request the permissions - val future = - startActivityForFuture( - Intent().apply { - component = - ComponentName( - APP_PACKAGE_NAME, - "$APP_PACKAGE_NAME.RequestPermissionsActivity", - ) - putExtra("$APP_PACKAGE_NAME.PERMISSIONS", permissions) - putExtra("$APP_PACKAGE_NAME.ASK_TWICE", askTwice) - } - ) - waitForPermissionRequestActivity() + lateinit var future: CompletableFuture<Instrumentation.ActivityResult> + // The WindowManagerStateHelper#waitForValidState only supports S+ + if (SdkLevel.isAtLeastS()) { + future = startActivityForFuture(*permissions, askTwice = askTwice) + waitForPermissionRequestActivity() + } else { + doAndWaitForWindowTransition { + startActivityForFuture(*permissions, askTwice = askTwice) + } + } // Notification permission prompt is shown first, so get it out of the way clickNotificationPermissionRequestAllowButtonIfAvailable() @@ -715,6 +713,19 @@ abstract class BaseUsePermissionTest : BasePermissionTest() { } } + fun startActivityForFuture( + vararg permissions: String?, + askTwice: Boolean, + ): CompletableFuture<Instrumentation.ActivityResult> = + startActivityForFuture( + Intent().apply { + component = + ComponentName(APP_PACKAGE_NAME, "$APP_PACKAGE_NAME.RequestPermissionsActivity") + putExtra("$APP_PACKAGE_NAME.PERMISSIONS", permissions) + putExtra("$APP_PACKAGE_NAME.ASK_TWICE", askTwice) + } + ) + /** * This method waits for permission controller activity to be in a valid state, the timeout is 5 * seconds. |