From 42b83a604f2b7940a1c2c9086aaf920644f3c92b Mon Sep 17 00:00:00 2001 From: Tony Mak Date: Wed, 11 Apr 2018 12:40:08 +0100 Subject: [PATCH] Badge the icon properly in policy transparency dialog Following the pattern used within the Settings app to badge the icon. For location setting, the dialog is shown in work profile user. Thus ai.loadIcon badged the icon for the first time and getUserBadgedIcon baged the second time. Fixes: 77844928 Test: adb shell wm density 560 -> suspend an app -> launch the app -> observe the dialog. Repeat the test with original density. Change-Id: Ie79c3d9aa7b1a155edc74816850b1349fbd2d606 --- .../ActionDisabledByAdminDialogHelper.java | 26 ++++++------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java index 1c1d2f39fdb..528ab3f3436 100644 --- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java +++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java @@ -18,19 +18,16 @@ package com.android.settings.enterprise; import android.app.Activity; import android.app.AlertDialog; -import android.app.AppGlobals; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; -import android.content.pm.ActivityInfo; import android.graphics.drawable.Drawable; import android.os.Process; -import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; import android.support.annotation.VisibleForTesting; -import android.util.Log; +import android.util.IconDrawableFactory; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -40,6 +37,7 @@ import android.widget.TextView; import com.android.settings.DeviceAdminAdd; import com.android.settings.R; import com.android.settings.Settings; +import com.android.settings.Utils; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; @@ -99,20 +97,12 @@ public class ActionDisabledByAdminDialogHelper { || !RestrictedLockUtils.isCurrentUserOrProfile(mActivity, userId)) { admin = null; } else { - ActivityInfo ai = null; - try { - ai = AppGlobals.getPackageManager().getReceiverInfo(admin, 0 /* flags */, - userId); - } catch (RemoteException e) { - Log.w(TAG, "Missing reciever info", e); - } - if (ai != null) { - final Drawable icon = ai.loadIcon(mActivity.getPackageManager()); - final Drawable badgedIcon = mActivity.getPackageManager().getUserBadgedIcon( - icon, new UserHandle(userId)); - ((ImageView) root.findViewById(R.id.admin_support_icon)).setImageDrawable( - badgedIcon); - } + final Drawable badgedIcon = Utils.getBadgedIcon( + IconDrawableFactory.newInstance(mActivity), + mActivity.getPackageManager(), + admin.getPackageName(), + userId); + ((ImageView) root.findViewById(R.id.admin_support_icon)).setImageDrawable(badgedIcon); } setAdminSupportTitle(root, restriction);