Simplification

pull/212/head
M66B 3 years ago
parent 6a7c61f065
commit f03867f115

@ -298,7 +298,7 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC
private float lastX; private float lastX;
private float lastY; private float lastY;
private Integer lastXoff; private int lastXoff;
@Override @Override
public boolean onTouchEvent(MotionEvent event) { public boolean onTouchEvent(MotionEvent event) {
@ -316,26 +316,20 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC
intercept = (yoff > 0 || dy >= 0) && (yoff < bottom || dy <= 0); intercept = (yoff > 0 || dy >= 0) && (yoff < bottom || dy <= 0);
} }
if (intercept)
lastXoff = computeHorizontalScrollOffset();
else {
int xrange = computeHorizontalScrollRange(); int xrange = computeHorizontalScrollRange();
int xextend = computeHorizontalScrollExtent(); int xextend = computeHorizontalScrollExtent();
boolean canScrollHorizontal = (xrange > xextend); boolean canScrollHorizontal = (xrange > xextend);
//Log.i("MMM xrange=" + xrange + " xextend=" + xextend + " can=" + canScrollHorizontal);
if (canScrollHorizontal) { if (canScrollHorizontal) {
int right = xrange - xextend; int right = xrange - xextend;
int xoff = computeHorizontalScrollOffset(); int xoff = computeHorizontalScrollOffset();
if (lastXoff == null) int ldx = xoff - lastXoff;
lastXoff = xoff;
float dx = lastX - event.getX(); float dx = lastX - event.getX();
intercept = (xoff > 0 || dx >= 0) && intercept = (xoff > 0 || dx >= 0) &&
(xoff < right || dx <= 0) && (xoff < right || dx <= 0) &&
(Math.signum(dx) == Math.signum(xoff - lastXoff)); (Math.signum(dx) == Math.signum(ldx));
lastXoff = xoff; lastXoff = xoff;
} }
} }
}
getParent().requestDisallowInterceptTouchEvent(intercept || event.getPointerCount() > 1); getParent().requestDisallowInterceptTouchEvent(intercept || event.getPointerCount() > 1);
lastX = event.getX(); lastX = event.getX();

Loading…
Cancel
Save