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

Commit 6670435c authored by Tony Wickham's avatar Tony Wickham Committed by Android (Google) Code Review
Browse files

Merge "Allow TouchControllers to override shouldDisableGestures" into ub-launcher3-qt-r1-dev

parents 11b55355 f33b6d43
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -166,4 +166,10 @@ public class StatusBarTouchController implements TouchController {
        mSysUiProxy = RecentsModel.INSTANCE.get(mLauncher).getSystemUiProxy();
        return mSysUiProxy != null;
    }

    @Override
    public boolean allowWhenGesturesDisabled() {
        // Always allow intercepting touches for this controller.
        return true;
    }
}
 No newline at end of file
+4 −0
Original line number Diff line number Diff line
@@ -32,5 +32,9 @@ public interface TouchController {
     */
    boolean onControllerInterceptTouchEvent(MotionEvent ev);

    default boolean allowWhenGesturesDisabled() {
        return false;
    }

    default void dump(String prefix, PrintWriter writer) { }
}
+5 −5
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import static android.view.MotionEvent.ACTION_DOWN;
import static android.view.MotionEvent.ACTION_UP;

import static com.android.launcher3.Utilities.SINGLE_FRAME_MS;
import static com.android.launcher3.Utilities.shouldDisableGestures;

import android.annotation.TargetApi;
import android.content.Context;
@@ -30,7 +29,6 @@ import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Build;
import android.util.AttributeSet;
import android.util.Log;
import android.util.Property;
import android.view.MotionEvent;
import android.view.View;
@@ -152,15 +150,17 @@ public abstract class BaseDragLayer<T extends Context & ActivityContext>
    }

    private TouchController findControllerToHandleTouch(MotionEvent ev) {
        if (shouldDisableGestures(ev)) return null;
        boolean gesturesEnabled = !Utilities.shouldDisableGestures(ev);

        AbstractFloatingView topView = AbstractFloatingView.getTopOpenView(mActivity);
        if (topView != null && topView.onControllerInterceptTouchEvent(ev)) {
        if (topView != null && (gesturesEnabled || topView.allowWhenGesturesDisabled())
                && topView.onControllerInterceptTouchEvent(ev)) {
            return topView;
        }

        for (TouchController controller : mControllers) {
            if (controller.onControllerInterceptTouchEvent(ev)) {
            if ((gesturesEnabled || controller.allowWhenGesturesDisabled())
                    && controller.onControllerInterceptTouchEvent(ev)) {
                return controller;
            }
        }