From e4ad2ce1e268f28d59bffb3542c4ec6fc0b5ba91 Mon Sep 17 00:00:00 2001 From: Zak Cohen Date: Wed, 3 Jun 2020 11:51:08 -0700 Subject: [PATCH] Screenshots - move to new api that uses image bundle. Bug: 157380566 Bug: 156757117 Test: local Change-Id: I5d688abc87a89ae93e2e2f9a0e13410c511cc15e --- .../src/com/android/quickstep/ImageActionsApi.java | 7 ++++--- .../com/android/quickstep/TaskOverlayFactory.java | 2 +- .../src/com/android/quickstep/SystemUiProxy.java | 14 ++++++++++++++ .../android/quickstep/util/ImageActionUtils.java | 7 +++++-- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/ImageActionsApi.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/ImageActionsApi.java index fd17551892..e49c466e80 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/ImageActionsApi.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/ImageActionsApi.java @@ -33,6 +33,7 @@ import androidx.annotation.UiThread; import com.android.launcher3.BuildConfig; import com.android.quickstep.util.ImageActionUtils; +import com.android.systemui.shared.recents.model.Task; import java.util.function.Supplier; @@ -85,11 +86,11 @@ public class ImageActionsApi { * @param screenshotBounds the location of where the bitmap was laid out on the screen in * screen coordinates. * @param visibleInsets that are used to draw the screenshot within the bounds. - * @param taskId of the task that the screenshot was taken of. + * @param task of the task that the screenshot was taken of. */ public void saveScreenshot(Bitmap screenshot, Rect screenshotBounds, - Insets visibleInsets, int taskId) { + Insets visibleInsets, Task.TaskKey task) { ImageActionUtils.saveScreenshot(mSystemUiProxy, screenshot, screenshotBounds, visibleInsets, - taskId); + task); } } diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/TaskOverlayFactory.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/TaskOverlayFactory.java index 042c542d87..3cfff7e958 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/TaskOverlayFactory.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/TaskOverlayFactory.java @@ -126,7 +126,7 @@ public class TaskOverlayFactory implements ResourceBasedOverride { public void onScreenshot() { if (isAllowedByPolicy) { imageApi.saveScreenshot(mThumbnailView.getThumbnail(), - getTaskSnapshotBounds(), getTaskSnapshotInsets(), task.key.id); + getTaskSnapshotBounds(), getTaskSnapshotInsets(), task.key); } else { showBlockedByPolicyMessage(); } diff --git a/quickstep/src/com/android/quickstep/SystemUiProxy.java b/quickstep/src/com/android/quickstep/SystemUiProxy.java index 20d133c3c6..299e9e5af1 100644 --- a/quickstep/src/com/android/quickstep/SystemUiProxy.java +++ b/quickstep/src/com/android/quickstep/SystemUiProxy.java @@ -31,6 +31,7 @@ import android.view.MotionEvent; import com.android.launcher3.util.MainThreadInitializedObject; import com.android.systemui.shared.recents.IPinnedStackAnimationListener; import com.android.systemui.shared.recents.ISystemUiProxy; +import com.android.systemui.shared.recents.model.Task; /** * Holds the reference to SystemUI. @@ -344,4 +345,17 @@ public class SystemUiProxy implements ISystemUiProxy { } } } + + @Override + public void handleImageBundleAsScreenshot(Bundle screenImageBundle, Rect locationInScreen, + Insets visibleInsets, Task.TaskKey task) { + if (mSystemUiProxy != null) { + try { + mSystemUiProxy.handleImageBundleAsScreenshot(screenImageBundle, locationInScreen, + visibleInsets, task); + } catch (RemoteException e) { + Log.w(TAG, "Failed call handleImageBundleAsScreenshot"); + } + } + } } diff --git a/quickstep/src/com/android/quickstep/util/ImageActionUtils.java b/quickstep/src/com/android/quickstep/util/ImageActionUtils.java index f5fbf281ac..0b48a8bda7 100644 --- a/quickstep/src/com/android/quickstep/util/ImageActionUtils.java +++ b/quickstep/src/com/android/quickstep/util/ImageActionUtils.java @@ -39,6 +39,8 @@ import androidx.core.content.FileProvider; import com.android.launcher3.BuildConfig; import com.android.quickstep.SystemUiProxy; +import com.android.systemui.shared.recents.model.Task; +import com.android.systemui.shared.recents.utilities.BitmapUtil; import java.io.File; import java.io.FileOutputStream; @@ -59,8 +61,9 @@ public class ImageActionUtils { */ public static void saveScreenshot(SystemUiProxy systemUiProxy, Bitmap screenshot, Rect screenshotBounds, - Insets visibleInsets, int taskId) { - systemUiProxy.handleImageAsScreenshot(screenshot, screenshotBounds, visibleInsets, taskId); + Insets visibleInsets, Task.TaskKey task) { + systemUiProxy.handleImageBundleAsScreenshot(BitmapUtil.hardwareBitmapToBundle(screenshot), + screenshotBounds, visibleInsets, task); } /**