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.

This commit is contained in:
Romain Guy
2009-06-02 21:56:27 -07:00
parent 97c2fdfc2e
commit 9af0b4f7be
2 changed files with 124 additions and 16 deletions

View File

@@ -1145,6 +1145,17 @@
visibility="public"
>
</field>
<field name="WRITE_EXTERNAL_STORAGE"
type="java.lang.String"
transient="false"
volatile="false"
value="&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot;"
static="true"
final="true"
deprecated="not deprecated"
visibility="public"
>
</field>
<field name="WRITE_GSERVICES"
type="java.lang.String"
transient="false"
@@ -1167,17 +1178,6 @@
visibility="public"
>
</field>
<field name="WRITE_EXTERNAL_STORAGE"
type="java.lang.String"
transient="false"
volatile="false"
value="&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot;"
static="true"
final="true"
deprecated="not deprecated"
visibility="public"
>
</field>
<field name="WRITE_SECURE_SETTINGS"
type="java.lang.String"
transient="false"
@@ -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"

View File

@@ -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);