Bug 1335895 - part 26: Update NativePanZoomController.java to use LayerView.isGeckoReady and remove setScrollingRootContent r=jchen,kats draft
authorRandall Barker <rbarker@mozilla.com>
Mon, 27 Mar 2017 13:57:23 -0700
changeset 565575 1861f71413491d843f2d82b73311555fe8b7a1a3
parent 565574 7063934c54936173b9ed9f29225522e9c5b88437
child 565576 4b45c96d7ea4be9fe5f7aa8207caa02e277bd64c
push id54904
push userbmo:rbarker@mozilla.com
push dateThu, 20 Apr 2017 02:39:58 +0000
reviewersjchen, kats
bugs1335895
milestone55.0a1
Bug 1335895 - part 26: Update NativePanZoomController.java to use LayerView.isGeckoReady and remove setScrollingRootContent r=jchen,kats Also removed member functions from PanZoomController.java and NativePanZoomController.java MozReview-Commit-ID: DtQlJHS9h8Q
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/NativePanZoomController.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PanZoomController.java
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/NativePanZoomController.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/NativePanZoomController.java
@@ -18,17 +18,16 @@ import org.json.JSONObject;
 import android.graphics.PointF;
 import android.util.TypedValue;
 import android.view.KeyEvent;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.InputDevice;
 
 class NativePanZoomController extends JNIObject implements PanZoomController {
-    private final PanZoomTarget mTarget;
     private final LayerView mView;
     private boolean mDestroyed;
     private Overscroll mOverscroll;
     boolean mNegateWheelScroll;
     private float mPointerScrollFactor;
     private PrefsHelper.PrefHandler mPrefsObserver;
     private long mLastDownTime;
     private static final float MAX_SCROLL = 0.075f * GeckoAppShell.getDpi();
@@ -45,19 +44,16 @@ class NativePanZoomController extends JN
             float x, float y,
             float hScroll, float vScroll);
 
     @WrapForJNI(calledFrom = "ui")
     private native boolean handleMouseEvent(
             int action, long time, int metaState,
             float x, float y, int buttons);
 
-    @WrapForJNI(calledFrom = "ui")
-    private native void handleMotionEventVelocity(long time, float ySpeed);
-
     private boolean handleMotionEvent(MotionEvent event) {
         if (mDestroyed) {
             return false;
         }
 
         final int action = event.getActionMasked();
         final int count = event.getPointerCount();
 
@@ -106,17 +102,18 @@ class NativePanZoomController extends JN
 
         if (count <= 0) {
             return false;
         }
 
         final MotionEvent.PointerCoords coords = new MotionEvent.PointerCoords();
         event.getPointerCoords(0, coords);
         final float x = coords.x;
-        final float y = coords.y;
+        // Scroll events are not adjusted by the AndroidDyanmicToolbarAnimator so adjust the offset here.
+        final float y = coords.y - mView.getCurrentToolbarHeight();
 
         final float flipFactor = mNegateWheelScroll ? -1.0f : 1.0f;
         final float hScroll = event.getAxisValue(MotionEvent.AXIS_HSCROLL) * flipFactor * mPointerScrollFactor;
         final float vScroll = event.getAxisValue(MotionEvent.AXIS_VSCROLL) * flipFactor * mPointerScrollFactor;
 
         return handleScrollEvent(event.getEventTime(), event.getMetaState(), x, y, hScroll, vScroll);
     }
 
@@ -135,18 +132,17 @@ class NativePanZoomController extends JN
         event.getPointerCoords(0, coords);
         final float x = coords.x;
         final float y = coords.y;
 
         return handleMouseEvent(event.getActionMasked(), event.getEventTime(), event.getMetaState(), x, y, event.getButtonState());
     }
 
 
