Merge "Add confirmation dialog when granting/revoking admin privileges." into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
84da171439
@@ -41,6 +41,7 @@ import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||
import com.android.settingslib.RestrictedPreference;
|
||||
import com.android.settingslib.utils.CustomDialogHelper;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
@@ -74,6 +75,7 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
|
||||
private static final int DIALOG_CONFIRM_RESET_GUEST = 4;
|
||||
private static final int DIALOG_CONFIRM_RESET_GUEST_AND_SWITCH_USER = 5;
|
||||
private static final int DIALOG_CONFIRM_REVOKE_ADMIN = 6;
|
||||
private static final int DIALOG_CONFIRM_GRANT_ADMIN = 7;
|
||||
|
||||
/** Whether to enable the app_copying fragment. */
|
||||
private static final boolean SHOW_APP_COPYING_PREF = false;
|
||||
@@ -188,11 +190,12 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
|
||||
mMetricsFeatureProvider.action(getActivity(),
|
||||
SettingsEnums.ACTION_REVOKE_ADMIN_FROM_SETTINGS);
|
||||
showDialog(DIALOG_CONFIRM_REVOKE_ADMIN);
|
||||
return false;
|
||||
} else {
|
||||
mMetricsFeatureProvider.action(getActivity(),
|
||||
SettingsEnums.ACTION_GRANT_ADMIN_FROM_SETTINGS);
|
||||
showDialog(DIALOG_CONFIRM_GRANT_ADMIN);
|
||||
}
|
||||
mMetricsFeatureProvider.action(getActivity(),
|
||||
SettingsEnums.ACTION_GRANT_ADMIN_FROM_SETTINGS);
|
||||
updateUserAdminStatus(true);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -208,6 +211,8 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
|
||||
return SettingsEnums.DIALOG_USER_ENABLE_CALLING_AND_SMS;
|
||||
case DIALOG_CONFIRM_REVOKE_ADMIN:
|
||||
return SettingsEnums.DIALOG_REVOKE_USER_ADMIN;
|
||||
case DIALOG_CONFIRM_GRANT_ADMIN:
|
||||
return SettingsEnums.DIALOG_GRANT_USER_ADMIN;
|
||||
case DIALOG_SETUP_USER:
|
||||
return SettingsEnums.DIALOG_USER_SETUP;
|
||||
default:
|
||||
@@ -252,12 +257,54 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
|
||||
(dialog, which) -> switchUser());
|
||||
}
|
||||
case DIALOG_CONFIRM_REVOKE_ADMIN:
|
||||
return UserDialogs.createConfirmRevokeAdmin(getActivity(),
|
||||
(dialog, which) -> updateUserAdminStatus(false));
|
||||
return createRevokeAdminDialog(getContext());
|
||||
case DIALOG_CONFIRM_GRANT_ADMIN:
|
||||
return createGrantAdminDialog(getContext());
|
||||
}
|
||||
throw new IllegalArgumentException("Unsupported dialogId " + dialogId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates dialog to confirm revoking admin rights.
|
||||
* @return created confirmation dialog
|
||||
*/
|
||||
private Dialog createRevokeAdminDialog(Context context) {
|
||||
CustomDialogHelper dialogHelper = new CustomDialogHelper(context);
|
||||
dialogHelper.setIcon(
|
||||
context.getDrawable(com.android.settingslib.R.drawable.ic_admin_panel_settings));
|
||||
dialogHelper.setTitle(R.string.user_revoke_admin_confirm_title);
|
||||
dialogHelper.setMessage(R.string.user_revoke_admin_confirm_message);
|
||||
dialogHelper.setPositiveButton(R.string.remove, view -> {
|
||||
updateUserAdminStatus(false);
|
||||
dialogHelper.getDialog().dismiss();
|
||||
});
|
||||
dialogHelper.setBackButton(R.string.cancel, view -> {
|
||||
dialogHelper.getDialog().dismiss();
|
||||
});
|
||||
return dialogHelper.getDialog();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates dialog to confirm granting admin rights.
|
||||
* @return created confirmation dialog
|
||||
*/
|
||||
private Dialog createGrantAdminDialog(Context context) {
|
||||
CustomDialogHelper dialogHelper = new CustomDialogHelper(context);
|
||||
dialogHelper.setIcon(
|
||||
context.getDrawable(com.android.settingslib.R.drawable.ic_admin_panel_settings));
|
||||
dialogHelper.setTitle(com.android.settingslib.R.string.user_grant_admin_title);
|
||||
dialogHelper.setMessage(com.android.settingslib.R.string.user_grant_admin_message);
|
||||
dialogHelper.setPositiveButton(com.android.settingslib.R.string.user_grant_admin_button,
|
||||
view -> {
|
||||
updateUserAdminStatus(true);
|
||||
dialogHelper.getDialog().dismiss();
|
||||
});
|
||||
dialogHelper.setBackButton(R.string.cancel, view -> {
|
||||
dialogHelper.getDialog().dismiss();
|
||||
});
|
||||
return dialogHelper.getDialog();
|
||||
}
|
||||
|
||||
/**
|
||||
* Erase the current guest user and create a new one in the background. UserSettings will
|
||||
* handle guest creation after receiving the {@link UserSettings.RESULT_GUEST_REMOVED} result.
|
||||
|
@@ -202,19 +202,4 @@ public final class UserDialogs {
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.create();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a dialog to confirm that the admin privileges of the user should be revoked.
|
||||
*
|
||||
* @param onConfirmListener Callback object for positive action
|
||||
*/
|
||||
public static Dialog createConfirmRevokeAdmin(Context context,
|
||||
DialogInterface.OnClickListener onConfirmListener) {
|
||||
return new AlertDialog.Builder(context)
|
||||
.setTitle(R.string.user_revoke_admin_confirm_title)
|
||||
.setMessage(R.string.user_revoke_admin_confirm_message)
|
||||
.setPositiveButton(R.string.remove, onConfirmListener)
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.create();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user