diff --git a/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java b/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java index 81dc98b646c..e89e79365f5 100644 --- a/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java +++ b/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java @@ -23,7 +23,6 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ArgbEvaluator; import android.animation.ValueAnimator; import android.content.Context; -import android.graphics.Color; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; @@ -114,7 +113,9 @@ public class HighlightablePreferenceGroupAdapter extends PreferenceGroupAdapter @VisibleForTesting void updateBackground(PreferenceViewHolder holder, int position) { View v = holder.itemView; - if (position == mHighlightPosition) { + if (position == mHighlightPosition + && (mHighlightKey != null + && TextUtils.equals(mHighlightKey, getItem(position).getKey()))) { // This position should be highlighted. If it's highlighted before - skip animation. addHighlightBackground(v, !mFadeInAnimated); } else if (Boolean.TRUE.equals(v.getTag(R.id.preference_highlighted))) { diff --git a/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java b/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java index bf6b95ebe55..23b7edcd107 100644 --- a/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java +++ b/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java @@ -19,6 +19,7 @@ package com.android.settings.widget; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; @@ -32,6 +33,7 @@ import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.View; +import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceViewHolder; @@ -65,14 +67,18 @@ public class HighlightablePreferenceGroupAdapterTest { private Context mContext; private HighlightablePreferenceGroupAdapter mAdapter; private PreferenceViewHolder mViewHolder; + private Preference mPreference; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; + mPreference = new Preference(mContext); + mPreference.setKey(TEST_KEY); when(mPreferenceCatetory.getContext()).thenReturn(mContext); mAdapter = spy(new HighlightablePreferenceGroupAdapter(mPreferenceCatetory, TEST_KEY, false /* highlighted*/)); + when(mAdapter.getItem(anyInt())).thenReturn(mPreference); mViewHolder = PreferenceViewHolder.createInstanceForTests( View.inflate(mContext, R.layout.app_preference_item, null)); }