Bug 918079 - Show highlight when overscrolling. r=kats

This commit is contained in:
Wes Johnston
2013-09-26 22:57:57 -07:00
parent c1101bb38d
commit 9564dea11f
8 changed files with 204 additions and 2 deletions

View File

@@ -129,6 +129,9 @@ class JavaPanZoomController
/* Used to change the scrollY direction */
private boolean mNegateWheelScrollY;
// Handler to be notified when overscroll occurs
private Overscroll mOverscroll;
public JavaPanZoomController(PanZoomTarget target, View view, EventDispatcher eventDispatcher) {
mTarget = target;
mSubscroller = new SubdocumentScrollHelper(eventDispatcher);
@@ -1113,6 +1116,18 @@ class JavaPanZoomController
RectF maxMargins = mTarget.getMaxMargins();
return (metrics.marginLeft < maxMargins.left || metrics.marginRight < maxMargins.right);
}
@Override
protected void overscrollFling(final float velocity) {
if (mOverscroll != null) {
mOverscroll.setVelocity(velocity, Overscroll.Axis.X);
}
}
@Override
protected void overscrollPan(final float distance) {
if (mOverscroll != null) {
mOverscroll.setDistance(distance, Overscroll.Axis.X);
}
}
}
private class AxisY extends Axis {
@@ -1135,6 +1150,18 @@ class JavaPanZoomController
RectF maxMargins = mTarget.getMaxMargins();
return (metrics.marginTop < maxMargins.top || metrics.marginBottom < maxMargins.bottom);
}
@Override
protected void overscrollFling(final float velocity) {
if (mOverscroll != null) {
mOverscroll.setVelocity(velocity, Overscroll.Axis.Y);
}
}
@Override
protected void overscrollPan(final float distance) {
if (mOverscroll != null) {
mOverscroll.setDistance(distance, Overscroll.Axis.Y);
}
}
}
/*
@@ -1434,4 +1461,9 @@ class JavaPanZoomController
public void updateScrollOffset(float cssX, float cssY) {
// Nothing to update, this class doesn't store the scroll offset locally.
}
@Override
public void setOverscrollHandler(final Overscroll handler) {
mOverscroll = handler;
}
}