From bdb70b1078ac8c78eff81e29ab93eccf0309091f Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Wed, 9 Jun 2021 09:23:00 +0800 Subject: [PATCH] Tweak UI of CardPreference and ContextualCard - CardPreference uses settingslib_preference layout to fix title/summary alignment issue. - Remove stroke for CardPreference and ContextualCard. - Set colorSurface as default card background color. Bug: 188599776 Test: manual visual Change-Id: Id0ee40be60de1f7605849490ee43eae4b9420abb --- color-check-baseline.xml | 32 ------------------- res/layout/card_preference_layout.xml | 2 +- res/values/colors.xml | 2 -- res/values/styles.xml | 7 ++-- .../deviceinfo/StorageCategoryFragment.java | 8 ++--- .../deviceinfo/StorageDashboardFragment.java | 8 ++--- .../settings/widget/CardPreference.java | 25 --------------- .../settings/widget/CardPreferenceTest.java | 31 ------------------ 8 files changed, 8 insertions(+), 107 deletions(-) diff --git a/color-check-baseline.xml b/color-check-baseline.xml index 48a204f2cd2..27f2bd16fa2 100644 --- a/color-check-baseline.xml +++ b/color-check-baseline.xml @@ -1117,22 +1117,6 @@ column="5"/> - - - - - - - - + layout="@layout/settingslib_preference" /> diff --git a/res/values/colors.xml b/res/values/colors.xml index edef6ef257b..fd5f8c8304e 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -103,9 +103,7 @@ #E51AD1 #DD4C9D - #1f000000 @*android:color/material_grey_100 - @*android:color/background_device_default_light @*android:color/material_grey_600 diff --git a/res/values/styles.xml b/res/values/styles.xml index 6021a7c226e..be0a2f22e11 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -13,7 +13,8 @@ limitations under the License. --> - + diff --git a/src/com/android/settings/deviceinfo/StorageCategoryFragment.java b/src/com/android/settings/deviceinfo/StorageCategoryFragment.java index ffce2259d90..98736e39a48 100644 --- a/src/com/android/settings/deviceinfo/StorageCategoryFragment.java +++ b/src/com/android/settings/deviceinfo/StorageCategoryFragment.java @@ -44,7 +44,6 @@ import com.android.settings.deviceinfo.storage.StorageItemPreferenceController; import com.android.settings.deviceinfo.storage.UserIconLoader; import com.android.settings.deviceinfo.storage.VolumeSizesLoader; import com.android.settings.overlay.FeatureFactory; -import com.android.settings.widget.CardPreference; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.core.AbstractPreferenceController; @@ -91,7 +90,7 @@ public class StorageCategoryFragment extends DashboardFragment private List mSecondaryUsers; private boolean mIsWorkProfile; private int mUserId; - private CardPreference mFreeUpSpacePreference; + private Preference mFreeUpSpacePreference; /** * Refresh UI for specified storageEntry. @@ -146,11 +145,8 @@ public class StorageCategoryFragment extends DashboardFragment } private void initializePreference() { - mFreeUpSpacePreference = (CardPreference) getPreferenceScreen() - .findPreference(FREE_UP_SPACE_PREF_KEY); + mFreeUpSpacePreference = getPreferenceScreen().findPreference(FREE_UP_SPACE_PREF_KEY); mFreeUpSpacePreference.setOnPreferenceClickListener(this); - mFreeUpSpacePreference.setCardBackgroundColor(Utils.getColorAttrDefaultColor(getContext(), - com.android.internal.R.attr.colorSurface)); } @Override diff --git a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java index 0fce8fac61b..6dbc3aa9a7e 100644 --- a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java +++ b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java @@ -56,7 +56,6 @@ import com.android.settings.deviceinfo.storage.UserIconLoader; import com.android.settings.deviceinfo.storage.VolumeSizesLoader; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.CardPreference; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.core.AbstractPreferenceController; @@ -110,7 +109,7 @@ public class StorageDashboardFragment extends DashboardFragment private List mSecondaryUsers; private boolean mIsWorkProfile; private int mUserId; - private CardPreference mFreeUpSpacePreference; + private Preference mFreeUpSpacePreference; private final StorageEventListener mStorageEventListener = new StorageEventListener() { @Override @@ -282,11 +281,8 @@ public class StorageDashboardFragment extends DashboardFragment } private void initializePreference() { - mFreeUpSpacePreference = (CardPreference) getPreferenceScreen() - .findPreference(FREE_UP_SPACE_PREF_KEY); + mFreeUpSpacePreference = getPreferenceScreen().findPreference(FREE_UP_SPACE_PREF_KEY); mFreeUpSpacePreference.setOnPreferenceClickListener(this); - mFreeUpSpacePreference.setCardBackgroundColor(Utils.getColorAttrDefaultColor(getContext(), - com.android.internal.R.attr.colorSurface)); } @Override diff --git a/src/com/android/settings/widget/CardPreference.java b/src/com/android/settings/widget/CardPreference.java index 80d9da2f96f..c04155222a0 100644 --- a/src/com/android/settings/widget/CardPreference.java +++ b/src/com/android/settings/widget/CardPreference.java @@ -19,9 +19,7 @@ package com.android.settings.widget; import android.content.Context; import android.util.AttributeSet; -import androidx.annotation.ColorInt; import androidx.preference.Preference; -import androidx.preference.PreferenceViewHolder; import com.android.settings.R; @@ -32,10 +30,6 @@ import com.google.android.material.card.MaterialCardView; */ public class CardPreference extends Preference { - private static final @ColorInt int INVALID_COLOR = -1; - - private @ColorInt int mCardBackgroundColor = INVALID_COLOR; - public CardPreference(Context context) { this(context, null /* attrs */); } @@ -43,23 +37,4 @@ public class CardPreference extends Preference { public CardPreference(Context context, AttributeSet attrs) { super(context, attrs, R.attr.cardPreferenceStyle); } - - /** Set card background color of the MaterialCardView in CardPreference. */ - public void setCardBackgroundColor(@ColorInt int color) { - if (mCardBackgroundColor == color) { - return; - } - mCardBackgroundColor = color; - notifyChanged(); - } - - @Override - public void onBindViewHolder(PreferenceViewHolder view) { - super.onBindViewHolder(view); - - if (mCardBackgroundColor != INVALID_COLOR) { - final MaterialCardView cardView = (MaterialCardView) view.findViewById(R.id.container); - cardView.setCardBackgroundColor(mCardBackgroundColor); - } - } } diff --git a/tests/robotests/src/com/android/settings/widget/CardPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/CardPreferenceTest.java index 617dad58552..85ab609ba49 100644 --- a/tests/robotests/src/com/android/settings/widget/CardPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/widget/CardPreferenceTest.java @@ -18,26 +18,13 @@ package com.android.settings.widget; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; - import android.content.Context; -import android.view.View; - -import androidx.annotation.ColorInt; -import androidx.preference.PreferenceViewHolder; import com.android.settings.R; -import com.google.android.material.card.MaterialCardView; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @@ -46,34 +33,16 @@ public class CardPreferenceTest { private Context mContext; private CardPreference mCardPreference; - @Mock - private PreferenceViewHolder mPreferenceViewHolder; - @Mock - private MaterialCardView mCardView; @Before public void setUp() { - MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; mContext.setTheme(R.style.SettingsPreferenceTheme); mCardPreference = new CardPreference(mContext); - mPreferenceViewHolder = spy(PreferenceViewHolder.createInstanceForTests(mock(View.class))); - doReturn(mCardView).when(mPreferenceViewHolder).findViewById(R.id.container); } @Test public void getLayoutResource() { assertThat(mCardPreference.getLayoutResource()).isEqualTo(R.layout.card_preference_layout); } - - @Test - public void setCardBackgroundColor_shouldUseCorrectColor() { - final @ColorInt int testColor = 0xABCDEF; - - mCardPreference.setCardBackgroundColor(testColor); - mCardPreference.onBindViewHolder(mPreferenceViewHolder); - - verify(mCardView).setCardBackgroundColor(testColor); - } }