-    NativePanZoomController(PanZoomTarget target, View view) {
-        mTarget = target;
+    NativePanZoomController(View view) {
         mView = (LayerView) view;
         mDestroyed = true;
 
         String[] prefs = { "ui.scrolling.negate_wheel_scroll" };
         mPrefsObserver = new PrefsHelper.PrefHandlerBase() {
             @Override public void prefValue(String pref, boolean value) {
                 if (pref.equals("ui.scrolling.negate_wheel_scroll")) {
                     mNegateWheelScroll = value;
@@ -192,28 +188,23 @@ class NativePanZoomController extends JN
                    (action == MotionEvent.ACTION_HOVER_ENTER) ||
                    (action == MotionEvent.ACTION_HOVER_EXIT)) {
             return handleMouseEvent(event);
         } else {
             return false;
         }
     }
 
-    @Override
-    public void onMotionEventVelocity(final long aEventTime, final float aSpeedY) {
-        handleMotionEventVelocity(aEventTime, aSpeedY);
-    }
-
     @Override @WrapForJNI(calledFrom = "ui") // PanZoomController
     public void destroy() {
         if (mPrefsObserver != null) {
             PrefsHelper.removeObserver(mPrefsObserver);
             mPrefsObserver = null;
         }
-        if (mDestroyed || !mTarget.isGeckoReady()) {
+        if (mDestroyed || !mView.isGeckoReady()) {
             return;
         }
         mDestroyed = true;
         disposeNative();
     }
 
     @Override
     public void attach() {
@@ -233,25 +224,16 @@ class NativePanZoomController extends JN
 
     @Override // PanZoomController
     public void setIsLongpressEnabled(boolean isLongpressEnabled) {
         if (!mDestroyed) {
             nativeSetIsLongpressEnabled(isLongpressEnabled);
         }
     }
 
-    @WrapForJNI(calledFrom = "ui")
-    private native void adjustScrollForSurfaceShift(float aX, float aY);
-
-    @Override // PanZoomController
-    public ImmutableViewportMetrics adjustScrollForSurfaceShift(ImmutableViewportMetrics aMetrics, PointF aShift) {
-        adjustScrollForSurfaceShift(aShift.x, aShift.y);
-        return aMetrics.offsetViewportByAndClamp(aShift.x, aShift.y);
-    }
-
     @WrapForJNI
     private void updateOverscrollVelocity(final float x, final float y) {
         if (mOverscroll != null) {
             if (ThreadUtils.isOnUiThread() == true) {
                 mOverscroll.setVelocity(x * 1000.0f, Overscroll.Axis.X);
                 mOverscroll.setVelocity(y * 1000.0f, Overscroll.Axis.Y);
             } else {
                 ThreadUtils.postToUiThread(new Runnable() {
@@ -279,21 +261,16 @@ class NativePanZoomController extends JN
                         mOverscroll.setDistance(x, Overscroll.Axis.X);
                         mOverscroll.setDistance(y, Overscroll.Axis.Y);
                     }
                 });
             }
         }
     }
 
-    @WrapForJNI(calledFrom = "ui")
-    private void setScrollingRootContent(final boolean isRootContent) {
-        mTarget.setScrollingRootContent(isRootContent);
-    }
-
     /**
      * Active SelectionCaretDrag requires DynamicToolbarAnimator to be pinned
      * to avoid unwanted scroll interactions.
      */
     @WrapForJNI(calledFrom = "gecko")
     private void onSelectionDragState(boolean state) {
         mView.getDynamicToolbarAnimator().setPinned(state, PinReason.CARET_DRAG);
     }
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PanZoomController.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PanZoomController.java
@@ -22,16 +22,13 @@ public interface PanZoomController {
         }
     }
 
     public void destroy();
     public void attach();
 
     public boolean onTouchEvent(MotionEvent event);
     public boolean onMotionEvent(MotionEvent event);
-    public void onMotionEventVelocity(final long aEventTime, final float aSpeedY);
 
     public void setOverscrollHandler(final Overscroll controller);
 
     public void setIsLongpressEnabled(boolean isLongpressEnabled);
-
-    public ImmutableViewportMetrics adjustScrollForSurfaceShift(ImmutableViewportMetrics aMetrics, PointF aShift);
 }