Merge "Whoops, forgot the HONEYCOMB_MR1 constant. :(" into honeycomb-mr1
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 01c73a8..96623b0 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -1672,6 +1672,7 @@
mDrawHistory = true;
mHistoryPicture = p;
+
mScrollX = sx;
mScrollY = sy;
mZoomManager.restoreZoomState(b);
@@ -5473,7 +5474,6 @@
private boolean handleTouchEventCommon(MotionEvent ev, int action, int x, int y) {
long eventTime = ev.getEventTime();
-
// Due to the touch screen edge effect, a touch closer to the edge
// always snapped to the edge. As getViewWidth() can be different from
// getWidth() due to the scrollbar, adjusting the point to match
@@ -5577,6 +5577,8 @@
ted.mIds[0] = ev.getPointerId(0);
ted.mPoints = new Point[1];
ted.mPoints[0] = new Point(contentX, contentY);
+ ted.mPointsInView = new Point[1];
+ ted.mPointsInView[0] = new Point(x, y);
ted.mMetaState = ev.getMetaState();
ted.mReprocess = mDeferTouchProcess;
ted.mNativeLayer = nativeScrollableLayer(
@@ -5624,6 +5626,8 @@
ted.mIds[0] = ev.getPointerId(0);
ted.mPoints = new Point[1];
ted.mPoints[0] = new Point(contentX, contentY);
+ ted.mPointsInView = new Point[1];
+ ted.mPointsInView[0] = new Point(x, y);
ted.mMetaState = ev.getMetaState();
ted.mReprocess = mDeferTouchProcess;
ted.mNativeLayer = mScrollingLayer;
@@ -5806,6 +5810,8 @@
ted.mAction = action;
ted.mPoints = new Point[1];
ted.mPoints[0] = new Point(contentX, contentY);
+ ted.mPointsInView = new Point[1];
+ ted.mPointsInView[0] = new Point(x, y);
ted.mMetaState = ev.getMetaState();
ted.mReprocess = mDeferTouchProcess;
ted.mNativeLayer = mScrollingLayer;
@@ -5828,6 +5834,8 @@
ted.mAction = WebViewCore.ACTION_DOUBLETAP;
ted.mPoints = new Point[1];
ted.mPoints[0] = new Point(contentX, contentY);
+ ted.mPointsInView = new Point[1];
+ ted.mPointsInView[0] = new Point(x, y);
ted.mMetaState = ev.getMetaState();
ted.mReprocess = mDeferTouchProcess;
ted.mNativeLayer = nativeScrollableLayer(
@@ -5964,11 +5972,13 @@
final int count = ev.getPointerCount();
ted.mIds = new int[count];
ted.mPoints = new Point[count];
+ ted.mPointsInView = new Point[count];
for (int c = 0; c < count; c++) {
ted.mIds[c] = ev.getPointerId(c);
int x = viewToContentX((int) ev.getX(c) + mScrollX);
int y = viewToContentY((int) ev.getY(c) + mScrollY);
ted.mPoints[c] = new Point(x, y);
+ ted.mPointsInView[c] = new Point((int) ev.getX(c), (int) ev.getY(c));
}
if (ted.mAction == MotionEvent.ACTION_POINTER_DOWN
|| ted.mAction == MotionEvent.ACTION_POINTER_UP) {
@@ -6053,6 +6063,10 @@
ted.mIds[0] = 0;
ted.mPoints = new Point[1];
ted.mPoints[0] = new Point(x, y);
+ ted.mPointsInView = new Point[1];
+ int viewX = contentToViewX(x) - mScrollX;
+ int viewY = contentToViewY(y) - mScrollY;
+ ted.mPointsInView[0] = new Point(viewX, viewY);
ted.mAction = MotionEvent.ACTION_CANCEL;
ted.mNativeLayer = nativeScrollableLayer(
x, y, ted.mNativeLayerRect, null);
@@ -7441,16 +7455,15 @@
// Following is for single touch.
switch (ted.mAction) {
case MotionEvent.ACTION_DOWN:
- mLastDeferTouchX = contentToViewX(ted.mPoints[0].x)
- - mScrollX;
- mLastDeferTouchY = contentToViewY(ted.mPoints[0].y)
- - mScrollY;
+ mLastDeferTouchX = ted.mPointsInView[0].x;
+ mLastDeferTouchY = ted.mPointsInView[0].y;
mDeferTouchMode = TOUCH_INIT_MODE;
break;
case MotionEvent.ACTION_MOVE: {
// no snapping in defer process
- int x = contentToViewX(ted.mPoints[0].x) - mScrollX;
- int y = contentToViewY(ted.mPoints[0].y) - mScrollY;
+ int x = ted.mPointsInView[0].x;
+ int y = ted.mPointsInView[0].y;
+
if (mDeferTouchMode != TOUCH_DRAG_MODE) {
mDeferTouchMode = TOUCH_DRAG_MODE;
mLastDeferTouchX = x;
@@ -7484,8 +7497,8 @@
break;
case WebViewCore.ACTION_DOUBLETAP:
// doDoubleTap() needs mLastTouchX/Y as anchor
- mLastTouchX = contentToViewX(ted.mPoints[0].x) - mScrollX;
- mLastTouchY = contentToViewY(ted.mPoints[0].y) - mScrollY;
+ mLastDeferTouchX = ted.mPointsInView[0].x;
+ mLastDeferTouchY = ted.mPointsInView[0].y;
mZoomManager.handleDoubleTap(mLastTouchX, mLastTouchY);
mDeferTouchMode = TOUCH_DONE_MODE;
break;
@@ -7609,6 +7622,8 @@
ted.mPoints = new Point[1];
ted.mPoints[0] = new Point(viewToContentX(mLastTouchX + mScrollX),
viewToContentY(mLastTouchY + mScrollY));
+ ted.mPointsInView = new Point[1];
+ ted.mPointsInView[0] = new Point(mLastTouchX, mLastTouchY);
// metaState for long press is tricky. Should it be the
// state when the press started or when the press was
// released? Or some intermediary key state? For
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index 3b989dc..0271695 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -831,6 +831,7 @@
int mAction;
int[] mIds; // Ids of the touch points
Point[] mPoints;
+ Point[] mPointsInView; // the point coordinates in view axis.
int mActionIndex; // Associated pointer index for ACTION_POINTER_DOWN/UP
int mMetaState;
boolean mReprocess;
diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java
index 98ab3d1..1767dd9 100644
--- a/telephony/java/android/telephony/SignalStrength.java
+++ b/telephony/java/android/telephony/SignalStrength.java
@@ -556,7 +556,7 @@
* @hide
*/
public int getLteDbm() {
- log("STOPSHIP teach getLteDbm to compute dBm properly");
+ log("TODO: teach getLteDbm to compute dBm properly");
int level = -1;
if (DBG) log("getLteDbm=" + level);
return level;
@@ -568,7 +568,7 @@
* @hide
*/
public int getLteLevel() {
- log("STOPSHIP teach getLteLevel to compute Level properly");
+ log("TODO: teach getLteLevel to compute Level properly");
int level = SIGNAL_STRENGTH_MODERATE;
if (DBG) log("getLteLevel=" + level);
return level;
@@ -580,7 +580,7 @@
* @hide
*/
public int getLteAsuLevel() {
- log("STOPSHIP teach getLteAsuLevel to compute asu Level properly");
+ log("TODO: teach getLteAsuLevel to compute asu Level properly");
int level = 4;
if (DBG) log("getLteAsuLevel=" + level);
return level;