summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yi-an Chen <theianchen@google.com> 2025-03-18 22:41:30 +0000
committer Yi-an Chen <theianchen@google.com> 2025-03-18 17:40:28 -0700
commit70f23c42c3498cc0b81d3ecf49a145187d09d5aa (patch)
treefbf938ea522090115f431673c34755365818595a
parenta104bc288a2572a017a692382af0d947f1209181 (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.kt37
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.