summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Lin <giolin@google.com>2023-03-23 05:51:39 +0000
committerGeorge Lin <giolin@google.com>2023-03-23 20:07:50 +0000
commit15ef93ecba3fe4ef1dcfc727dffcfe44c5757a54 (patch)
tree8f35572e9aefe13b8025b2cb889c77308b87a63c
parenta455f4e3a5f1f2724a1b0b1f60069e2aeeabe26f (diff)
[WPP2] Hide preview bottom components when overlay tabs are shown
For deciding show/hide of the bottom components, we need to take care of 2 cases 1. When on color update, we need to set the QSB flag and re-render the surface 2. When show/hide the wallpaper control, we specifically send a message to show/hide the workspace bottom components Test: https://drive.google.com/file/d/1z1EG6KsLKFxAlS8GBLV16GoGvwI72IHc/view?usp=sharing&resourcekey=0-OGzB0RmiK5qvV2rwMYvUHQ Test: https://drive.google.com/file/d/1gK54Y5MuHTt2tAuFDxY7z8RIL22J5c9f/view?usp=sharing&resourcekey=0-jPPC1pl1VkCS_tib2-pVxA Test: https://drive.google.com/file/d/1ntUSgD7KbHPDGNpomQ5zE0D2fsYVeuNA/view?usp=sharing&resourcekey=0-TCuuvL4p022ATzKYuF-Q1A Test: https://drive.google.com/file/d/1yA1K52N-orajamnrxWD17Qg7bCclmq53/view?usp=sharing&resourcekey=0-6LHnZGM5JpFQISNJ6X7jEg Bug: 266618769 Change-Id: If8d5bf678d5c9ef23788b0a2702c46c549f8492e
-rw-r--r--src/com/android/wallpaper/model/WallpaperSectionController.java2
-rw-r--r--src/com/android/wallpaper/picker/WorkspaceSurfaceHolderCallback.java32
2 files changed, 29 insertions, 5 deletions
diff --git a/src/com/android/wallpaper/model/WallpaperSectionController.java b/src/com/android/wallpaper/model/WallpaperSectionController.java
index 4b28b59c..6bb2a152 100644
--- a/src/com/android/wallpaper/model/WallpaperSectionController.java
+++ b/src/com/android/wallpaper/model/WallpaperSectionController.java
@@ -260,7 +260,9 @@ public class WallpaperSectionController implements
parent.removeView(workspaceSurface);
if (callback != null) {
callback.resetLastSurface();
+ callback.setHideBottomRow(false);
callback.setWallpaperColors(colors);
+ callback.maybeRenderPreview();
}
parent.addView(workspaceSurface, viewIndex);
}
diff --git a/src/com/android/wallpaper/picker/WorkspaceSurfaceHolderCallback.java b/src/com/android/wallpaper/picker/WorkspaceSurfaceHolderCallback.java
index bb4c0d36..9c26cc3d 100644
--- a/src/com/android/wallpaper/picker/WorkspaceSurfaceHolderCallback.java
+++ b/src/com/android/wallpaper/picker/WorkspaceSurfaceHolderCallback.java
@@ -46,12 +46,15 @@ public class WorkspaceSurfaceHolderCallback implements SurfaceHolder.Callback {
private static final String TAG = "WsSurfaceHolderCallback";
private static final String KEY_WALLPAPER_COLORS = "wallpaper_colors";
+ public static final int MESSAGE_ID_UPDATE_PREVIEW = 1337;
+ public static final String KEY_HIDE_BOTTOM_ROW = "hide_bottom_row";
private final SurfaceView mWorkspaceSurface;
private final PreviewUtils mPreviewUtils;
private final boolean mShouldUseWallpaperColors;
private final AtomicBoolean mRequestPending = new AtomicBoolean(false);
private WallpaperColors mWallpaperColors;
+ private boolean mHideBottomRow;
private boolean mIsWallpaperColorsReady;
private Surface mLastSurface;
private Message mCallback;
@@ -126,27 +129,45 @@ public class WorkspaceSurfaceHolderCallback implements SurfaceHolder.Callback {
}
mWallpaperColors = colors;
mIsWallpaperColorsReady = true;
- maybeRenderPreview();
+ }
+
+ /**
+ * Set the current flag if we should hide the workspace bottom row.
+ */
+ public void setHideBottomRow(boolean hideBottomRow) {
+ mHideBottomRow = hideBottomRow;
+ }
+
+ /**
+ * Hides the components in the bottom row.
+ *
+ * @param hide True to hide and false to show.
+ */
+ public void hideBottomRow(boolean hide) {
+ Bundle data = new Bundle();
+ data.putBoolean(KEY_HIDE_BOTTOM_ROW, hide);
+ send(MESSAGE_ID_UPDATE_PREVIEW, data);
}
public void setListener(WorkspaceRenderListener listener) {
mListener = listener;
}
- private void maybeRenderPreview() {
+ /**
+ * Render the preview with the current selected {@link #mWallpaperColors} and
+ * {@link #mHideBottomRow}.
+ */
+ public void maybeRenderPreview() {
if ((mShouldUseWallpaperColors && !mIsWallpaperColorsReady) || mLastSurface == null) {
return;
}
-
mRequestPending.set(true);
requestPreview(mWorkspaceSurface, (result) -> {
mRequestPending.set(false);
if (result != null && mLastSurface != null) {
mWorkspaceSurface.setChildSurfacePackage(
SurfaceViewUtils.getSurfacePackage(result));
-
mCallback = SurfaceViewUtils.getCallback(result);
-
if (mNeedsToCleanUp) {
cleanUp();
} else if (mListener != null) {
@@ -216,6 +237,7 @@ public class WorkspaceSurfaceHolderCallback implements SurfaceHolder.Callback {
Bundle request = SurfaceViewUtils.createSurfaceViewRequest(workspaceSurface, mExtras);
if (mWallpaperColors != null) {
request.putParcelable(KEY_WALLPAPER_COLORS, mWallpaperColors);
+ request.putBoolean(KEY_HIDE_BOTTOM_ROW, mHideBottomRow);
}
mPreviewUtils.renderPreview(request, callback);
}