summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java')
-rw-r--r--src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java
index 98c26d1c..9ec35ea5 100644
--- a/src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java
+++ b/src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java
@@ -36,7 +36,9 @@ import com.android.packageinstaller.permission.ui.auto.AutoAppPermissionsFragmen
import com.android.packageinstaller.permission.ui.auto.AutoManageStandardPermissionsFragment;
import com.android.packageinstaller.permission.ui.auto.AutoPermissionAppsFragment;
import com.android.packageinstaller.permission.ui.handheld.ManageStandardPermissionsFragment;
+import com.android.packageinstaller.permission.ui.handheld.PermissionUsageFragment;
import com.android.packageinstaller.permission.ui.wear.AppPermissionsFragmentWear;
+import com.android.packageinstaller.permission.utils.Utils;
import com.android.permissioncontroller.R;
import java.util.Random;
@@ -86,9 +88,35 @@ public final class ManagePermissionsActivity extends FragmentActivity {
}
break;
- case Intent.ACTION_REVIEW_PERMISSION_USAGE:
- finish();
- return;
+ case Intent.ACTION_REVIEW_PERMISSION_USAGE: {
+ if (!Utils.isPermissionsHubEnabled()) {
+ finish();
+ return;
+ }
+
+ permissionName = getIntent().getStringExtra(Intent.EXTRA_PERMISSION_NAME);
+ String groupName = getIntent().getStringExtra(Intent.EXTRA_PERMISSION_GROUP_NAME);
+ long numMillis = getIntent().getLongExtra(Intent.EXTRA_DURATION_MILLIS,
+ Long.MAX_VALUE);
+
+ if (permissionName != null) {
+ String permGroupName = Utils.getGroupOfPlatformPermission(permissionName);
+ if (permGroupName == null) {
+ Log.w(LOG_TAG, "Invalid platform permission: " + permissionName);
+ }
+ if (groupName != null && !groupName.equals(permGroupName)) {
+ Log.i(LOG_TAG,
+ "Inconsistent EXTRA_PERMISSION_NAME / EXTRA_PERMISSION_GROUP_NAME");
+ finish();
+ return;
+ }
+ if (groupName == null) {
+ groupName = permGroupName;
+ }
+ }
+
+ androidXFragment = PermissionUsageFragment.newInstance(groupName, numMillis);
+ } break;
case Intent.ACTION_MANAGE_APP_PERMISSIONS: {
String packageName = getIntent().getStringExtra(Intent.EXTRA_PACKAGE_NAME);