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

Commit e7f9f3ee authored by Sunny Goyal's avatar Sunny Goyal Committed by Automerger Merge Worker
Browse files

Merge "Fixing touch events ignored in some cases" into sc-dev am: e0e64b48

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

Change-Id: Ia2e97076a790bcd3e6c5bcbae79231bd1815f64a
parents 2be25906 e0e64b48
Loading
Loading
Loading
Loading
+21 −4
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.quickstep.views;

import static com.android.launcher3.LauncherState.ALL_APPS;
import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.Utilities.EDGE_NAV_BAR;
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
import static com.android.launcher3.anim.Interpolators.LINEAR;
import static com.android.launcher3.anim.Interpolators.OVERSHOOT_1_7;
@@ -67,6 +68,8 @@ public class AllAppsEduView extends AbstractFloatingView {
    private int mWidthPx;
    private int mMaxHeightPx;

    private boolean mCanInterceptTouch;

    public AllAppsEduView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mCircle = (GradientDrawable) context.getDrawable(R.drawable.all_apps_edu_circle);
@@ -116,16 +119,27 @@ public class AllAppsEduView extends AbstractFloatingView {
        return true;
    }


    private boolean shouldInterceptTouch(MotionEvent ev) {
        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
            mCanInterceptTouch = (ev.getEdgeFlags() & EDGE_NAV_BAR) == 0;
        }
        return mCanInterceptTouch;
    }

    @Override
    public boolean onControllerTouchEvent(MotionEvent ev) {
        if (shouldInterceptTouch(ev)) {
            mTouchController.onControllerTouchEvent(ev);
        if (mAnimation != null) {
            updateAnimationOnTouchEvent(ev);
        }
        return super.onControllerTouchEvent(ev);
        return true;
    }

    private void updateAnimationOnTouchEvent(MotionEvent ev) {
        if (mAnimation == null) {
            return;
        }
        switch (ev.getActionMasked()) {
            case MotionEvent.ACTION_DOWN:
                mAnimation.pause();
@@ -144,7 +158,10 @@ public class AllAppsEduView extends AbstractFloatingView {

    @Override
    public boolean onControllerInterceptTouchEvent(MotionEvent ev) {
        if (shouldInterceptTouch(ev)) {
            mTouchController.onControllerInterceptTouchEvent(ev);
            updateAnimationOnTouchEvent(ev);
        }
        return true;
    }