Merge "Make screenshot dismiss to the side on timeout" into sc-qpr1-dev am: df2554e6b8 am: 1a1bfe148f
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15547004 Change-Id: I0a9cd231ad15897cbebbf62732b551dea7c026d6
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user