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(); + } +}