diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java index 5a3d3f9c6f3e5..ee9000fc97231 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java @@ -676,12 +676,19 @@ public class ScreenshotController { mScrollCaptureController.run(response); future.addListener(() -> { ScrollCaptureController.LongScreenshot longScreenshot; + try { longScreenshot = future.get(); } catch (CancellationException | InterruptedException | ExecutionException e) { Log.e(TAG, "Exception", e); + mScreenshotView.restoreNonScrollingUi(); + return; + } + + if (longScreenshot.getHeight() == 0) { + mScreenshotView.restoreNonScrollingUi(); return; } diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java index dc736374cd592..05e1bc082c51e 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java @@ -881,6 +881,23 @@ public class ScreenshotView extends FrameLayout implements anim.start(); } + void restoreNonScrollingUi() { + mScrollChip.setVisibility(View.GONE); + mScrollablePreview.setVisibility(View.GONE); + mScrollingScrim.setVisibility(View.GONE); + + if (mAccessibilityManager.isEnabled()) { + mDismissButton.setVisibility(View.VISIBLE); + } + mActionsContainer.setVisibility(View.VISIBLE); + mBackgroundProtection.setVisibility(View.VISIBLE); + mActionsContainerBackground.setVisibility(View.VISIBLE); + mScreenshotPreviewBorder.setVisibility(View.VISIBLE); + mScreenshotPreview.setVisibility(View.VISIBLE); + // reset the timeout + mCallbacks.onUserInteraction(); + } + boolean isDismissing() { return (mDismissAnimation != null && mDismissAnimation.isRunning()); }