Merge "Make screenshot dismiss to the side on timeout" into sc-qpr1-dev am: df2554e6b8

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15547004

Change-Id: I518b21c7e66ef0cc154529b961296b0718289499
This commit is contained in:
Miranda Kephart
2021-08-27 18:41:56 +00:00
committed by Automerger Merge Worker

View File

@@ -118,8 +118,8 @@ public class ScreenshotView extends FrameLayout implements
private static final long SCREENSHOT_TO_CORNER_SCALE_DURATION_MS = 234; private static final long SCREENSHOT_TO_CORNER_SCALE_DURATION_MS = 234;
private static final long SCREENSHOT_ACTIONS_EXPANSION_DURATION_MS = 400; private static final long SCREENSHOT_ACTIONS_EXPANSION_DURATION_MS = 400;
private static final long SCREENSHOT_ACTIONS_ALPHA_DURATION_MS = 100; private static final long SCREENSHOT_ACTIONS_ALPHA_DURATION_MS = 100;
private static final long SCREENSHOT_DISMISS_Y_DURATION_MS = 350; private static final long SCREENSHOT_DISMISS_X_DURATION_MS = 350;
private static final long SCREENSHOT_DISMISS_ALPHA_DURATION_MS = 183; private static final long SCREENSHOT_DISMISS_ALPHA_DURATION_MS = 350;
private static final long SCREENSHOT_DISMISS_ALPHA_OFFSET_MS = 50; // delay before starting fade private static final long SCREENSHOT_DISMISS_ALPHA_OFFSET_MS = 50; // delay before starting fade
private static final float SCREENSHOT_ACTIONS_START_SCALE_X = .7f; private static final float SCREENSHOT_ACTIONS_START_SCALE_X = .7f;
private static final float ROUNDED_CORNER_RADIUS = .25f; private static final float ROUNDED_CORNER_RADIUS = .25f;
@@ -989,7 +989,6 @@ public class ScreenshotView extends FrameLayout implements
mScrollingScrim.setVisibility(View.GONE); mScrollingScrim.setVisibility(View.GONE);
mScrollablePreview.setVisibility(View.GONE); mScrollablePreview.setVisibility(View.GONE);
mScreenshotStatic.setTranslationX(0); mScreenshotStatic.setTranslationX(0);
mScreenshotPreview.setTranslationY(0);
mScreenshotPreview.setContentDescription( mScreenshotPreview.setContentDescription(
mContext.getResources().getString(R.string.screenshot_preview_description)); mContext.getResources().getString(R.string.screenshot_preview_description));
mScreenshotPreview.setOnClickListener(null); mScreenshotPreview.setOnClickListener(null);
@@ -1005,9 +1004,6 @@ public class ScreenshotView extends FrameLayout implements
mSmartChips.clear(); mSmartChips.clear();
mQuickShareChip = null; mQuickShareChip = null;
setAlpha(1); setAlpha(1);
mDismissButton.setTranslationY(0);
mActionsContainer.setTranslationY(0);
mActionsContainerBackground.setTranslationY(0);
mScreenshotSelectorView.stop(); mScreenshotSelectorView.stop();
} }
@@ -1035,22 +1031,19 @@ public class ScreenshotView extends FrameLayout implements
setAlpha(1 - animation.getAnimatedFraction()); setAlpha(1 - animation.getAnimatedFraction());
}); });
ValueAnimator yAnim = ValueAnimator.ofFloat(0, 1); ValueAnimator xAnim = ValueAnimator.ofFloat(0, 1);
yAnim.setInterpolator(mAccelerateInterpolator); xAnim.setInterpolator(mAccelerateInterpolator);
yAnim.setDuration(SCREENSHOT_DISMISS_Y_DURATION_MS); xAnim.setDuration(SCREENSHOT_DISMISS_X_DURATION_MS);
float screenshotStartY = mScreenshotPreview.getTranslationY(); float deltaX = mDirectionLTR
float dismissStartY = mDismissButton.getTranslationY(); ? -1 * (mScreenshotPreviewBorder.getX() + mScreenshotPreviewBorder.getWidth())
yAnim.addUpdateListener(animation -> { : (mDisplayMetrics.widthPixels - mScreenshotPreviewBorder.getX());
float yDelta = MathUtils.lerp(0, mDismissDeltaY, animation.getAnimatedFraction()); xAnim.addUpdateListener(animation -> {
mScreenshotPreview.setTranslationY(screenshotStartY + yDelta); float currXDelta = MathUtils.lerp(0, deltaX, animation.getAnimatedFraction());
mScreenshotPreviewBorder.setTranslationY(screenshotStartY + yDelta); mScreenshotStatic.setTranslationX(currXDelta);
mDismissButton.setTranslationY(dismissStartY + yDelta);
mActionsContainer.setTranslationY(yDelta);
mActionsContainerBackground.setTranslationY(yDelta);
}); });
AnimatorSet animSet = new AnimatorSet(); AnimatorSet animSet = new AnimatorSet();
animSet.play(yAnim).with(alphaAnim); animSet.play(xAnim).with(alphaAnim);
return animSet; return animSet;
} }