Use PreloadWallpapersLayoutListener again
During refactor, we lost the usage of
PreloadWallpapersLayoutListener which meant we were not
caching wallpaper previews, causing flicker.
Fixes: 133431281
Change-Id: I85bb0a855069f3f2d265d9dba32c43fa28687595
diff --git a/src/com/android/customization/picker/theme/ThemeFragment.java b/src/com/android/customization/picker/theme/ThemeFragment.java
index f0e0cd3..4494347 100644
--- a/src/com/android/customization/picker/theme/ThemeFragment.java
+++ b/src/com/android/customization/picker/theme/ThemeFragment.java
@@ -328,12 +328,15 @@
? res.getDrawable(R.drawable.theme_cover_scrim_custom, activity.getTheme())
: res.getDrawable(R.drawable.theme_cover_scrim, activity.getTheme());
+ WallpaperPreviewLayoutListener wallpaperListener = new WallpaperPreviewLayoutListener(
+ theme, previewInfo, coverScrim);
+
addPage(new ThemeCoverPage(activity, theme.getTitle(),
previewInfo.resolveAccentColor(res), previewInfo.icons,
previewInfo.headlineFontFamily, previewInfo.bottomSheeetCornerRadius,
previewInfo.shapeDrawable, previewInfo.shapeAppIcons, editClickListener,
mColorButtonIds, mColorTileIds, mColorTileIconIds, mShapeIconIds,
- new WallpaperPreviewLayoutListener(theme, previewInfo, coverScrim)));
+ wallpaperListener, coverCardLayoutListener));
addPage(new ThemePreviewPage(activity, R.string.preview_name_font, R.drawable.ic_font,
R.layout.preview_card_font_content,
previewInfo.resolveAccentColor(res)) {
diff --git a/src/com/android/customization/picker/theme/ThemePreviewPage.java b/src/com/android/customization/picker/theme/ThemePreviewPage.java
index 4d01f9d..abecbd7 100644
--- a/src/com/android/customization/picker/theme/ThemePreviewPage.java
+++ b/src/com/android/customization/picker/theme/ThemePreviewPage.java
@@ -90,7 +90,7 @@
private final Resources mRes;
private String mTitle;
private OnClickListener mEditClickListener;
- private final OnLayoutChangeListener mListener;
+ private final OnLayoutChangeListener[] mListeners;
private final int mCornerRadius;
private final ColorStateList mTintList;
@@ -100,7 +100,7 @@
List<Drawable> shapeAppIcons,
OnClickListener editClickListener,
int[] colorButtonIds, int[] colorTileIds, int[][] colorTileIconIds,
- int[] shapeIconIds, OnLayoutChangeListener wallpaperListener) {
+ int[] shapeIconIds, OnLayoutChangeListener... wallpaperListeners) {
super(context, 0, 0, R.layout.preview_card_cover_content, accentColor);
mRes = context.getResources();
mTitle = title;
@@ -114,7 +114,7 @@
mColorTileIds = colorTileIds;
mColorTileIconIds = colorTileIconIds;
mShapeIconIds = shapeIconIds;
- mListener = wallpaperListener;
+ mListeners = wallpaperListeners;
// Color QS icons:
int controlGreyColor = mRes.getColor(R.color.control_grey, null);
mTintList = new ColorStateList(
@@ -136,8 +136,14 @@
if (card == null) {
return;
}
+ if (mListeners != null) {
+ for (OnLayoutChangeListener listener : mListeners) {
+ if (listener != null) {
+ card.addOnLayoutChangeListener(listener);
+ }
+ }
+ }
- card.addOnLayoutChangeListener(mListener);
if (forceRebind) {
card.requestLayout();
}