From 48191f7363a0c16a0f06b715d1b73b55bb12b01f Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Fri, 7 Jul 2017 06:40:27 -0700 Subject: [PATCH] Adding key to individual entries in ManagedServiceSettings so that it can be linked using an intent. Also updating the icon loading logic so that it handles AdaptiveIcons properly. Test: Manually tested on device Bug: 63418030 Change-Id: I3059e3a562a593bc425d4e778be052ac014a7002 --- src/com/android/settings/utils/ManagedServiceSettings.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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(