diff --git a/res/layout/location_list_no_item.xml b/res/layout/location_list_no_item.xml
deleted file mode 100644
index c0465cf9e65..00000000000
--- a/res/layout/location_list_no_item.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/com/android/settings/accounts/AccountTypePreference.java b/src/com/android/settings/accounts/AccountTypePreference.java
index 3e869fec213..1d394730556 100644
--- a/src/com/android/settings/accounts/AccountTypePreference.java
+++ b/src/com/android/settings/accounts/AccountTypePreference.java
@@ -16,6 +16,8 @@
package com.android.settings.accounts;
+import static android.content.Intent.EXTRA_USER;
+
import android.accounts.Account;
import android.content.Context;
import android.graphics.drawable.Drawable;
@@ -25,12 +27,10 @@ import android.os.UserManager;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
-import com.android.settings.R;
import com.android.settings.Utils;
+import com.android.settings.widget.AppPreference;
-import static android.content.Intent.EXTRA_USER;
-
-public class AccountTypePreference extends Preference implements OnPreferenceClickListener {
+public class AccountTypePreference extends AppPreference implements OnPreferenceClickListener {
/**
* Title of the tile that is shown to the user.
* @attr ref android.R.styleable#PreferenceHeader_title
diff --git a/src/com/android/settings/accounts/ProviderPreference.java b/src/com/android/settings/accounts/ProviderPreference.java
index 817c3b6e65a..81e02216e1d 100644
--- a/src/com/android/settings/accounts/ProviderPreference.java
+++ b/src/com/android/settings/accounts/ProviderPreference.java
@@ -16,15 +16,14 @@
package com.android.settings.accounts;
+import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+
import android.content.Context;
import android.graphics.drawable.Drawable;
-import android.support.v7.preference.Preference;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedPreference;
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
/**
* ProviderPreference is used to display an image to the left of a provider name.
* The preference ultimately calls AccountManager.addAccount() for the account type.
@@ -35,6 +34,7 @@ public class ProviderPreference extends RestrictedPreference {
public ProviderPreference(
Context context, String accountType, Drawable icon, CharSequence providerName) {
super(context);
+ setUseSmallIcon(true);
mAccountType = accountType;
setIcon(icon);
setPersistent(false);
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index 39d5f6d214a..7d61f7fa3f2 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -43,9 +43,9 @@ import com.android.settings.applications.InstalledAppDetails;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
+import com.android.settings.widget.AppPreference;
import com.android.settings.widget.SwitchBar;
import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.location.RecentLocationApps;
@@ -211,21 +211,19 @@ public class LocationSettings extends LocationSettingsBase
List recentLocationPrefs = new ArrayList<>(recentLocationRequests.size());
for (final RecentLocationApps.Request request : recentLocationRequests) {
- RestrictedPreference pref = new RestrictedPreference(getPrefContext());
+ final AppPreference pref = new AppPreference(getPrefContext());
pref.setSummary(request.contentDescription);
pref.setIcon(request.icon);
pref.setTitle(request.label);
pref.setOnPreferenceClickListener(
new PackageEntryClickedListener(request.packageName, request.userHandle));
recentLocationPrefs.add(pref);
-
}
if (recentLocationRequests.size() > 0) {
addPreferencesSorted(recentLocationPrefs, mCategoryRecentLocationRequests);
} else {
// If there's no item to display, add a "No recent apps" item.
- Preference banner = new Preference(getPrefContext());
- banner.setLayoutResource(R.layout.location_list_no_item);
+ Preference banner = new AppPreference(getPrefContext());
banner.setTitle(R.string.location_no_recent_apps);
banner.setSelectable(false);
mCategoryRecentLocationRequests.addPreference(banner);
diff --git a/src/com/android/settings/location/SettingsInjector.java b/src/com/android/settings/location/SettingsInjector.java
index 428745b81fe..c6d1f37c2a3 100644
--- a/src/com/android/settings/location/SettingsInjector.java
+++ b/src/com/android/settings/location/SettingsInjector.java
@@ -40,6 +40,8 @@ import android.util.AttributeSet;
import android.util.Log;
import android.util.Xml;
+import com.android.settings.widget.AppPreference;
+
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -268,7 +270,7 @@ class SettingsInjector {
PackageManager pm = mContext.getPackageManager();
Drawable appIcon = pm.getDrawable(info.packageName, info.iconId, null);
Drawable icon = pm.getUserBadgedIcon(appIcon, info.mUserHandle);
- Preference pref = new Preference(prefContext);
+ Preference pref = new AppPreference(prefContext);
pref.setTitle(info.title);
pref.setSummary(null);
pref.setIcon(icon);
diff --git a/src/com/android/settings/vpn2/LegacyVpnPreference.java b/src/com/android/settings/vpn2/LegacyVpnPreference.java
index 4ef28083193..8fa96803432 100644
--- a/src/com/android/settings/vpn2/LegacyVpnPreference.java
+++ b/src/com/android/settings/vpn2/LegacyVpnPreference.java
@@ -16,6 +16,8 @@
package com.android.settings.vpn2;
+import static com.android.internal.net.LegacyVpnInfo.STATE_CONNECTED;
+
import android.content.Context;
import android.support.v7.preference.Preference;
import android.text.TextUtils;
@@ -23,7 +25,6 @@ import android.view.View;
import com.android.internal.net.VpnProfile;
import com.android.settings.R;
-import static com.android.internal.net.LegacyVpnInfo.STATE_CONNECTED;
/**
* {@link android.support.v7.preference.Preference} tracks the underlying legacy vpn profile and
@@ -35,6 +36,7 @@ public class LegacyVpnPreference extends ManageablePreference {
LegacyVpnPreference(Context context) {
super(context, null /* attrs */);
setIcon(R.drawable.ic_vpn_key);
+ setUseSmallIcon(true);
}
public VpnProfile getProfile() {
diff --git a/tests/robotests/src/com/android/settings/accounts/ProviderPreferenceTest.java b/tests/robotests/src/com/android/settings/accounts/ProviderPreferenceTest.java
new file mode 100644
index 00000000000..4e4bb4feeaf
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/ProviderPreferenceTest.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.accounts;
+
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.ReflectionHelpers;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class ProviderPreferenceTest {
+
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+ }
+
+ @Test
+ public void shouldUseSmallIcon() {
+ final ProviderPreference providerPreference = new ProviderPreference(
+ mContext, "account_type", null /* icon */, "provider_name");
+ final boolean useSmallIcon =
+ ReflectionHelpers.getField(providerPreference, "mUseSmallIcon");
+ assertThat(useSmallIcon).isTrue();
+ }
+}