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
--- 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);
}