Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 704e25ce authored by Miranda Kephart's avatar Miranda Kephart Committed by Automerger Merge Worker
Browse files

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

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

Change-Id: I5796974954fd2ed5f2dd175feaf1b427f20ffd45
parents 95ae7391 df2554e6
Loading
Loading
Loading
Loading
+12 −19
Original line number Diff line number Diff line
@@ -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_ACTIONS_EXPANSION_DURATION_MS = 400;
    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_ALPHA_DURATION_MS = 183;
    private static final long SCREENSHOT_DISMISS_X_DURATION_MS = 350;
    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 float SCREENSHOT_ACTIONS_START_SCALE_X = .7f;
    private static final float ROUNDED_CORNER_RADIUS = .25f;
@@ -989,7 +989,6 @@ public class ScreenshotView extends FrameLayout implements
        mScrollingScrim.setVisibility(View.GONE);
        mScrollablePreview.setVisibility(View.GONE);
        mScreenshotStatic.setTranslationX(0);
        mScreenshotPreview.setTranslationY(0);
        mScreenshotPreview.setContentDescription(
                mContext.getResources().getString(R.string.screenshot_preview_description));
        mScreenshotPreview.setOnClickListener(null);
@@ -1005,9 +1004,6 @@ public class ScreenshotView extends FrameLayout implements
        mSmartChips.clear();
        mQuickShareChip = null;
        setAlpha(1);
        mDismissButton.setTranslationY(0);
        mActionsContainer.setTranslationY(0);
        mActionsContainerBackground.setTranslationY(0);
        mScreenshotSelectorView.stop();
    }

@@ -1035,22 +1031,19 @@ public class ScreenshotView extends FrameLayout implements
            setAlpha(1 - animation.getAnimatedFraction());
        });

        ValueAnimator yAnim = ValueAnimator.ofFloat(0, 1);
        yAnim.setInterpolator(mAccelerateInterpolator);
        yAnim.setDuration(SCREENSHOT_DISMISS_Y_DURATION_MS);
        float screenshotStartY = mScreenshotPreview.getTranslationY();
        float dismissStartY = mDismissButton.getTranslationY();
        yAnim.addUpdateListener(animation -> {
            float yDelta = MathUtils.lerp(0, mDismissDeltaY, animation.getAnimatedFraction());
            mScreenshotPreview.setTranslationY(screenshotStartY + yDelta);
            mScreenshotPreviewBorder.setTranslationY(screenshotStartY + yDelta);
            mDismissButton.setTranslationY(dismissStartY + yDelta);
            mActionsContainer.setTranslationY(yDelta);
            mActionsContainerBackground.setTranslationY(yDelta);
        ValueAnimator xAnim = ValueAnimator.ofFloat(0, 1);
        xAnim.setInterpolator(mAccelerateInterpolator);
        xAnim.setDuration(SCREENSHOT_DISMISS_X_DURATION_MS);
        float deltaX = mDirectionLTR
                    ? -1 * (mScreenshotPreviewBorder.getX() + mScreenshotPreviewBorder.getWidth())
                    : (mDisplayMetrics.widthPixels - mScreenshotPreviewBorder.getX());
        xAnim.addUpdateListener(animation -> {
            float currXDelta = MathUtils.lerp(0, deltaX, animation.getAnimatedFraction());
            mScreenshotStatic.setTranslationX(currXDelta);
        });

        AnimatorSet animSet = new AnimatorSet();
        animSet.play(yAnim).with(alphaAnim);
        animSet.play(xAnim).with(alphaAnim);

        return animSet;
    }