summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java')
-rw-r--r--src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java49
1 files changed, 29 insertions, 20 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java b/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java
index 1969c20d..6f1273bb 100644
--- a/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java
+++ b/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java
@@ -18,10 +18,7 @@ package com.android.packageinstaller.permission.ui.wear;
import android.annotation.Nullable;
import android.app.Activity;
-import android.app.AlertDialog;
import android.app.Fragment;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
@@ -51,11 +48,13 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {
private static final String LOG_TAG = "ManagePermsFragment";
+ private static final int WARNING_CONFIRMATION_REQUEST = 252;
private List<AppPermissionGroup> mToggledGroups;
private AppPermissions mAppPermissions;
private PermissionsSettingsAdapter mAdapter;
private boolean mHasConfirmedRevoke;
+ private int mPendingPermGroupIndex = -1;
public static AppPermissionsFragmentWear newInstance(String packageName) {
return setPackageName(new AppPermissionsFragmentWear(), packageName);
@@ -216,23 +215,12 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {
} else {
final boolean grantedByDefault = group.hasGrantedByDefaultPermission();
if (grantedByDefault || (!group.hasRuntimePermission() && !mHasConfirmedRevoke)) {
- new AlertDialog.Builder(getContext())
- .setMessage(grantedByDefault ? R.string.system_warning
- : 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) {
- group.revokeRuntimePermissions(false);
- if (!grantedByDefault) {
- mHasConfirmedRevoke = true;
- }
-
- updatePermissionGroupSetting(index);
- }
- })
- .show();
+ mPendingPermGroupIndex = index;
+ Intent intent = new Intent(getActivity(), WarningConfirmationActivity.class);
+ intent.putExtra(WarningConfirmationActivity.EXTRA_WARNING_MESSAGE,
+ getString(grantedByDefault ?
+ R.string.system_warning : R.string.old_sdk_deny_warning));
+ startActivityForResult(intent, WARNING_CONFIRMATION_REQUEST);
} else {
group.revokeRuntimePermissions(false);
}
@@ -241,6 +229,27 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {
updatePermissionGroupSetting(index);
}
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == WARNING_CONFIRMATION_REQUEST) {
+ if (resultCode == Activity.RESULT_OK) {
+ SettingsAdapter.Setting<AppPermissionGroup> setting =
+ mAdapter.get(mPendingPermGroupIndex);
+ final AppPermissionGroup group = setting.data;
+ group.revokeRuntimePermissions(false);
+ if (!group.hasGrantedByDefaultPermission()) {
+ mHasConfirmedRevoke = true;
+ }
+
+ updatePermissionGroupSetting(mPendingPermGroupIndex);
+ }
+
+ mPendingPermGroupIndex = -1;
+ } else {
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+ }
+
private void updatePermissionGroupSetting(int index) {
SettingsAdapter.Setting<AppPermissionGroup> setting = mAdapter.get(index);
AppPermissionGroup group = setting.data;