summaryrefslogtreecommitdiffstats
path: root/core/java/android/service/wallpaper
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2011-11-30 19:23:22 -0800
committerJeff Brown <jeffbrown@google.com>2011-12-01 14:13:48 -0800
commit4952dfd16a0f839559ffa78f5016394caf85294f (patch)
treed79061d9e6ceb2671241a059fe6be9522c8bbb10 /core/java/android/service/wallpaper
parent95db2b20d7bc0aaf00b1d4418124f5cf0a755d74 (diff)
downloadframeworks_base-4952dfd16a0f839559ffa78f5016394caf85294f.zip
frameworks_base-4952dfd16a0f839559ffa78f5016394caf85294f.tar.gz
frameworks_base-4952dfd16a0f839559ffa78f5016394caf85294f.tar.bz2
Ensure input events are processed in-order in the application.
As it turns out, it used to be possible for there to be multiple input events simultaneously in flight in an application. Although it worked, it made it hard to reason about what was going on. The problem was somewhat exacerbated by the introduction of a queue of "InputEventMessage" objects as part of an earlier latency optimization. This change restores order from chaos and greatly simplifies the invariants related to input event dispatch within the application. Change-Id: I6de5fe61c1fe2ac3dd33edf770d949044df8a019
Diffstat (limited to 'core/java/android/service/wallpaper')
-rw-r--r--core/java/android/service/wallpaper/WallpaperService.java12
1 files changed, 6 insertions, 6 deletions
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java
index 18167b6..133549b 100644
--- a/core/java/android/service/wallpaper/WallpaperService.java
+++ b/core/java/android/service/wallpaper/WallpaperService.java
@@ -18,7 +18,6 @@ package android.service.wallpaper;
import com.android.internal.os.HandlerCaller;
import com.android.internal.view.BaseIWindow;
-import com.android.internal.view.BaseInputHandler;
import com.android.internal.view.BaseSurfaceHolder;
import android.annotation.SdkConstant;
@@ -45,6 +44,7 @@ import android.view.Gravity;
import android.view.IWindowSession;
import android.view.InputChannel;
import android.view.InputDevice;
+import android.view.InputEvent;
import android.view.InputHandler;
import android.view.InputQueue;
import android.view.MotionEvent;
@@ -229,15 +229,15 @@ public abstract class WallpaperService extends Service {
};
- final InputHandler mInputHandler = new BaseInputHandler() {
+ final InputHandler mInputHandler = new InputHandler() {
@Override
- public void handleMotion(MotionEvent event,
+ public void handleInputEvent(InputEvent event,
InputQueue.FinishedCallback finishedCallback) {
boolean handled = false;
try {
- int source = event.getSource();
- if ((source & InputDevice.SOURCE_CLASS_POINTER) != 0) {
- dispatchPointer(event);
+ if (event instanceof MotionEvent
+ && (event.getSource() & InputDevice.SOURCE_CLASS_POINTER) != 0) {
+ dispatchPointer((MotionEvent)event);
handled = true;
}
} finally {