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

Commit 931d1084 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[Overview Actions] Resizes the select mode UI and adds animations." into ub-launcher3-master

parents 59431db5 c343cb86
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -713,11 +713,15 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
        int currentIndex = indexOfChild(taskView);
        TaskView previousTask = getTaskViewAt(currentIndex - 1);
        TaskView nextTask = getTaskViewAt(currentIndex + 1);
        float alpha = isTaskOverlayModal ? 0.0f : 1.0f;
        if (previousTask != null) {
            previousTask.setVisibility(isTaskOverlayModal ? View.INVISIBLE : View.VISIBLE);
            previousTask.animate().alpha(alpha)
                    .translationX(isTaskOverlayModal ? previousTask.getWidth() / 2 : 0);
        }
        if (nextTask != null) {
            nextTask.setVisibility(isTaskOverlayModal ? View.INVISIBLE : View.VISIBLE);
            nextTask.animate().alpha(alpha)
                    .translationX(isTaskOverlayModal ? -nextTask.getWidth() / 2 : 0);

        }
    }

+31 −3
Original line number Diff line number Diff line
@@ -167,6 +167,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
    private float mStableAlpha = 1;

    private boolean mShowScreenshot;
    private boolean mRunningModalAnimation = false;

    // The current background requests to load the task thumbnail and icon
    private TaskThumbnailCache.ThumbnailLoadRequest mThumbnailLoadRequest;
@@ -249,17 +250,40 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
    /** Updates UI based on whether the task is modal. */
    public void updateUiForModalTask() {
        boolean isOverlayModal = isTaskOverlayModal();
        mRunningModalAnimation = true;
        if (getRecentsView() != null) {
            getRecentsView().updateUiForModalTask(this, isOverlayModal);
        }
        // Hide footers when overlay is modal.

        // Hides footers and icon when overlay is modal.
        if (isOverlayModal) {
            for (FooterWrapper footer : mFooters) {
                if (footer != null) {
                    footer.animateHide();
                }
            }
            mIconView.animate().alpha(0.0f);
        } else {
            mIconView.animate().alpha(1.0f);
        }

        // Sets animations for modal UI. We will remove the margins to zoom in the snapshot.
        float topMargin =
                getResources().getDimension(R.dimen.task_thumbnail_top_margin_with_actions);
        float bottomMargin =
                getResources().getDimension(R.dimen.task_thumbnail_bottom_margin_with_actions);
        float newHeight = mSnapshotView.getHeight() + topMargin + bottomMargin;
        float scale = isOverlayModal ? newHeight / mSnapshotView.getHeight() : 1.0f;
        float centerDifference = (bottomMargin - topMargin) / 2;
        float translationY = isOverlayModal ? centerDifference : 0;
        this.animate().scaleX(scale).scaleY(scale).translationY(translationY)
                .withEndAction(new Runnable() {
                    @Override
                    public void run() {
                        setCurveScale(scale);
                        mRunningModalAnimation = false;
                    }
                });
    }

    public TaskMenuView getMenuView() {
@@ -567,11 +591,15 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {

    @Override
    public void onPageScroll(ScrollState scrollState) {
        // Don't do anything if it's modal.
        if (mRunningModalAnimation || isTaskOverlayModal()) {
            return;
        }

        float curveInterpolation =
                CURVE_INTERPOLATOR.getInterpolation(scrollState.linearInterpolation);
        float curveScaleForCurveInterpolation = getCurveScaleForCurveInterpolation(
                curveInterpolation);

        mSnapshotView.setDimAlpha(curveInterpolation * MAX_PAGE_SCRIM_ALPHA);
        setCurveScale(curveScaleForCurveInterpolation);

+2 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
<resources>

    <dimen name="task_thumbnail_top_margin">24dp</dimen>
    <dimen name="task_thumbnail_top_margin_with_actions">60dp</dimen>
    <dimen name="task_thumbnail_bottom_margin_with_actions">76dp</dimen>
    <dimen name="task_thumbnail_half_top_margin">12dp</dimen>
    <dimen name="task_thumbnail_icon_size">48dp</dimen>
    <!-- For screens without rounded corners -->
+3 −1
Original line number Diff line number Diff line
@@ -122,7 +122,9 @@ public class LayoutUtils {
            paddingHorz = res.getDimension(paddingResId);
        }

        float topIconMargin = res.getDimension(R.dimen.task_thumbnail_top_margin);
        float topIconMargin = overviewActionsEnabled
                ? res.getDimension(R.dimen.task_thumbnail_top_margin_with_actions)
                : res.getDimension(R.dimen.task_thumbnail_top_margin);
        float bottomMargin = thumbnailBottomMargin(context);

        float paddingVert = overviewActionsEnabled && removeShelfFromOverview(context)