Index: android_webview/java/src/org/chromium/android_webview/AwScrollOffsetManager.java |
diff --git a/android_webview/java/src/org/chromium/android_webview/AwScrollOffsetManager.java b/android_webview/java/src/org/chromium/android_webview/AwScrollOffsetManager.java |
index 9ed9a14ff6f0d1ddf05cca819f81b9a858cee1eb..0ec28a15d27ca1e108abeb0657abd2586e7caff4 100644 |
--- a/android_webview/java/src/org/chromium/android_webview/AwScrollOffsetManager.java |
+++ b/android_webview/java/src/org/chromium/android_webview/AwScrollOffsetManager.java |
@@ -26,6 +26,8 @@ public class AwScrollOffsetManager { |
// Time for the longest scroll animation. |
private static final int MAX_SCROLL_ANIMATION_DURATION_MILLISEC = 750; |
+ private boolean mIsAnimatingScroll = false; |
+ |
/** |
* The interface that all users of AwScrollOffsetManager should implement. |
* |
@@ -163,6 +165,8 @@ public class AwScrollOffsetManager { |
scrollRangeX, scrollRangeY, mProcessingTouchEvent); |
} |
+ // This is used temporarily until animateScrollTo path of Android WebView (pageUp, pageDown) |
+ // is unified with Chrome smooth scrolling. |
public boolean isFlingActive() { |
boolean flinging = mScroller.computeScrollOffset(); |
mWasFlinging |= flinging; |
@@ -258,24 +262,11 @@ public class AwScrollOffsetManager { |
mScroller.forceFinished(true); |
} |
- // Called when a fling gesture is not handled by the renderer. |
- // We explicitly ask the renderer not to handle fling gestures targeted at the root |
- // scroll layer. |
- public void onUnhandledFlingStartEvent(int velocityX, int velocityY) { |
- flingScroll(-velocityX, -velocityY); |
- } |
- |
- // Starts the fling animation. Called both as a response to a fling gesture and as via the |
- // public WebView#flingScroll(int, int) API. |
- public void flingScroll(int velocityX, int velocityY) { |
- final int scrollX = mDelegate.getContainerViewScrollX(); |
- final int scrollY = mDelegate.getContainerViewScrollY(); |
- final int scrollRangeX = computeMaximumHorizontalScrollOffset(); |
- final int scrollRangeY = computeMaximumVerticalScrollOffset(); |
- |
- mScroller.fling(scrollX, scrollY, velocityX, velocityY, |
- 0, scrollRangeX, 0, scrollRangeY); |
- mDelegate.invalidate(); |
+ // This is used temporarily until animateScrollTo path of Android WebView (pageUp, pageDown) |
+ // is unified with Chrome smooth scrolling. |
+ public boolean willComputeScroll() { |
+ if (mScroller.isFinished()) mIsAnimatingScroll = false; |
+ return mIsAnimatingScroll && !mScroller.isFinished(); |
} |
// Called immediately before the draw to update the scroll offset. |
@@ -323,6 +314,8 @@ public class AwScrollOffsetManager { |
if (dx == 0 && dy == 0) return false; |
+ mIsAnimatingScroll = true; |
+ |
mScroller.startScroll(scrollX, scrollY, dx, dy, computeDurationInMilliSec(dx, dy)); |
mDelegate.invalidate(); |