summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
diff options
context:
space:
mode:
authorTodd Volkert <tvolkert@google.com>2015-05-27 14:27:49 -0700
committerTodd Volkert <tvolkert@google.com>2015-06-01 16:40:00 -0700
commit9f0bcd12aab977eec99d692de9206484e859a252 (patch)
tree28ebfe8205d924f049ea1916d2cb247161e0831d /src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
parent61ec20409e7acb0ad043b1ca295e97d5bba079cd (diff)
downloadandroid_packages_apps_PackageInstaller-9f0bcd12aab977eec99d692de9206484e859a252.tar.gz
android_packages_apps_PackageInstaller-9f0bcd12aab977eec99d692de9206484e859a252.tar.bz2
android_packages_apps_PackageInstaller-9f0bcd12aab977eec99d692de9206484e859a252.zip
Prepare "grant permissions" for Tv-specific view handler.
Also, this cleans up some unused code in GrantPermissionsActivity and fixes a latent bug in GrantPermissionsActivity#updateDefaultResults where if the calling package was null, we were defaulting to GRANTED. Note that we can't simply create a tv-specific layout xml file, because the view handler is tied to the layout xml, so this change allows for the creation of different view handlers. b/20476102 Change-Id: Ia62051a0895e4bd314d18ba3001871b29de21ae5
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java')
-rw-r--r--src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java87
1 files changed, 36 insertions, 51 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
index eb3c8ed3..fca3d138 100644
--- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
+++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
@@ -16,6 +16,11 @@
package com.android.packageinstaller.permission.ui;
+import static android.content.pm.PackageManager.PERMISSION_DENIED;
+import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import static android.content.res.Configuration.UI_MODE_TYPE_MASK;
+import static android.content.res.Configuration.UI_MODE_TYPE_TELEVISION;
+
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.Intent;
@@ -31,7 +36,6 @@ import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.util.ArrayMap;
import android.util.Log;
-import android.util.SparseArray;
import com.android.packageinstaller.R;
import com.android.packageinstaller.permission.model.AppPermissionGroup;
@@ -42,22 +46,17 @@ import com.android.packageinstaller.permission.utils.SafetyNetLogger;
import java.util.ArrayList;
import java.util.List;
-public class GrantPermissionsActivity extends Activity implements
- GrantPermissionViewHandler.OnRequestGrantPermissionGroupResult {
- private static final String LOG_TAG = "GrantPermissionsActivity";
+public class GrantPermissionsActivity extends Activity
+ implements GrantPermissionsViewHandler.ResultListener {
- private static final int PERMISSION_GRANTED = 1;
- private static final int PERMISSION_DENIED = 2;
- private static final int PERMISSION_DENIED_RUNTIME = 3;
+ private static final String LOG_TAG = "GrantPermissionsActivity";
private String[] mRequestedPermissions;
private int[] mGrantResults;
- private final SparseArray<String> mRequestedRuntimePermissions = new SparseArray<>();
private ArrayMap<String, GroupState> mRequestGrantPermissionGroups = new ArrayMap<>();
- private final GrantPermissionViewHandler mViewHandler =
- new GrantPermissionViewHandler(this, this);
+ private GrantPermissionsViewHandler mViewHandler;
private AppPermissions mAppPermissions;
@Override
@@ -65,15 +64,23 @@ public class GrantPermissionsActivity extends Activity implements
super.onCreate(icicle);
setFinishOnTouchOutside(false);
+ int uiMode = getResources().getConfiguration().uiMode & UI_MODE_TYPE_MASK;
+ if (uiMode == UI_MODE_TYPE_TELEVISION) {
+ // TODO(tvolkert): Create GrantPermissionsTvViewHandler
+ mViewHandler = new GrantPermissionsDefaultViewHandler(this).setResultListener(this);
+ } else {
+ mViewHandler = new GrantPermissionsDefaultViewHandler(this).setResultListener(this);
+ }
+
mRequestedPermissions = getIntent().getStringArrayExtra(
PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES);
if (mRequestedPermissions == null) {
mRequestedPermissions = new String[0];
}
- mGrantResults = new int[mRequestedPermissions.length];
-
final int requestedPermCount = mRequestedPermissions.length;
+ mGrantResults = new int[requestedPermCount];
+
if (requestedPermCount == 0) {
setResultAndFinish();
return;
@@ -116,14 +123,13 @@ public class GrantPermissionsActivity extends Activity implements
} break;
default: {
- mRequestGrantPermissionGroups.put(
- group.getName(), new GroupState(group));
+ mRequestGrantPermissionGroups.put(group.getName(), new GroupState(group));
} break;
}
}
}
- setContentView(mViewHandler.creatView());
+ setContentView(mViewHandler.createView());
if (!showNextPermissionGroupGrantRequest()) {
setResultAndFinish();
@@ -133,13 +139,13 @@ public class GrantPermissionsActivity extends Activity implements
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
- mViewHandler.onSaveInstanceState(outState);
+ mViewHandler.saveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
- mViewHandler.loadSavedInstance(savedInstanceState);
+ mViewHandler.loadInstanceState(savedInstanceState);
}
private boolean showNextPermissionGroupGrantRequest() {
@@ -172,7 +178,7 @@ public class GrantPermissionsActivity extends Activity implements
}
int icon = groupState.mGroup.getIconResId();
- mViewHandler.showPermission(groupState.mGroup.getName(), groupCount, i,
+ mViewHandler.updateUi(groupState.mGroup.getName(), groupCount, i,
Icon.createWithResource(resources, icon), message,
groupState.mGroup.isUserSet());
return true;
@@ -183,8 +189,7 @@ public class GrantPermissionsActivity extends Activity implements
}
@Override
- public void onRequestGrantPermissionGroupResult(String name, boolean granted,
- boolean doNotAskAgain) {
+ public void onPermissionGrantResult(String name, boolean granted, boolean doNotAskAgain) {
GroupState groupState = mRequestGrantPermissionGroups.get(name);
if (groupState.mGroup != null) {
if (granted) {
@@ -246,13 +251,8 @@ public class GrantPermissionsActivity extends Activity implements
case DevicePolicyManager.PERMISSION_POLICY_AUTO_GRANT: {
return PERMISSION_GRANTED;
}
-
- case DevicePolicyManager.PERMISSION_POLICY_AUTO_DENY: {
- return PERMISSION_DENIED;
- }
-
default: {
- return PERMISSION_DENIED_RUNTIME;
+ return PERMISSION_DENIED;
}
}
}
@@ -262,7 +262,7 @@ public class GrantPermissionsActivity extends Activity implements
return getPackageManager().getPackageInfo(getCallingPackage(),
PackageManager.GET_PERMISSIONS);
} catch (NameNotFoundException e) {
- Log.i(LOG_TAG, "No package:" + getCallingPackage(), e);
+ Log.i(LOG_TAG, "No package: " + getCallingPackage(), e);
return null;
}
}
@@ -271,24 +271,9 @@ public class GrantPermissionsActivity extends Activity implements
final int requestedPermCount = mRequestedPermissions.length;
for (int i = 0; i < requestedPermCount; i++) {
String permission = mRequestedPermissions[i];
- final int state = callingPackageInfo != null
- ? computePermissionGrantState(callingPackageInfo, permission,
- permissionPolicy)
- : PackageManager.PERMISSION_DENIED;
- switch (state) {
- case PERMISSION_GRANTED: {
- mGrantResults[i] = PackageManager.PERMISSION_GRANTED;
- } break;
-
- case PERMISSION_DENIED: {
- mGrantResults[i] = PackageManager.PERMISSION_DENIED;
- } break;
-
- case PERMISSION_DENIED_RUNTIME: {
- mGrantResults[i] = PackageManager.PERMISSION_DENIED;
- mRequestedRuntimePermissions.put(i, permission);
- } break;
- }
+ mGrantResults[i] = callingPackageInfo != null
+ ? computePermissionGrantState(callingPackageInfo, permission, permissionPolicy)
+ : PERMISSION_DENIED;
}
}
@@ -316,14 +301,14 @@ public class GrantPermissionsActivity extends Activity implements
}
private static final class GroupState {
- public static final int STATE_UNKNOWN = 0;
- public static final int STATE_ALLOWED = 1;
- public static final int STATE_DENIED = 2;
+ static final int STATE_UNKNOWN = 0;
+ static final int STATE_ALLOWED = 1;
+ static final int STATE_DENIED = 2;
- public final AppPermissionGroup mGroup;
- public int mState = STATE_UNKNOWN;
+ final AppPermissionGroup mGroup;
+ int mState = STATE_UNKNOWN;
- public GroupState(AppPermissionGroup group) {
+ GroupState(AppPermissionGroup group) {
mGroup = group;
}
}