diff options
author | Jason Monk <jmonk@google.com> | 2015-05-14 15:13:27 -0400 |
---|---|---|
committer | Jason Monk <jmonk@google.com> | 2015-05-15 11:38:18 -0400 |
commit | d7f8200201563ca300572e2b56100acfd010140d (patch) | |
tree | 69ffa9d9210e8fd7f51ac3c9318895615e5bfff7 /src | |
parent | 58964d3525d8b35618cb857e7406ccec6f35a27a (diff) | |
download | android_packages_apps_PackageInstaller-d7f8200201563ca300572e2b56100acfd010140d.tar.gz android_packages_apps_PackageInstaller-d7f8200201563ca300572e2b56100acfd010140d.tar.bz2 android_packages_apps_PackageInstaller-d7f8200201563ca300572e2b56100acfd010140d.zip |
Apply same warning dialog to PermissionAppsFragment
Also fix old warning dialog to only show when needed.
Bug: 21154909
Change-Id: Ibac1f39e8ae034ffc82450aedd2e30a5af28eb31
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java | 2 | ||||
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java | 27 |
2 files changed, 25 insertions, 4 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java index f0e8dba4..e1dd85a6 100644 --- a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java @@ -240,7 +240,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader if (newValue == Boolean.TRUE) { group.grantRuntimePermissions(false); } else { - if (group.hasAppOpPermission() && !mHasConfirmedRevoke) { + if (!group.hasRuntimePermission() && !mHasConfirmedRevoke) { new AlertDialog.Builder(getContext()) .setMessage(R.string.old_sdk_deny_warning) .setNegativeButton(R.string.cancel, null) diff --git a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java index b8ae369d..d1d7c87e 100644 --- a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java @@ -17,7 +17,10 @@ package com.android.packageinstaller.permission.ui; import android.annotation.Nullable; import android.app.ActionBar; +import android.app.AlertDialog; import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; @@ -57,6 +60,7 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements private PermissionApps mPermissionApps; private ArrayMap<String, PermissionGroup> mToggledGroups; + private boolean mHasConfirmedRevoke; @Override public void onCreate(Bundle savedInstanceState) { @@ -168,9 +172,9 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements } @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { + public boolean onPreferenceChange(final Preference preference, Object newValue) { String pkg = preference.getKey(); - PermissionApp app = mPermissionApps.getApp(pkg); + final PermissionApp app = mPermissionApps.getApp(pkg); addToggledGroup(app.getPackageName(), app.getPermissionGroup()); @@ -180,7 +184,24 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements if (newValue == Boolean.TRUE) { app.grantRuntimePermissions(); } else { - app.revokeRuntimePermissions(); + if (!app.hasRuntimePermissions() && !mHasConfirmedRevoke) { + new AlertDialog.Builder(getContext()) + .setMessage(R.string.old_sdk_deny_warning) + .setNegativeButton(R.string.cancel, null) + .setPositiveButton(R.string.grant_dialog_button_deny, + new OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + ((SwitchPreference) preference).setChecked(false); + app.revokeRuntimePermissions(); + mHasConfirmedRevoke = true; + } + }) + .show(); + return false; + } else { + app.revokeRuntimePermissions(); + } } return true; } |