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

Commit 4cba4d18 authored by Riley Jones's avatar Riley Jones
Browse files

Renaming DismissAnimationController to DragToInteractAnimationController

Test: NONE
Flag: NONE
Bug: 297583708
Change-Id: Ic5e4bfe89773bc7d8cd2119162c7ede1e1eea502
parent e4d0a065
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