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

Commit 16cd06b8 authored by Riley Jones's avatar Riley Jones Committed by Android (Google) Code Review
Browse files

Merge "Renaming DismissAnimationController to DragToInteractAnimationController" into main

parents d0b3a77c 4cba4d18
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ import com.android.wm.shell.common.magnetictarget.MagnetizedObject;
 * Controls the interaction between {@link MagnetizedObject} and
 * {@link MagnetizedObject.MagneticTarget}.
 */
class DismissAnimationController {
class DragToInteractAnimationController {
    private static final boolean ENABLE_FLING_TO_DISMISS_MENU = false;
    private static final float COMPLETELY_OPAQUE = 1.0f;
    private static final float COMPLETELY_TRANSPARENT = 0.0f;
@@ -45,7 +45,7 @@ class DismissAnimationController {
    private float mMinDismissSize;
    private float mSizePercent;

    DismissAnimationController(DismissView dismissView, MenuView menuView) {
    DragToInteractAnimationController(DismissView dismissView, MenuView menuView) {
        mDismissView = dismissView;
        mDismissView.setPivotX(dismissView.getWidth() / 2.0f);
        mDismissView.setPivotY(dismissView.getHeight() / 2.0f);
@@ -127,7 +127,7 @@ class DismissAnimationController {
     * @param event that move the magnetized object which is also the menu list view.
     * @return true if the location of the motion events moves within the magnetic field of a
     * target, but false if didn't set
     * {@link DismissAnimationController#setMagnetListener(MagnetizedObject.MagnetListener)}.
     * {@link DragToInteractAnimationController#setMagnetListener(MagnetizedObject.MagnetListener)}.
     */
    boolean maybeConsumeMoveMotionEvent(MotionEvent event) {
        return mMagnetizedObject.maybeConsumeMotionEvent(event);
@@ -140,7 +140,7 @@ class DismissAnimationController {
     * @param event that move the magnetized object which is also the menu list view.
     * @return true if the location of the motion events moves within the magnetic field of a
     * target, but false if didn't set
     * {@link DismissAnimationController#setMagnetListener(MagnetizedObject.MagnetListener)}.
     * {@link DragToInteractAnimationController#setMagnetListener(MagnetizedObject.MagnetListener)}.
     */
    boolean maybeConsumeUpMotionEvent(MotionEvent event) {
        return mMagnetizedObject.maybeConsumeMotionEvent(event);
+2 −2
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ class MenuAnimationController {
    private final ValueAnimator mFadeOutAnimator;
    private final Handler mHandler;
    private boolean mIsFadeEffectEnabled;
    private DismissAnimationController.DismissCallback mDismissCallback;
    private DragToInteractAnimationController.DismissCallback mDismissCallback;
    private Runnable mSpringAnimationsEndAction;

    // Cache the animations state of {@link DynamicAnimation.TRANSLATION_X} and {@link
@@ -171,7 +171,7 @@ class MenuAnimationController {
    }

    void setDismissCallback(
            DismissAnimationController.DismissCallback dismissCallback) {
            DragToInteractAnimationController.DismissCallback dismissCallback) {
        mDismissCallback = dismissCallback;
    }

+11 −9
Original line number Diff line number Diff line
@@ -40,13 +40,13 @@ class MenuListViewTouchHandler implements RecyclerView.OnItemTouchListener {
    private final PointF mMenuTranslationDown = new PointF();
    private boolean mIsDragging = false;
    private float mTouchSlop;
    private final DismissAnimationController mDismissAnimationController;
    private final DragToInteractAnimationController mDragToInteractAnimationController;
    private Optional<Runnable> mOnActionDownEnd = Optional.empty();

    MenuListViewTouchHandler(MenuAnimationController menuAnimationController,
            DismissAnimationController dismissAnimationController) {
            DragToInteractAnimationController dragToInteractAnimationController) {
        mMenuAnimationController = menuAnimationController;
        mDismissAnimationController = dismissAnimationController;
        mDragToInteractAnimationController = dragToInteractAnimationController;
    }

    @Override
@@ -67,7 +67,7 @@ class MenuListViewTouchHandler implements RecyclerView.OnItemTouchListener {
                mMenuTranslationDown.set(menuView.getTranslationX(), menuView.getTranslationY());

                mMenuAnimationController.cancelAnimations();
                mDismissAnimationController.maybeConsumeDownMotionEvent(motionEvent);
                mDragToInteractAnimationController.maybeConsumeDownMotionEvent(motionEvent);

                mOnActionDownEnd.ifPresent(Runnable::run);
                break;
@@ -78,9 +78,10 @@ class MenuListViewTouchHandler implements RecyclerView.OnItemTouchListener {
                        mMenuAnimationController.onDraggingStart();
                    }

                    mDismissAnimationController.showDismissView(/* show= */ true);
                    mDragToInteractAnimationController.showDismissView(/* show= */ true);

                    if (!mDismissAnimationController.maybeConsumeMoveMotionEvent(motionEvent)) {
                    if (!mDragToInteractAnimationController.maybeConsumeMoveMotionEvent(
                            motionEvent)) {
                        mMenuAnimationController.moveToPositionX(mMenuTranslationDown.x + dx);
                        mMenuAnimationController.moveToPositionYIfNeeded(
                                mMenuTranslationDown.y + dy);
@@ -94,17 +95,18 @@ class MenuListViewTouchHandler implements RecyclerView.OnItemTouchListener {
                    mIsDragging = false;

                    if (mMenuAnimationController.maybeMoveToEdgeAndHide(endX)) {
                        mDismissAnimationController.showDismissView(/* show= */ false);
                        mDragToInteractAnimationController.showDismissView(/* show= */ false);
                        mMenuAnimationController.fadeOutIfEnabled();

                        return true;
                    }

                    if (!mDismissAnimationController.maybeConsumeUpMotionEvent(motionEvent)) {
                    if (!mDragToInteractAnimationController.maybeConsumeUpMotionEvent(
                            motionEvent)) {
                        mVelocityTracker.computeCurrentVelocity(VELOCITY_UNIT_SECONDS);
                        mMenuAnimationController.flingMenuThenSpringToEdge(endX,
                                mVelocityTracker.getXVelocity(), mVelocityTracker.getYVelocity());
                        mDismissAnimationController.showDismissView(/* show= */ false);
                        mDragToInteractAnimationController.showDismissView(/* show= */ false);
                    }

                    // Avoid triggering the listener of the item.
+9 −8
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ class MenuViewLayer extends FrameLayout implements
    private final Handler mHandler = new Handler(Looper.getMainLooper());
    private final IAccessibilityFloatingMenu mFloatingMenu;
    private final SecureSettings mSecureSettings;
    private final DismissAnimationController mDismissAnimationController;
    private final DragToInteractAnimationController mDragToInteractAnimationController;
    private final MenuViewModel mMenuViewModel;
    private final Observer<Boolean> mDockTooltipObserver =
            this::onDockTooltipVisibilityChanged;
@@ -188,29 +188,30 @@ class MenuViewLayer extends FrameLayout implements
        mMenuAnimationController.setSpringAnimationsEndAction(this::onSpringAnimationsEndAction);
        mDismissView = new DismissView(context);
        DismissViewUtils.setup(mDismissView);
        mDismissAnimationController = new DismissAnimationController(mDismissView, mMenuView);
        mDismissAnimationController.setMagnetListener(new MagnetizedObject.MagnetListener() {
        mDragToInteractAnimationController = new DragToInteractAnimationController(
                mDismissView, mMenuView);
        mDragToInteractAnimationController.setMagnetListener(new MagnetizedObject.MagnetListener() {
            @Override
            public void onStuckToTarget(@NonNull MagnetizedObject.MagneticTarget target) {
                mDismissAnimationController.animateDismissMenu(/* scaleUp= */ true);
                mDragToInteractAnimationController.animateDismissMenu(/* scaleUp= */ true);
            }

            @Override
            public void onUnstuckFromTarget(@NonNull MagnetizedObject.MagneticTarget target,
                    float velocityX, float velocityY, boolean wasFlungOut) {
                mDismissAnimationController.animateDismissMenu(/* scaleUp= */ false);
                mDragToInteractAnimationController.animateDismissMenu(/* scaleUp= */ false);
            }

            @Override
            public void onReleasedInTarget(@NonNull MagnetizedObject.MagneticTarget target) {
                hideMenuAndShowMessage();
                mDismissView.hide();
                mDismissAnimationController.animateDismissMenu(/* scaleUp= */ false);
                mDragToInteractAnimationController.animateDismissMenu(/* scaleUp= */ false);
            }
        });

        mMenuListViewTouchHandler = new MenuListViewTouchHandler(mMenuAnimationController,
                mDismissAnimationController);
                mDragToInteractAnimationController);
        mMenuView.addOnItemTouchListenerToList(mMenuListViewTouchHandler);
        mMenuView.setMoveToTuckedListener(this);

@@ -243,7 +244,7 @@ class MenuViewLayer extends FrameLayout implements
    @Override
    public void onConfigurationChanged(@NonNull Configuration newConfig) {
        mDismissView.updateResources();
        mDismissAnimationController.updateResources();
        mDragToInteractAnimationController.updateResources();
    }

    @Override
+7 −6
Original line number Diff line number Diff line
@@ -40,12 +40,12 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;

/** Tests for {@link DismissAnimationController}. */
/** Tests for {@link DragToInteractAnimationController}. */
@SmallTest
@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper
public class DismissAnimationControllerTest extends SysuiTestCase {
    private DismissAnimationController mDismissAnimationController;
public class DragToInteractAnimationControllerTest extends SysuiTestCase {
    private DragToInteractAnimationController mDragToInteractAnimationController;
    private DismissView mDismissView;

    @Rule
@@ -65,19 +65,20 @@ public class DismissAnimationControllerTest extends SysuiTestCase {
                stubMenuViewAppearance);
        mDismissView = spy(new DismissView(mContext));
        DismissViewUtils.setup(mDismissView);
        mDismissAnimationController = new DismissAnimationController(mDismissView, stubMenuView);
        mDragToInteractAnimationController = new DragToInteractAnimationController(
                mDismissView, stubMenuView);
    }

    @Test
    public void showDismissView_success() {
        mDismissAnimationController.showDismissView(true);
        mDragToInteractAnimationController.showDismissView(true);

        verify(mDismissView).show();
    }

    @Test
    public void hideDismissView_success() {
        mDismissAnimationController.showDismissView(false);
        mDragToInteractAnimationController.showDismissView(false);

        verify(mDismissView).hide();
    }
Loading