From 93fb5863e5b27dab5a54cc5666d75398a4f4e6fd 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: I4d818956f2fa0585300d4dfb95ad7a16fe8882d5 Merged-In: 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 6e3841dfdfb..ae393fddea9 100644 --- a/src/com/android/settings/utils/ManagedServiceSettings.java +++ b/src/com/android/settings/utils/ManagedServiceSettings.java @@ -34,6 +34,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; @@ -54,6 +55,7 @@ public abstract class ManagedServiceSettings extends EmptyTextSettings { private PackageManager mPm; private DevicePolicyManager mDpm; protected ServiceListing mServiceListing; + private IconDrawableFactory mIconDrawableFactory; abstract protected Config getConfig(); @@ -68,6 +70,7 @@ public abstract class ManagedServiceSettings extends EmptyTextSettings { mContext = getActivity(); mPm = mContext.getPackageManager(); mDpm = (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE); + mIconDrawableFactory = IconDrawableFactory.newInstance(mContext); mServiceListing = new ServiceListing(mContext, mConfig); mServiceListing.addCallback(new ServiceListing.Callback() { @Override @@ -117,13 +120,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(mServiceListing.isEnabled(cn)); if (managedProfileId != UserHandle.USER_NULL && !mDpm.isNotificationListenerServicePermitted(