Merge "Fix screnshot null during rotation" into tm-qpr-dev am: 4055b79288
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21808503 Change-Id: I25cfe360de01740801f498919d03f278f015dccc Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -247,11 +247,11 @@ public class SplitDecorManager extends WindowlessWindowManager {
|
||||
|
||||
/** Stops showing resizing hint. */
|
||||
public void onResized(SurfaceControl.Transaction t, Runnable animFinishedCallback) {
|
||||
if (mScreenshot != null) {
|
||||
if (mScreenshotAnimator != null && mScreenshotAnimator.isRunning()) {
|
||||
mScreenshotAnimator.cancel();
|
||||
}
|
||||
if (mScreenshotAnimator != null && mScreenshotAnimator.isRunning()) {
|
||||
mScreenshotAnimator.cancel();
|
||||
}
|
||||
|
||||
if (mScreenshot != null) {
|
||||
t.setPosition(mScreenshot, mOffsetX, mOffsetY);
|
||||
|
||||
final SurfaceControl.Transaction animT = new SurfaceControl.Transaction();
|
||||
@@ -321,6 +321,10 @@ public class SplitDecorManager extends WindowlessWindowManager {
|
||||
/** Screenshot host leash and attach on it if meet some conditions */
|
||||
public void screenshotIfNeeded(SurfaceControl.Transaction t) {
|
||||
if (!mShown && mIsResizing && !mOldBounds.equals(mResizingBounds)) {
|
||||
if (mScreenshotAnimator != null && mScreenshotAnimator.isRunning()) {
|
||||
mScreenshotAnimator.cancel();
|
||||
}
|
||||
|
||||
mTempRect.set(mOldBounds);
|
||||
mTempRect.offsetTo(0, 0);
|
||||
mScreenshot = ScreenshotUtils.takeScreenshot(t, mHostLeash, mTempRect,
|
||||
@@ -333,6 +337,10 @@ public class SplitDecorManager extends WindowlessWindowManager {
|
||||
if (screenshot == null || !screenshot.isValid()) return;
|
||||
|
||||
if (!mShown && mIsResizing && !mOldBounds.equals(mResizingBounds)) {
|
||||
if (mScreenshotAnimator != null && mScreenshotAnimator.isRunning()) {
|
||||
mScreenshotAnimator.cancel();
|
||||
}
|
||||
|
||||
mScreenshot = screenshot;
|
||||
t.reparent(screenshot, mHostLeash);
|
||||
t.setLayer(screenshot, Integer.MAX_VALUE - 1);
|
||||
|
||||
Reference in New Issue
Block a user