Change recognition matchin in Home to immediate mode.
Instead of waiting for Xms after a finger up event to start the recognition process, do it right away on a finger up event. This provides immediate feedback.
This commit is contained in:
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
android:drawablePadding="12dip"
|
android:drawablePadding="12dip"
|
||||||
android:paddingLeft="6dip"
|
android:paddingLeft="6dip"
|
||||||
android:paddingRight="2dip"
|
android:paddingRight="6dip"
|
||||||
|
|
||||||
android:ellipsize="marquee"
|
android:ellipsize="marquee"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
|||||||
@@ -105,6 +105,8 @@ public final class Launcher extends Activity implements View.OnClickListener, On
|
|||||||
private static final boolean DEBUG_USER_INTERFACE = false;
|
private static final boolean DEBUG_USER_INTERFACE = false;
|
||||||
private static final boolean DEBUG_GESTURES = false;
|
private static final boolean DEBUG_GESTURES = false;
|
||||||
|
|
||||||
|
private static final boolean CONFIG_GESTURES_IMMEDIATE_MODE = true;
|
||||||
|
|
||||||
private static final int WALLPAPER_SCREENS_SPAN = 2;
|
private static final int WALLPAPER_SCREENS_SPAN = 2;
|
||||||
|
|
||||||
private static final int MENU_GROUP_ADD = 1;
|
private static final int MENU_GROUP_ADD = 1;
|
||||||
@@ -585,7 +587,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
|
|||||||
mGesturesProcessor = new GesturesProcessor();
|
mGesturesProcessor = new GesturesProcessor();
|
||||||
|
|
||||||
final GestureOverlayView overlay = mGesturesOverlay;
|
final GestureOverlayView overlay = mGesturesOverlay;
|
||||||
overlay.setFadeOffset(GesturesConstants.MATCH_DELAY);
|
|
||||||
overlay.addOnGestureListener(mGesturesProcessor);
|
overlay.addOnGestureListener(mGesturesProcessor);
|
||||||
overlay.getGesturePaint().setXfermode(new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY));
|
overlay.getGesturePaint().setXfermode(new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY));
|
||||||
}
|
}
|
||||||
@@ -2350,8 +2351,11 @@ public final class Launcher extends Activity implements View.OnClickListener, On
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onGestureStarted(GestureOverlayView overlay, MotionEvent event) {
|
public void onGestureStarted(GestureOverlayView overlay, MotionEvent event) {
|
||||||
overlay.removeCallbacks(mMatcher);
|
//noinspection PointlessBooleanExpression,ConstantConditions
|
||||||
resetGesturesNextPrompt();
|
if (!CONFIG_GESTURES_IMMEDIATE_MODE) {
|
||||||
|
overlay.removeCallbacks(mMatcher);
|
||||||
|
resetGesturesNextPrompt();
|
||||||
|
}
|
||||||
|
|
||||||
mGesturesAdd.setAlpha(128);
|
mGesturesAdd.setAlpha(128);
|
||||||
mGesturesAdd.setEnabled(false);
|
mGesturesAdd.setEnabled(false);
|
||||||
@@ -2364,13 +2368,22 @@ public final class Launcher extends Activity implements View.OnClickListener, On
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) {
|
public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) {
|
||||||
overlay.removeCallbacks(mMatcher);
|
if (CONFIG_GESTURES_IMMEDIATE_MODE) {
|
||||||
|
mMatcher.gesture = overlay.getGesture();
|
||||||
mMatcher.gesture = overlay.getGesture();
|
if (mMatcher.gesture.getLength() < GesturesConstants.LENGTH_THRESHOLD) {
|
||||||
if (mMatcher.gesture.getLength() < GesturesConstants.LENGTH_THRESHOLD) {
|
overlay.clear(false);
|
||||||
overlay.clear(false);
|
} else {
|
||||||
|
mMatcher.run();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
overlay.postDelayed(mMatcher, GesturesConstants.MATCH_DELAY);
|
overlay.removeCallbacks(mMatcher);
|
||||||
|
|
||||||
|
mMatcher.gesture = overlay.getGesture();
|
||||||
|
if (mMatcher.gesture.getLength() < GesturesConstants.LENGTH_THRESHOLD) {
|
||||||
|
overlay.clear(false);
|
||||||
|
} else {
|
||||||
|
overlay.postDelayed(mMatcher, GesturesConstants.MATCH_DELAY);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2407,12 +2420,20 @@ public final class Launcher extends Activity implements View.OnClickListener, On
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updatePrompt(ApplicationInfo info) {
|
private void updatePrompt(ApplicationInfo info) {
|
||||||
|
if (mGesturesAction.intent != null &&
|
||||||
|
info.intent.toURI().equals(mGesturesAction.intent.toURI()) &&
|
||||||
|
info.title.equals(((TextView) mGesturesPrompt.getCurrentView()).getText())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
setGesturesNextPrompt(info.icon, info.title);
|
setGesturesNextPrompt(info.icon, info.title);
|
||||||
mGesturesAction.intent = info.intent;
|
mGesturesAction.intent = info.intent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) {
|
public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) {
|
||||||
overlay.removeCallbacks(mMatcher);
|
//noinspection PointlessBooleanExpression,ConstantConditions
|
||||||
|
if (!CONFIG_GESTURES_IMMEDIATE_MODE) {
|
||||||
|
overlay.removeCallbacks(mMatcher);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void addGesture(String name, Gesture gesture) {
|
void addGesture(String name, Gesture gesture) {
|
||||||
|
|||||||
Reference in New Issue
Block a user