summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/packageinstaller/permission/model/AppPermissionGroup.java19
-rw-r--r--src/com/android/packageinstaller/permission/ui/ReviewPermissionsActivity.java31
2 files changed, 23 insertions, 27 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
index fdb77934..050e8b1e 100644
--- a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
+++ b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
@@ -215,6 +215,9 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
}
public boolean isReviewRequired() {
+ if (mAppSupportsRuntimePermissions) {
+ return false;
+ }
final int permissionCount = mPermissions.size();
for (int i = 0; i < permissionCount; i++) {
Permission permission = mPermissions.valueAt(i);
@@ -250,17 +253,6 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
return false;
}
- public boolean hasAppOpPermission() {
- final int permissionCount = mPermissions.size();
- for (int i = 0; i < permissionCount; i++) {
- Permission permission = mPermissions.valueAt(i);
- if (permission.getAppOp() != AppOpsManager.OP_NONE) {
- return true;
- }
- }
- return false;
- }
-
public PackageInfo getApp() {
return mPackageInfo;
}
@@ -316,9 +308,8 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
if (permission.isGranted()) {
return true;
}
- } else if (permission.isGranted() && ((permission.getAppOp()
- == AppOpsManager.OP_NONE || permission.isAppOpAllowed()))
- && !permission.isReviewRequired()) {
+ } else if (permission.isGranted() && (permission.getAppOp()
+ == AppOpsManager.OP_NONE || permission.isAppOpAllowed())) {
return true;
}
}
diff --git a/src/com/android/packageinstaller/permission/ui/ReviewPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/ReviewPermissionsActivity.java
index f31d618e..2bff0e28 100644
--- a/src/com/android/packageinstaller/permission/ui/ReviewPermissionsActivity.java
+++ b/src/com/android/packageinstaller/permission/ui/ReviewPermissionsActivity.java
@@ -144,7 +144,7 @@ public final class ReviewPermissionsActivity extends Activity
return;
}
- boolean reviewRequired= false;
+ boolean reviewRequired = false;
for (AppPermissionGroup group : mAppPermissions.getPermissionGroups()) {
if (group.isReviewRequired()) {
reviewRequired = true;
@@ -166,6 +166,7 @@ public final class ReviewPermissionsActivity extends Activity
@Override
public void onResume() {
super.onResume();
+ mAppPermissions.refresh();
loadPreferences();
}
@@ -240,6 +241,9 @@ public final class ReviewPermissionsActivity extends Activity
private void bindUi() {
Activity activity = getActivity();
+ if (activity == null) {
+ return;
+ }
// Set icon
Drawable icon = mAppPermissions.getPackageInfo().applicationInfo.loadIcon(
@@ -279,6 +283,11 @@ public final class ReviewPermissionsActivity extends Activity
}
private void loadPreferences() {
+ Activity activity = getActivity();
+ if (activity == null) {
+ return;
+ }
+
PreferenceScreen screen = getPreferenceScreen();
if (screen == null) {
screen = getPreferenceManager().createPreferenceScreen(getActivity());
@@ -309,17 +318,8 @@ public final class ReviewPermissionsActivity extends Activity
} else {
preference = new SwitchPreference(getActivity());
- // We update permission grants based on the final preference states
- if (group.isReviewRequired()) {
- // If review is required use granted as default
- preference.setChecked(true);
- } else {
- // If review not required use the current grant state as default
- preference.setChecked(group.areRuntimePermissionsGranted());
- }
-
preference.setKey(group.getName());
- Drawable icon = Utils.loadDrawable(getActivity().getPackageManager(),
+ Drawable icon = Utils.loadDrawable(activity.getPackageManager(),
group.getIconPkg(), group.getIconResId());
preference.setIcon(Utils.applyTint(getContext(), icon,
android.R.attr.colorControlNormal));
@@ -330,6 +330,8 @@ public final class ReviewPermissionsActivity extends Activity
preference.setOnPreferenceChangeListener(this);
}
+ preference.setChecked(group.areRuntimePermissionsGranted());
+
// Mutable state
if (group.isPolicyFixed()) {
preference.setEnabled(false);
@@ -344,7 +346,7 @@ public final class ReviewPermissionsActivity extends Activity
screen.addPreference(preference);
} else {
if (mNewPermissionsCategory == null) {
- mNewPermissionsCategory = new PreferenceCategory(getActivity());
+ mNewPermissionsCategory = new PreferenceCategory(activity);
mNewPermissionsCategory.setTitle(R.string.new_permissions_category);
mNewPermissionsCategory.setOrder(1);
screen.addPreference(mNewPermissionsCategory);
@@ -353,7 +355,7 @@ public final class ReviewPermissionsActivity extends Activity
}
} else {
if (currentPermissionsCategory == null) {
- currentPermissionsCategory = new PreferenceCategory(getActivity());
+ currentPermissionsCategory = new PreferenceCategory(activity);
currentPermissionsCategory.setTitle(R.string.current_permissions_category);
currentPermissionsCategory.setOrder(2);
screen.addPreference(currentPermissionsCategory);
@@ -377,6 +379,9 @@ public final class ReviewPermissionsActivity extends Activity
private void executeCallback(boolean success) {
Activity activity = getActivity();
+ if (activity == null) {
+ return;
+ }
if (success) {
IntentSender intent = activity.getIntent().getParcelableExtra(Intent.EXTRA_INTENT);
if (intent != null) {