diff options
author | Sudheer Shanka <sudheersai@google.com> | 2015-04-09 12:19:53 +0100 |
---|---|---|
committer | Sudheer Shanka <sudheersai@google.com> | 2015-04-28 11:32:09 +0000 |
commit | bc95630994227736aff46885ca1d9345829e83e2 (patch) | |
tree | 61c1c679bd4288de4916f42f983884775106cfee /src/com/android/settings/users | |
parent | 79670bbe68dbc6c6cc1da9f1d093dabb8099e7f5 (diff) | |
download | packages_apps_Settings-bc95630994227736aff46885ca1d9345829e83e2.zip packages_apps_Settings-bc95630994227736aff46885ca1d9345829e83e2.tar.gz packages_apps_Settings-bc95630994227736aff46885ca1d9345829e83e2.tar.bz2 |
Update warning dialog on work profile deletion.
Bug: 20024761
Change-Id: I23b0eaa7742d9d23a29a2a48ab6e3d92fe310560
Diffstat (limited to 'src/com/android/settings/users')
-rw-r--r-- | src/com/android/settings/users/UserDialogs.java | 73 |
1 files changed, 57 insertions, 16 deletions
diff --git a/src/com/android/settings/users/UserDialogs.java b/src/com/android/settings/users/UserDialogs.java index 2d92464..23012b3 100644 --- a/src/com/android/settings/users/UserDialogs.java +++ b/src/com/android/settings/users/UserDialogs.java @@ -20,11 +20,19 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; import android.content.pm.UserInfo; +import android.graphics.drawable.Drawable; import android.os.UserHandle; import android.os.UserManager; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; import com.android.settings.R; +import com.android.settings.Utils; /** * Helper class for displaying dialogs related to user settings. @@ -44,27 +52,60 @@ public final class UserDialogs { DialogInterface.OnClickListener onConfirmListener) { UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE); UserInfo userInfo = um.getUserInfo(removingUserId); - int titleResId; - int messageResId; + AlertDialog.Builder builder = new AlertDialog.Builder(context) + .setPositiveButton(R.string.user_delete_button, onConfirmListener) + .setNegativeButton(android.R.string.cancel, null); if (UserHandle.myUserId() == removingUserId) { - titleResId = R.string.user_confirm_remove_self_title; - messageResId = R.string.user_confirm_remove_self_message; + builder.setTitle(R.string.user_confirm_remove_self_title); + builder.setMessage(R.string.user_confirm_remove_self_message); } else if (userInfo.isRestricted()) { - titleResId = R.string.user_profile_confirm_remove_title; - messageResId = R.string.user_profile_confirm_remove_message; + builder.setTitle(R.string.user_profile_confirm_remove_title); + builder.setMessage(R.string.user_profile_confirm_remove_message); } else if (userInfo.isManagedProfile()) { - titleResId = R.string.work_profile_confirm_remove_title; - messageResId = R.string.work_profile_confirm_remove_message; + builder.setTitle(R.string.work_profile_confirm_remove_title); + View view = createRemoveManagedUserDialogView(context, removingUserId); + if (view != null) { + builder.setView(view); + } else { + builder.setMessage(R.string.work_profile_confirm_remove_message); + } } else { - titleResId = R.string.user_confirm_remove_title; - messageResId = R.string.user_confirm_remove_message; + builder.setTitle(R.string.user_confirm_remove_title); + builder.setMessage(R.string.user_confirm_remove_message); } - return new AlertDialog.Builder(context) - .setTitle(titleResId) - .setMessage(messageResId) - .setPositiveButton(R.string.user_delete_button, onConfirmListener) - .setNegativeButton(android.R.string.cancel, null) - .create(); + return builder.create(); + } + + /** + * Creates a view to be used in the confirmation dialog for removing work profile. + */ + private static View createRemoveManagedUserDialogView(Context context, int userId) { + PackageManager packageManager = context.getPackageManager(); + ApplicationInfo mdmApplicationInfo = Utils.getAdminApplicationInfo(context, userId); + if (mdmApplicationInfo == null) { + return null; + } + LayoutInflater inflater = + (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + + View view = inflater.inflate(R.layout.delete_managed_profile_dialog, null); + ImageView imageView = + (ImageView) view.findViewById(R.id.delete_managed_profile_mdm_icon_view); + Drawable badgedApplicationIcon = packageManager.getUserBadgedIcon( + packageManager.getApplicationIcon(mdmApplicationInfo), new UserHandle(userId)); + imageView.setImageDrawable(badgedApplicationIcon); + + CharSequence appLabel = packageManager.getApplicationLabel(mdmApplicationInfo); + CharSequence badgedAppLabel = packageManager.getUserBadgedLabel(appLabel, + new UserHandle(userId)); + TextView textView = + (TextView) view.findViewById(R.id.delete_managed_profile_device_manager_name); + textView.setText(appLabel); + if (!appLabel.toString().contentEquals(badgedAppLabel)) { + textView.setContentDescription(badgedAppLabel); + } + + return view; } /** |