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

Commit f6779303 authored by Tony Wickham's avatar Tony Wickham Committed by Automerger Merge Worker
Browse files

Separate TaskView translationX into dismiss + offset translations am: 5662a653

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/13370324

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I60d9f219eed57dfab08d815ecf6ba834b546e4df
parents e40fbd65 5662a653
Loading
Loading
Loading
Loading
+8 −3
Original line number Original line Diff line number Diff line
@@ -73,7 +73,6 @@ import android.text.StaticLayout;
import android.text.TextPaint;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.util.AttributeSet;
import android.util.FloatProperty;
import android.util.FloatProperty;
import android.util.Property;
import android.util.SparseBooleanArray;
import android.util.SparseBooleanArray;
import android.view.HapticFeedbackConstants;
import android.view.HapticFeedbackConstants;
import android.view.KeyEvent;
import android.view.KeyEvent;
@@ -1488,7 +1487,9 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
                }
                }
                int scrollDiff = newScroll[i] - oldScroll[i] + offset;
                int scrollDiff = newScroll[i] - oldScroll[i] + offset;
                if (scrollDiff != 0) {
                if (scrollDiff != 0) {
                    Property translationProperty = mOrientationHandler.getPrimaryViewTranslate();
                    FloatProperty translationProperty = child instanceof TaskView
                            ? ((TaskView) child).getPrimaryFillDismissGapTranslationProperty()
                            : mOrientationHandler.getPrimaryViewTranslate();


                    ResourceProvider rp = DynamicResource.provider(mActivity);
                    ResourceProvider rp = DynamicResource.provider(mActivity);
                    SpringProperty sp = new SpringProperty(SpringProperty.FLAG_CAN_SPRING_ON_END)
                    SpringProperty sp = new SpringProperty(SpringProperty.FLAG_CAN_SPRING_ON_END)
@@ -1883,7 +1884,11 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
                            ? modalLeftOffsetSize
                            ? modalLeftOffsetSize
                            : modalRightOffsetSize;
                            : modalRightOffsetSize;
            float totalTranslation = translation + modalTranslation;
            float totalTranslation = translation + modalTranslation;
            mOrientationHandler.getPrimaryViewTranslate().set(getChildAt(i),
            View child = getChildAt(i);
            FloatProperty translationProperty = child instanceof TaskView
                    ? ((TaskView) child).getPrimaryTaskOffsetTranslationProperty()
                    : mOrientationHandler.getPrimaryViewTranslate();
            translationProperty.set(child,
                    totalTranslation * mOrientationHandler.getPrimaryTranslationDirectionFactor());
                    totalTranslation * mOrientationHandler.getPrimaryTranslationDirectionFactor());
        }
        }
        updateCurveProperties();
        updateCurveProperties();
