diff --git a/src/com/android/settings/utils/ManagedServiceSettings.java b/src/com/android/settings/utils/ManagedServiceSettings.java index 83190b334ca..7a888dbabda 100644 --- a/src/com/android/settings/utils/ManagedServiceSettings.java +++ b/src/com/android/settings/utils/ManagedServiceSettings.java @@ -37,6 +37,7 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference.OnPreferenceChangeListener; import android.support.v7.preference.PreferenceScreen; +import android.util.IconDrawableFactory; import android.util.Log; import android.view.View; @@ -58,6 +59,7 @@ public abstract class ManagedServiceSettings extends EmptyTextSettings { private DevicePolicyManager mDpm; protected ServiceListing mServiceListing; protected NotificationManager mNm; + private IconDrawableFactory mIconDrawableFactory; abstract protected Config getConfig(); @@ -73,6 +75,7 @@ public abstract class ManagedServiceSettings extends EmptyTextSettings { mPm = mContext.getPackageManager(); mDpm = (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE); mNm = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); + mIconDrawableFactory = IconDrawableFactory.newInstance(mContext); mServiceListing = new ServiceListing(mContext, mConfig); mServiceListing.addCallback(new ServiceListing.Callback() { @Override @@ -126,13 +129,15 @@ public abstract class ManagedServiceSettings extends EmptyTextSettings { final String summary = service.loadLabel(mPm).toString(); final SwitchPreference pref = new SwitchPreference(getPrefContext()); pref.setPersistent(false); - pref.setIcon(service.loadIcon(mPm)); + pref.setIcon(mIconDrawableFactory.getBadgedIcon(service, service.applicationInfo, + UserHandle.getUserId(service.applicationInfo.uid))); if (title != null && !title.equals(summary)) { pref.setTitle(title); pref.setSummary(summary); } else { pref.setTitle(summary); } + pref.setKey(cn.flattenToString()); pref.setChecked(isServiceEnabled(cn)); if (managedProfileId != UserHandle.USER_NULL && !mDpm.isNotificationListenerServicePermitted(