diff --git a/res/drawable/homepage_highlighted_item_background_v2.xml b/res/drawable/homepage_highlighted_item_background_v2.xml
deleted file mode 100644
index 7aa489527a0..00000000000
--- a/res/drawable/homepage_highlighted_item_background_v2.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
- -
-
-
-
-
-
-
\ No newline at end of file
diff --git a/res/drawable/homepage_selectable_item_background_v2.xml b/res/drawable/homepage_selectable_item_background_v2.xml
deleted file mode 100644
index d2f79ff9bf6..00000000000
--- a/res/drawable/homepage_selectable_item_background_v2.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
- -
-
-
-
-
-
-
diff --git a/src/com/android/settings/core/RoundCornerPreferenceAdapter.java b/src/com/android/settings/core/RoundCornerPreferenceAdapter.java
index e5f3763a641..dcafad6cf6f 100644
--- a/src/com/android/settings/core/RoundCornerPreferenceAdapter.java
+++ b/src/com/android/settings/core/RoundCornerPreferenceAdapter.java
@@ -20,6 +20,7 @@ import android.os.Handler;
import android.os.Looper;
import android.view.View;
+import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
@@ -27,6 +28,7 @@ import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceGroupAdapter;
import androidx.preference.PreferenceViewHolder;
+import com.android.settings.flags.Flags;
import com.android.settingslib.widget.theme.R;
import java.util.ArrayList;
@@ -68,14 +70,47 @@ public class RoundCornerPreferenceAdapter extends PreferenceGroupAdapter {
@Override
public void onBindViewHolder(@NonNull PreferenceViewHolder holder, int position) {
super.onBindViewHolder(holder, position);
- updateBackground(holder, position);
+ if (Flags.homepageRevamp()) {
+ updateBackground(holder, position);
+ }
+ }
+
+ protected @DrawableRes int getRoundCornerDrawableRes(int position, boolean isSelected) {
+ int CornerType = mRoundCornerMappingList.get(position);
+
+ if ((CornerType & ROUND_CORNER_CENTER) == 0) {
+ return 0;
+ }
+
+ if (((CornerType & ROUND_CORNER_TOP) != 0) && ((CornerType & ROUND_CORNER_BOTTOM) == 0)) {
+ // the first
+ return isSelected ? R.drawable.settingslib_round_background_top_selected
+ : R.drawable.settingslib_round_background_top;
+ } else if (((CornerType & ROUND_CORNER_BOTTOM) != 0)
+ && ((CornerType & ROUND_CORNER_TOP) == 0)) {
+ // the last
+ return isSelected ? R.drawable.settingslib_round_background_bottom_selected
+ : R.drawable.settingslib_round_background_bottom;
+ } else if (((CornerType & ROUND_CORNER_TOP) != 0)
+ && ((CornerType & ROUND_CORNER_BOTTOM) != 0)) {
+ // the only one preference
+ return isSelected ? R.drawable.settingslib_round_background_selected
+ : R.drawable.settingslib_round_background;
+ } else {
+ // in the center
+ return isSelected ? R.drawable.settingslib_round_background_center_selected
+ : R.drawable.settingslib_round_background_center;
+ }
}
@SuppressWarnings("WeakerAccess") /* synthetic access */
private void updatePreferences() {
- mRoundCornerMappingList = new ArrayList<>();
- mappingPreferenceGroup(mRoundCornerMappingList, mPreferenceGroup);
+ if (Flags.homepageRevamp()) {
+ mRoundCornerMappingList = new ArrayList<>();
+ mappingPreferenceGroup(mRoundCornerMappingList, mPreferenceGroup);
+ }
}
+
private void mappingPreferenceGroup(List visibleList, PreferenceGroup group) {
int groupSize = group.getPreferenceCount();
int firstVisible = 0;
@@ -125,27 +160,9 @@ public class RoundCornerPreferenceAdapter extends PreferenceGroupAdapter {
/** handle roundCorner background */
private void updateBackground(PreferenceViewHolder holder, int position) {
- int CornerType = mRoundCornerMappingList.get(position);
-
- if ((CornerType & ROUND_CORNER_CENTER) == 0) {
- return;
- }
+ @DrawableRes int backgroundRes = getRoundCornerDrawableRes(position, false /* isSelected*/);
View v = holder.itemView;
- if (((CornerType & ROUND_CORNER_TOP) != 0) && ((CornerType & ROUND_CORNER_BOTTOM) == 0)) {
- // the first
- v.setBackgroundResource(R.drawable.settingslib_round_background_top);
- } else if (((CornerType & ROUND_CORNER_BOTTOM) != 0)
- && ((CornerType & ROUND_CORNER_TOP) == 0)) {
- // the last
- v.setBackgroundResource(R.drawable.settingslib_round_background_bottom);
- } else if (((CornerType & ROUND_CORNER_TOP) != 0)
- && ((CornerType & ROUND_CORNER_BOTTOM) != 0)) {
- // the only one preference
- v.setBackgroundResource(R.drawable.settingslib_round_background);
- } else {
- // in the center
- v.setBackgroundResource(R.drawable.settingslib_round_background_center);
- }
+ v.setBackgroundResource(backgroundRes);
}
}
diff --git a/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java b/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java
index 4ba12056630..9ddec5cb0c5 100644
--- a/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java
+++ b/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java
@@ -25,35 +25,32 @@ import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
+import androidx.annotation.DrawableRes;
import androidx.annotation.VisibleForTesting;
import androidx.preference.PreferenceGroup;
-import androidx.preference.PreferenceGroupAdapter;
import androidx.preference.PreferenceViewHolder;
import androidx.recyclerview.widget.RecyclerView;
import androidx.window.embedding.ActivityEmbeddingController;
import com.android.settings.R;
import com.android.settings.Utils;
+import com.android.settings.core.RoundCornerPreferenceAdapter;
import com.android.settings.flags.Flags;
import com.android.settings.homepage.SettingsHomepageActivity;
/**
* Adapter for highlighting top level preferences
*/
-public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapter implements
+public class HighlightableTopLevelPreferenceAdapter extends RoundCornerPreferenceAdapter implements
SettingsHomepageActivity.HomepageLoadedListener {
private static final String TAG = "HighlightableTopLevelAdapter";
static final long DELAY_HIGHLIGHT_DURATION_MILLIS = 100L;
private static final int RES_NORMAL_BACKGROUND =
- Flags.homepageRevamp()
- ? R.drawable.homepage_selectable_item_background_v2
- : R.drawable.homepage_selectable_item_background;
+ R.drawable.homepage_selectable_item_background;
private static final int RES_HIGHLIGHTED_BACKGROUND =
- Flags.homepageRevamp()
- ? R.drawable.homepage_highlighted_item_background_v2
- : R.drawable.homepage_highlighted_item_background;
+ R.drawable.homepage_highlighted_item_background;
private final int mTitleColorNormal;
private final int mTitleColorHighlight;
@@ -101,7 +98,7 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt
@VisibleForTesting
void updateBackground(PreferenceViewHolder holder, int position) {
if (!isHighlightNeeded()) {
- removeHighlightBackground(holder);
+ removeHighlightBackground(holder, position);
return;
}
@@ -109,9 +106,9 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt
&& mHighlightKey != null
&& TextUtils.equals(mHighlightKey, getItem(position).getKey())) {
// This position should be highlighted.
- addHighlightBackground(holder);
+ addHighlightBackground(holder, position);
} else {
- removeHighlightBackground(holder);
+ removeHighlightBackground(holder, position);
}
}
@@ -226,31 +223,41 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt
// De-highlight the existing preference view holder at an early stage
final PreferenceViewHolder holder = mViewHolders.get(position);
if (holder != null) {
- removeHighlightBackground(holder);
+ removeHighlightBackground(holder, position);
}
notifyItemChanged(position);
}
}
- private void addHighlightBackground(PreferenceViewHolder holder) {
+ private void addHighlightBackground(PreferenceViewHolder holder, int position) {
final View v = holder.itemView;
- v.setBackgroundResource(RES_HIGHLIGHTED_BACKGROUND);
- ((TextView) v.findViewById(android.R.id.title)).setTextColor(mTitleColorHighlight);
- ((TextView) v.findViewById(android.R.id.summary)).setTextColor(mSummaryColorHighlight);
- final Drawable drawable = ((ImageView) v.findViewById(android.R.id.icon)).getDrawable();
- if (drawable != null) {
- drawable.setTint(mIconColorHighlight);
+ if (Flags.homepageRevamp()) {
+ @DrawableRes int bgRes = getRoundCornerDrawableRes(position, true /*isSelected*/);
+ v.setBackgroundResource(bgRes);
+ } else {
+ v.setBackgroundResource(RES_HIGHLIGHTED_BACKGROUND);
+ ((TextView) v.findViewById(android.R.id.title)).setTextColor(mTitleColorHighlight);
+ ((TextView) v.findViewById(android.R.id.summary)).setTextColor(mSummaryColorHighlight);
+ final Drawable drawable = ((ImageView) v.findViewById(android.R.id.icon)).getDrawable();
+ if (drawable != null) {
+ drawable.setTint(mIconColorHighlight);
+ }
}
}
- private void removeHighlightBackground(PreferenceViewHolder holder) {
+ private void removeHighlightBackground(PreferenceViewHolder holder, int position) {
final View v = holder.itemView;
- v.setBackgroundResource(RES_NORMAL_BACKGROUND);
- ((TextView) v.findViewById(android.R.id.title)).setTextColor(mTitleColorNormal);
- ((TextView) v.findViewById(android.R.id.summary)).setTextColor(mSummaryColorNormal);
- final Drawable drawable = ((ImageView) v.findViewById(android.R.id.icon)).getDrawable();
- if (drawable != null) {
- drawable.setTint(mIconColorNormal);
+ if (Flags.homepageRevamp()) {
+ @DrawableRes int bgRes = getRoundCornerDrawableRes(position, false /*isSelected*/);
+ v.setBackgroundResource(bgRes);
+ } else {
+ v.setBackgroundResource(RES_NORMAL_BACKGROUND);
+ ((TextView) v.findViewById(android.R.id.title)).setTextColor(mTitleColorNormal);
+ ((TextView) v.findViewById(android.R.id.summary)).setTextColor(mSummaryColorNormal);
+ final Drawable drawable = ((ImageView) v.findViewById(android.R.id.icon)).getDrawable();
+ if (drawable != null) {
+ drawable.setTint(mIconColorNormal);
+ }
}
}