+99 −0
Original line number Original line Diff line number Diff line
@@ -153,6 +153,58 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
                }
                }
            };
            };


    private static final FloatProperty<TaskView> FILL_DISMISS_GAP_TRANSLATION_X =
            new FloatProperty<TaskView>("fillDismissGapTranslationX") {
                @Override
                public void setValue(TaskView taskView, float v) {
                    taskView.setFillDismissGapTranslationX(v);
                }

                @Override
                public Float get(TaskView taskView) {
                    return taskView.mFillDismissGapTranslationX;
                }
            };

    private static final FloatProperty<TaskView> FILL_DISMISS_GAP_TRANSLATION_Y =
            new FloatProperty<TaskView>("fillDismissGapTranslationY") {
                @Override
                public void setValue(TaskView taskView, float v) {
                    taskView.setFillDismissGapTranslationY(v);
                }

                @Override
                public Float get(TaskView taskView) {
                    return taskView.mFillDismissGapTranslationY;
                }
            };

    private static final FloatProperty<TaskView> TASK_OFFSET_TRANSLATION_X =
            new FloatProperty<TaskView>("taskOffsetTranslationX") {
                @Override
                public void setValue(TaskView taskView, float v) {
                    taskView.setTaskOffsetTranslationX(v);
                }

                @Override
                public Float get(TaskView taskView) {
                    return taskView.mTaskOffsetTranslationX;
                }
            };

    private static final FloatProperty<TaskView> TASK_OFFSET_TRANSLATION_Y =
            new FloatProperty<TaskView>("taskOffsetTranslationY") {
                @Override
                public void setValue(TaskView taskView, float v) {
                    taskView.setTaskOffsetTranslationY(v);
                }

                @Override
                public Float get(TaskView taskView) {
                    return taskView.mTaskOffsetTranslationY;
                }
            };

    private final OnAttachStateChangeListener mTaskMenuStateListener =
    private final OnAttachStateChangeListener mTaskMenuStateListener =
            new OnAttachStateChangeListener() {
            new OnAttachStateChangeListener() {
                @Override
                @Override
@@ -180,6 +232,13 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
    private final FullscreenDrawParams mCurrentFullscreenParams;
    private final FullscreenDrawParams mCurrentFullscreenParams;
    private final BaseDraggingActivity mActivity;
    private final BaseDraggingActivity mActivity;


    // Various causes of changing primary translation, which we aggregate to setTranslationX/Y().
    // TODO: We should do this for secondary translation properties as well.
    private float mFillDismissGapTranslationX;
    private float mFillDismissGapTranslationY;
    private float mTaskOffsetTranslationX;
    private float mTaskOffsetTranslationY;

    private ObjectAnimator mIconAndDimAnimator;
    private ObjectAnimator mIconAndDimAnimator;
    private float mIconScaleAnimStartProgress = 0;
    private float mIconScaleAnimStartProgress = 0;
    private float mFocusTransitionProgress = 1;
    private float mFocusTransitionProgress = 1;
@@ -619,6 +678,8 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {


    protected void resetViewTransforms() {
    protected void resetViewTransforms() {
        setCurveScale(1);
        setCurveScale(1);
        mFillDismissGapTranslationX = mTaskOffsetTranslationX = 0f;
        mFillDismissGapTranslationY = mTaskOffsetTranslationY = 0f;
        setTranslationX(0f);
        setTranslationX(0f);
        setTranslationY(0f);
        setTranslationY(0f);
        setTranslationZ(0);
        setTranslationZ(0);
@@ -835,6 +896,44 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
        return mCurveScale;
        return mCurveScale;
    }
    }


    private void setFillDismissGapTranslationX(float x) {
        mFillDismissGapTranslationX = x;
        applyTranslationX();
    }

    private void setFillDismissGapTranslationY(float y) {
        mFillDismissGapTranslationY = y;
        applyTranslationY();
    }

    private void setTaskOffsetTranslationX(float x) {
        mTaskOffsetTranslationX = x;
        applyTranslationX();
    }

    private void setTaskOffsetTranslationY(float y) {
        mTaskOffsetTranslationY = y;
        applyTranslationY();
    }

    private void applyTranslationX() {
        setTranslationX(mFillDismissGapTranslationX + mTaskOffsetTranslationX);
    }

    private void applyTranslationY() {
        setTranslationY(mFillDismissGapTranslationY + mTaskOffsetTranslationY);
    }

    public FloatProperty<TaskView> getPrimaryFillDismissGapTranslationProperty() {
        return getPagedOrientationHandler().getPrimaryValue(
                FILL_DISMISS_GAP_TRANSLATION_X, FILL_DISMISS_GAP_TRANSLATION_Y);
    }

    public FloatProperty<TaskView> getPrimaryTaskOffsetTranslationProperty() {
        return getPagedOrientationHandler().getPrimaryValue(
                TASK_OFFSET_TRANSLATION_X, TASK_OFFSET_TRANSLATION_Y);
    }

    @Override
    @Override
    public boolean hasOverlappingRendering() {
    public boolean hasOverlappingRendering() {
        // TODO: Clip-out the icon region from the thumbnail, since they are overlapping.
        // TODO: Clip-out the icon region from the thumbnail, since they are overlapping.
+2 −2
Original line number Original line Diff line number Diff line
@@ -42,12 +42,12 @@ import com.android.launcher3.util.OverScroller;
public class LandscapePagedViewHandler implements PagedOrientationHandler {
public class LandscapePagedViewHandler implements PagedOrientationHandler {


    @Override
    @Override
    public int getPrimaryValue(int x, int y) {
    public <T> T getPrimaryValue(T x, T y) {
        return y;
        return y;
    }
    }


    @Override
    @Override
    public int getSecondaryValue(int x, int y) {
    public <T> T getSecondaryValue(T x, T y) {
        return x;
        return x;
    }
    }


+2 −2
Original line number Original line Diff line number Diff line
@@ -83,8 +83,8 @@ public interface PagedOrientationHandler {
    boolean getRecentsRtlSetting(Resources resources);
    boolean getRecentsRtlSetting(Resources resources);
    float getDegreesRotated();
    float getDegreesRotated();
    int getRotation();
    int getRotation();
    int getPrimaryValue(int x, int y);
    <T> T getPrimaryValue(T x, T y);
    int getSecondaryValue(int x, int y);
    <T> T getSecondaryValue(T x, T y);
    void delegateScrollTo(PagedView pagedView, int secondaryScroll, int primaryScroll);
    void delegateScrollTo(PagedView pagedView, int secondaryScroll, int primaryScroll);
    /** Uses {@params pagedView}.getScroll[X|Y]() method for the secondary amount*/
    /** Uses {@params pagedView}.getScroll[X|Y]() method for the secondary amount*/
    void delegateScrollTo(PagedView pagedView, int primaryScroll);
    void delegateScrollTo(PagedView pagedView, int primaryScroll);
+2 −2
Original line number Original line Diff line number Diff line
@@ -40,12 +40,12 @@ import com.android.launcher3.util.OverScroller;
public class PortraitPagedViewHandler implements PagedOrientationHandler {
public class PortraitPagedViewHandler implements PagedOrientationHandler {


    @Override
    @Override
    public int getPrimaryValue(int x, int y) {
    public <T> T getPrimaryValue(T x, T y) {
        return x;
        return x;
    }
    }


    @Override
    @Override
    public int getSecondaryValue(int x, int y) {
    public <T> T getSecondaryValue(T x, T y) {
        return y;
        return y;
    }
    }