diff options
author | Svetoslav Ganov <svetoslavganov@google.com> | 2016-03-23 21:03:57 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-03-23 21:03:57 +0000 |
commit | 473af670a080da001465a528eca0837929ed1541 (patch) | |
tree | 41f8dce3f0bd0e25bc85b7a0686d49895b2c5845 | |
parent | 55e681c711d4d75e7e38382dcd2fdbd48c935695 (diff) | |
parent | 037718266273af6f67ae26befa6737cc1b9a508b (diff) | |
download | android_packages_apps_PackageInstaller-473af670a080da001465a528eca0837929ed1541.tar.gz android_packages_apps_PackageInstaller-473af670a080da001465a528eca0837929ed1541.tar.bz2 android_packages_apps_PackageInstaller-473af670a080da001465a528eca0837929ed1541.zip |
Respect past user choices in permisson review UI am: dcc39fe
am: 0377182
* commit '037718266273af6f67ae26befa6737cc1b9a508b':
Respect past user choices in permisson review UI
-rw-r--r-- | src/com/android/packageinstaller/permission/model/AppPermissionGroup.java | 19 | ||||
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/ReviewPermissionsActivity.java | 31 |
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) { |