Fix wallpaper preview flash of WallpaperSectionController
Set placeholder color for the preview ImageView.
Videos:
- Before: https://drive.google.com/file/d/1ze3XubOete6wu83TKVTH0-rZ3a7h_VAI/view?usp=sharing&resourcekey=0-GsOP6zFBIoqdYlbWGhvb-Q
- After: https://drive.google.com/file/d/1Gj7qaOSkp5SL-cmXJAKWexnpzRSh8ls0/view?usp=sharing&resourcekey=0-TIVXlvLjzBXtPam39bSqXw
Bug: 199800990
Test: Manual
Change-Id: I277ea22825bcbcca14aa6c9d8d233381ea8053bd
diff --git a/src/com/android/wallpaper/model/WallpaperSectionController.java b/src/com/android/wallpaper/model/WallpaperSectionController.java
index f8bd2f3..0dc4f95 100644
--- a/src/com/android/wallpaper/model/WallpaperSectionController.java
+++ b/src/com/android/wallpaper/model/WallpaperSectionController.java
@@ -63,6 +63,9 @@
import com.android.wallpaper.util.WallpaperSurfaceCallback;
import com.android.wallpaper.widget.LockScreenPreviewer;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.Future;
+
/** The class to control the wallpaper section view. */
public class WallpaperSectionController implements
CustomizationSectionController<WallpaperSectionView>,
@@ -162,8 +165,12 @@
mWorkspaceSurfaceCallback = new WorkspaceSurfaceHolderCallback(
mWorkspaceSurface, mAppContext);
mHomeWallpaperSurface = mHomePreviewCard.findViewById(R.id.wallpaper_surface);
+
+ Future<Integer> placeholderColor = CompletableFuture.completedFuture(
+ ResourceUtils.getColorAttr(mActivity, android.R.attr.colorSecondary));
+
mHomeWallpaperSurfaceCallback = new WallpaperSurfaceCallback(mActivity, mHomePreviewCard,
- mHomeWallpaperSurface, () -> {
+ mHomeWallpaperSurface, placeholderColor, () -> {
if (mHomePreviewWallpaperInfo != null) {
maybeLoadThumbnail(mHomePreviewWallpaperInfo, mHomeWallpaperSurfaceCallback);
}
@@ -177,7 +184,7 @@
mLockscreenPreviewCard.findViewById(R.id.workspace_surface).setVisibility(View.GONE);
mLockWallpaperSurface = mLockscreenPreviewCard.findViewById(R.id.wallpaper_surface);
mLockWallpaperSurfaceCallback = new WallpaperSurfaceCallback(mActivity,
- mLockscreenPreviewCard, mLockWallpaperSurface, () -> {
+ mLockscreenPreviewCard, mLockWallpaperSurface, placeholderColor, () -> {
if (mLockPreviewWallpaperInfo != null) {
maybeLoadThumbnail(mLockPreviewWallpaperInfo, mLockWallpaperSurfaceCallback);
}