Added optional uses-feature telephony to enable tablet installs (2/3)
* Check for the telephony feature before asking for the permission.
* Also, stop asking for all permission, both required and desired,
when a required permission is missing. Now that this behavior is
gone we can also stop requiring RequestPermissionsActivityBase
instances to provide two differnt sets of permissions.
Bug 29874465
Bug 30000144
Change-Id: I44590e667f89eb217cc42cbb4ee186f3213509fa
diff --git a/src/com/android/contacts/common/activity/RequestPermissionsActivityBase.java b/src/com/android/contacts/common/activity/RequestPermissionsActivityBase.java
index df83129..999c545 100644
--- a/src/com/android/contacts/common/activity/RequestPermissionsActivityBase.java
+++ b/src/com/android/contacts/common/activity/RequestPermissionsActivityBase.java
@@ -16,7 +16,6 @@
package com.android.contacts.common.activity;
-import com.android.contacts.common.R;
import com.android.contacts.common.model.AccountTypeManager;
import com.android.contacts.common.util.PermissionsUtil;
@@ -32,8 +31,7 @@
import java.util.Arrays;
/**
- * Activity that asks the user for all {@link #getDesiredPermissions} if any of
- * {@link #getRequiredPermissions} are missing.
+ * Activity that asks the user for all {@link #getPermissions} if any are missing.
*
* NOTE: As a result of b/22095159, this can behave oddly in the case where the final permission
* you are requesting causes an application restart.
@@ -50,16 +48,10 @@
private static final int PERMISSIONS_REQUEST_ALL_PERMISSIONS = 1;
/**
- * @return list of permissions that are needed in order for {@link #PREVIOUS_ACTIVITY_INTENT} to
- * operate. You only need to return a single permission per permission group you care about.
+ * @return list of permissions that are needed in order for {@link #PREVIOUS_ACTIVITY_INTENT}
+ * to operate. You only need to return a single permission per permission group you care about.
*/
- protected abstract String[] getRequiredPermissions();
-
- /**
- * @return list of permissions that would be useful for {@link #PREVIOUS_ACTIVITY_INTENT} to
- * operate. You only need to return a single permission per permission group you care about.
- */
- protected abstract String[] getDesiredPermissions();
+ protected abstract String[] getPermissions();
protected Intent mPreviousActivityIntent;
@@ -113,7 +105,7 @@
}
private boolean isPermissionRequired(String p) {
- return Arrays.asList(getRequiredPermissions()).contains(p);
+ return Arrays.asList(getPermissions()).contains(p);
}
private void requestPermissions() {
@@ -121,7 +113,7 @@
try {
// Construct a list of missing permissions
final ArrayList<String> unsatisfiedPermissions = new ArrayList<>();
- for (String permission : getDesiredPermissions()) {
+ for (String permission : getPermissions()) {
if (!PermissionsUtil.hasPermission(this, permission)) {
unsatisfiedPermissions.add(permission);
}