Merge "Restore non-scrolling UI on long screenshots crash" into sc-dev

This commit is contained in:
Miranda Kephart
2021-07-01 20:07:19 +00:00
committed by Android (Google) Code Review
2 changed files with 24 additions and 0 deletions

View File

@@ -676,12 +676,19 @@ public class ScreenshotController {
mScrollCaptureController.run(response); mScrollCaptureController.run(response);
future.addListener(() -> { future.addListener(() -> {
ScrollCaptureController.LongScreenshot longScreenshot; ScrollCaptureController.LongScreenshot longScreenshot;
try { try {
longScreenshot = future.get(); longScreenshot = future.get();
} catch (CancellationException } catch (CancellationException
| InterruptedException | InterruptedException
| ExecutionException e) { | ExecutionException e) {
Log.e(TAG, "Exception", e); Log.e(TAG, "Exception", e);
mScreenshotView.restoreNonScrollingUi();
return;
}
if (longScreenshot.getHeight() == 0) {
mScreenshotView.restoreNonScrollingUi();
return; return;
} }

View File

@@ -881,6 +881,23 @@ public class ScreenshotView extends FrameLayout implements
anim.start(); 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() { boolean isDismissing() {
return (mDismissAnimation != null && mDismissAnimation.isRunning()); return (mDismissAnimation != null && mDismissAnimation.isRunning());
} }