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
This commit is contained in:
@@ -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(
|
||||
|
Reference in New Issue
Block a user