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

Commit b2b1a0b3 authored by Samuel Fufa's avatar Samuel Fufa
Browse files

Remove swipe support on WorkModeSwitch

Bug: 153063698
Test: Manual
Change-Id: I0c59617772e1cedff364fd18413dcaec8031cd06
parent 8f40d00a
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import android.os.Process;
import android.os.UserHandle;
import android.os.UserManager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.ViewConfiguration;
import android.widget.Switch;

import com.android.launcher3.Insettable;
@@ -46,16 +48,28 @@ public class WorkModeSwitch extends Switch implements Insettable {

    private Rect mInsets = new Rect();

    private final float[] mTouch = new float[2];
    private int mTouchSlop;

    public WorkModeSwitch(Context context) {
        super(context);
        init();
    }

    public WorkModeSwitch(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();

    }

    public WorkModeSwitch(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        ViewConfiguration viewConfiguration = ViewConfiguration.get(getContext());
        mTouchSlop = viewConfiguration.getScaledTouchSlop();
    }

    @Override
@@ -84,6 +98,25 @@ public class WorkModeSwitch extends Switch implements Insettable {
        setEnabled(true);
    }


    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) {
            mTouch[0] = ev.getX();
            mTouch[1] = ev.getY();
        } else if (ev.getActionMasked() == MotionEvent.ACTION_MOVE) {
            if (Math.abs(mTouch[0] - ev.getX()) > mTouchSlop
                    || Math.abs(mTouch[1] - ev.getY()) > mTouchSlop) {
                int action = ev.getAction();
                ev.setAction(MotionEvent.ACTION_CANCEL);
                super.onTouchEvent(ev);
                ev.setAction(action);
                return false;
            }
        }
        return super.onTouchEvent(ev);
    }

    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
        super.onLayout(changed, l, t, r, b);