Merge "Update PermissionGroupChange for automotive" into rvc-dev
diff --git a/tests/tests/permission/src/android/permission/cts/PermissionGroupChange.java b/tests/tests/permission/src/android/permission/cts/PermissionGroupChange.java
index 1466cb8..37a448b 100644
--- a/tests/tests/permission/src/android/permission/cts/PermissionGroupChange.java
+++ b/tests/tests/permission/src/android/permission/cts/PermissionGroupChange.java
@@ -30,7 +30,9 @@
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
+import android.content.res.Resources;
import android.platform.test.annotations.SecurityTest;
+import android.support.test.uiautomator.By;
import android.support.test.uiautomator.UiDevice;
import android.support.test.uiautomator.UiScrollable;
import android.support.test.uiautomator.UiSelector;
@@ -53,6 +55,7 @@
private Context mContext;
private UiDevice mUiDevice;
+ private String mAllowButtonText = null;
@Before
public void setContextAndUiDevice() {
@@ -100,8 +103,15 @@
}
protected void clickAllowButton() throws Exception {
- mUiDevice.findObject(new UiSelector().resourceId(
- "com.android.permissioncontroller:id/permission_allow_button")).click();
+ if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)) {
+ if (mAllowButtonText == null) {
+ mAllowButtonText = getPermissionControllerString("grant_dialog_button_allow");
+ }
+ mUiDevice.findObject(By.text(mAllowButtonText)).click();
+ } else {
+ mUiDevice.findObject(By.res(
+ "com.android.permissioncontroller:id/permission_allow_button")).click();
+ }
}
private void grantPermissionViaUi() throws Throwable {
@@ -174,6 +184,15 @@
}
}
+ private String getPermissionControllerString(String res)
+ throws PackageManager.NameNotFoundException {
+ Resources permissionControllerResources = mContext.createPackageContext(
+ mContext.getPackageManager().getPermissionControllerPackageName(), 0)
+ .getResources();
+ return permissionControllerResources.getString(permissionControllerResources
+ .getIdentifier(res, "string", "com.android.permissioncontroller"));
+ }
+
private interface ThrowingRunnable {
void run() throws Throwable;
}
diff --git a/tests/tests/permission3/src/android/permission3/cts/BasePermissionTest.kt b/tests/tests/permission3/src/android/permission3/cts/BasePermissionTest.kt
index f4f97f71..5cd5c4f 100644
--- a/tests/tests/permission3/src/android/permission3/cts/BasePermissionTest.kt
+++ b/tests/tests/permission3/src/android/permission3/cts/BasePermissionTest.kt
@@ -21,10 +21,6 @@
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
-import android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE
-import android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE
-import android.content.pm.PackageManager.MATCH_SYSTEM_ONLY
-import android.content.pm.ResolveInfo
import android.content.res.Resources
import android.provider.Settings
import android.support.test.uiautomator.By
@@ -58,7 +54,7 @@
protected val uiDevice: UiDevice = UiDevice.getInstance(instrumentation)
protected val packageManager: PackageManager = context.packageManager
private val mPermissionControllerResources: Resources = context.createPackageContext(
- getPermissionControllerPackageName(), 0).resources
+ context.packageManager.permissionControllerPackageName, 0).resources
@get:Rule
val activityRule = ActivityTestRule(StartForFutureActivity::class.java, false, false)
@@ -98,23 +94,6 @@
mPermissionControllerResources.getString(mPermissionControllerResources
.getIdentifier(res, "string", "com.android.permissioncontroller"))
- private fun getPermissionControllerPackageName(): String {
- val intent = Intent("android.intent.action.MANAGE_PERMISSIONS")
- intent.addCategory(Intent.CATEGORY_DEFAULT)
- val packageManager: PackageManager = context.getPackageManager()
- val matches: List<ResolveInfo> = packageManager.queryIntentActivities(intent,
- MATCH_SYSTEM_ONLY or MATCH_DIRECT_BOOT_AWARE or MATCH_DIRECT_BOOT_UNAWARE)
- return if (matches.size == 1) {
- val resolveInfo: ResolveInfo = matches[0]
- if (!resolveInfo.activityInfo.applicationInfo.isPrivilegedApp()) {
- throw RuntimeException("The permissions manager must be a privileged app")
- }
- matches[0].activityInfo.packageName
- } else {
- throw RuntimeException("There must be exactly one permissions manager; found $matches")
- }
- }
-
protected fun installPackage(
apkPath: String,
reinstall: Boolean = false,