| Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| index 09ac6d47356a3091707ecbe342bfc5b1a6c68c24..5f6c6c3a178fdbe108881ab78fdc7ddd0eacffa0 100644
|
| --- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| +++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| @@ -24,15 +24,14 @@ import org.chromium.base.CalledByNative;
|
| import org.chromium.base.JNINamespace;
|
| import org.chromium.base.WeakContext;
|
| import org.chromium.content.app.AppResource;
|
| +import org.chromium.content.browser.accessibility.AccessibilityInjector;
|
| import org.chromium.content.browser.ContentViewGestureHandler;
|
| +import org.chromium.content.browser.ContentViewGestureHandler.MotionEventDelegate;
|
| import org.chromium.content.browser.TouchPoint;
|
| import org.chromium.content.browser.ZoomManager;
|
| import org.chromium.content.common.CleanupReference;
|
| import org.chromium.content.common.TraceEvent;
|
|
|
| -import org.chromium.content.browser.accessibility.AccessibilityInjector;
|
| -import org.chromium.content.browser.ContentViewGestureHandler.MotionEventDelegate;
|
| -
|
| /**
|
| * Provides a Java-side 'wrapper' around a WebContent (native) instance.
|
| * Contains all the major functionality necessary to manage the lifecycle of a ContentView without
|
| @@ -163,6 +162,8 @@ public class ContentViewCore implements MotionEventDelegate {
|
| private float mNativeMinimumScale = 1.0f;
|
| private float mNativeMaximumScale = 1.0f;
|
|
|
| + private PopupZoomer mPopupZoomer;
|
| +
|
| // TODO(klobag): this is to avoid a bug in GestureDetector. With multi-touch,
|
| // mAlwaysInTapRegion is not reset. So when the last finger is up, onSingleTapUp()
|
| // will be mistakenly fired.
|
| @@ -295,9 +296,38 @@ public class ContentViewCore implements MotionEventDelegate {
|
| mZoomManager.updateMultiTouchSupport();
|
| mContentViewGestureHandler = new ContentViewGestureHandler(context, this, mZoomManager);
|
|
|
| + initPopupZoomer(mContext);
|
| +
|
| Log.i(TAG, "mNativeContentView=0x"+ Integer.toHexString(mNativeContentViewCore));
|
| }
|
|
|
| + private void initPopupZoomer(Context context){
|
| + assert AppResource.DIMENSION_LINK_PREVIEW_OVERLAY_RADIUS != 0;
|
| + mPopupZoomer = new PopupZoomer(context, AppResource.DIMENSION_LINK_PREVIEW_OVERLAY_RADIUS);
|
| + mContainerView.addView(mPopupZoomer);
|
| + PopupZoomer.OnTapListener listener = new PopupZoomer.OnTapListener() {
|
| + @Override
|
| + public boolean onSingleTap(View v, MotionEvent e) {
|
| + mContainerView.requestFocus();
|
| + if (mNativeContentViewCore != 0) {
|
| + nativeSingleTap(mNativeContentViewCore, e.getEventTime(), (int) e.getX(),
|
| + (int) e.getY(), true);
|
| + }
|
| + return true;
|
| + }
|
| +
|
| + @Override
|
| + public boolean onLongPress(View v, MotionEvent e) {
|
| + if (mNativeContentViewCore != 0) {
|
| + nativeLongPress(mNativeContentViewCore, e.getEventTime(), (int) e.getX(),
|
| + (int) e.getY(), true);
|
| + }
|
| + return true;
|
| + }
|
| + };
|
| + mPopupZoomer.setOnTapListener(listener);
|
| + }
|
| +
|
| /**
|
| * @return Whether the configured personality of this ContentView is {@link #PERSONALITY_VIEW}.
|
| */
|
| @@ -702,6 +732,8 @@ public class ContentViewCore implements MotionEventDelegate {
|
| //TODO(yusufo):Upstream the rest of the bits about handlerControllers.
|
| if (!mContainerView.isFocused()) mContainerView.requestFocus();
|
|
|
| + if (!mPopupZoomer.isShowing()) mPopupZoomer.setLastTouch(x, y);
|
| +
|
| if (isLongPress) {
|
| if (mNativeContentViewCore != 0) {
|
| nativeLongPress(mNativeContentViewCore, timeMs, x, y, false);
|
|
|