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

Commit df2554e6 authored by Miranda Kephart's avatar Miranda Kephart Committed by Android (Google) Code Review
Browse files

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

parents 7fd08a9f a49d7cbb
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;
    }