From 8465cc9d88d9511a2fe03185b6d2ac3051eddd56 Mon Sep 17 00:00:00 2001 From: Huahui Wu Date: Wed, 12 Jan 2011 10:17:19 -0800 Subject: [PATCH] b/3340946 Fix NPE caused by null gesture detector. Gmail use WebView without instantiating the gesture detector. The Gmail team replied that they don't need the pinch to zoom feature so we can safely skip multi-touch events for them. Change-Id: Id60a4d4583979ef5b420fff04c4ca097c0594024 --- core/java/android/webkit/WebView.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index e8283a6b8b981..02cc86fe48ba1 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -5520,8 +5520,9 @@ public class WebView extends AbsoluteLayout + "mPreventDefault = " + mPreventDefault + " mDeferTouchProcess = " + mDeferTouchProcess + " mTouchMode = " + mTouchMode); + } else { + mVelocityTracker.addMovement(ev); } - mVelocityTracker.addMovement(ev); if (mSelectingText && mSelectionStarted) { if (DebugFlags.WEB_VIEW) { Log.v(LOGTAG, "extend=" + contentX + "," + contentY); @@ -5760,8 +5761,9 @@ public class WebView extends AbsoluteLayout + mPreventDefault + " mDeferTouchProcess = " + mDeferTouchProcess); + } else { + mVelocityTracker.addMovement(ev); } - mVelocityTracker.addMovement(ev); // set to MOTIONLESS_IGNORE so that it won't keep // removing and sending message in // drawCoreAndCursorRing() @@ -5836,6 +5838,11 @@ public class WebView extends AbsoluteLayout final ScaleGestureDetector detector = mZoomManager.getMultiTouchGestureDetector(); + + // A few apps use WebView but don't instantiate gesture detector. + // We don't need to support multi touch for them. + if (detector == null) return false; + int action = ev.getAction(); float x = ev.getX(); float y = ev.getY();