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

Commit 9af0b4f7 authored by Romain Guy's avatar Romain Guy
Browse files

Add new listener to GestureOverlayView. This listener fires whenever the...

Add new listener to GestureOverlayView. This listener fires whenever the overlay thinks the user is starting a new gesture. This allows Home to snap the workspace back to its original position during a gesture operation.
parent 97c2fdfc
Loading
Loading
Loading
Loading
+77 −6
Original line number Diff line number Diff line
@@ -1145,33 +1145,33 @@
 visibility="public"
>
</field>
<field name="WRITE_GSERVICES"
<field name="WRITE_EXTERNAL_STORAGE"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;android.permission.WRITE_GSERVICES&quot;"
 value="&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="WRITE_OWNER_DATA"
<field name="WRITE_GSERVICES"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;android.permission.WRITE_OWNER_DATA&quot;"
 value="&quot;android.permission.WRITE_GSERVICES&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="WRITE_EXTERNAL_STORAGE"
<field name="WRITE_OWNER_DATA"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot;"
 value="&quot;android.permission.WRITE_OWNER_DATA&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
@@ -46738,6 +46738,19 @@
<parameter name="listener" type="android.gesture.GestureOverlayView.OnGesturePerformedListener">
</parameter>
</method>
<method name="addOnGesturingListener"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="listener" type="android.gesture.GestureOverlayView.OnGesturingListener">
</parameter>
</method>
<method name="cancelClearAnimation"
 return="void"
 abstract="false"
@@ -46938,6 +46951,17 @@
 visibility="public"
>
</method>
<method name="removeAllOnGesturingListeners"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="removeOnGestureListener"
 return="void"
 abstract="false"
@@ -46964,6 +46988,19 @@
<parameter name="listener" type="android.gesture.GestureOverlayView.OnGesturePerformedListener">
</parameter>
</method>
<method name="removeOnGesturingListener"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="listener" type="android.gesture.GestureOverlayView.OnGesturingListener">
</parameter>
</method>
<method name="setEventsInterceptionEnabled"
 return="void"
 abstract="false"
@@ -47243,6 +47280,40 @@
</parameter>
</method>
</interface>
<interface name="GestureOverlayView.OnGesturingListener"
 abstract="true"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<method name="onGesturingEnded"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="overlay" type="android.gesture.GestureOverlayView">
</parameter>
</method>
<method name="onGesturingStarted"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="overlay" type="android.gesture.GestureOverlayView">
</parameter>
</method>
</interface>
<class name="GesturePoint"
 extends="java.lang.Object"
 abstract="false"
+42 −5
Original line number Diff line number Diff line
@@ -106,6 +106,9 @@ public class GestureOverlayView extends FrameLayout {
    // TODO: Make this a list of WeakReferences
    private final ArrayList<OnGesturePerformedListener> mOnGesturePerformedListeners =
            new ArrayList<OnGesturePerformedListener>();
    // TODO: Make this a list of WeakReferences
    private final ArrayList<OnGesturingListener> mOnGesturingListeners =
            new ArrayList<OnGesturingListener>();

    private boolean mHandleGestureActions;

@@ -319,6 +322,18 @@ public class GestureOverlayView extends FrameLayout {
        mHandleGestureActions = false;
    }

    public void addOnGesturingListener(OnGesturingListener listener) {
        mOnGesturingListeners.add(listener);
    }

    public void removeOnGesturingListener(OnGesturingListener listener) {
        mOnGesturingListeners.remove(listener);
    }

    public void removeAllOnGesturingListeners() {
        mOnGesturingListeners.clear();
    }

    public boolean isGesturing() {
        return mIsGesturing;
    }
@@ -401,7 +416,7 @@ public class GestureOverlayView extends FrameLayout {
                MotionEvent.ACTION_CANCEL, 0.0f, 0.0f, 0);

        final ArrayList<OnGestureListener> listeners = mOnGestureListeners;
        final int count = listeners.size();
        int count = listeners.size();
        for (int i = 0; i < count; i++) {
            listeners.get(i).onGestureCancelled(this, event);
        }
@@ -411,6 +426,12 @@ public class GestureOverlayView extends FrameLayout {
        clear(false);
        mIsGesturing = false;
        mStrokeBuffer.clear();

        final ArrayList<OnGesturingListener> otherListeners = mOnGesturingListeners;
        count = otherListeners.size();
        for (int i = 0; i < count; i++) {
            otherListeners.get(i).onGesturingEnded(this);
        }
    }

    @Override
@@ -577,6 +598,12 @@ public class GestureOverlayView extends FrameLayout {

                        mIsGesturing = true;
                        setCurrentColor(mCertainGestureColor);

                        final ArrayList<OnGesturingListener> listeners = mOnGesturingListeners;
                        int count = listeners.size();
                        for (int i = 0; i < count; i++) {
                            listeners.get(i).onGesturingStarted(this);
                        }
                    }
                }
            }
@@ -621,6 +648,12 @@ public class GestureOverlayView extends FrameLayout {

        mStrokeBuffer.clear();
        mIsGesturing = false;

        final ArrayList<OnGesturingListener> listeners = mOnGesturingListeners;
        int count = listeners.size();
        for (int i = 0; i < count; i++) {
            listeners.get(i).onGesturingEnded(this);
        }
    }

    private void cancelGesture(MotionEvent event) {
@@ -635,12 +668,10 @@ public class GestureOverlayView extends FrameLayout {
    }

    private void fireOnGesturePerformed() {
        final ArrayList<OnGesturePerformedListener> actionListeners =
                mOnGesturePerformedListeners;
        final ArrayList<OnGesturePerformedListener> actionListeners = mOnGesturePerformedListeners;
        final int count = actionListeners.size();
        for (int i = 0; i < count; i++) {
            actionListeners.get(i).onGesturePerformed(GestureOverlayView.this,
                    mCurrentGesture);
            actionListeners.get(i).onGesturePerformed(GestureOverlayView.this, mCurrentGesture);
        }
    }

@@ -683,6 +714,12 @@ public class GestureOverlayView extends FrameLayout {
        }
    }

    public static interface OnGesturingListener {
        void onGesturingStarted(GestureOverlayView overlay);

        void onGesturingEnded(GestureOverlayView overlay);
    }

    public static interface OnGestureListener {
        void onGestureStarted(GestureOverlayView overlay, MotionEvent event);