Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1379)

Unified Diff: android_webview/java/src/org/chromium/android_webview/AwScrollOffsetManager.java

Issue 1063853005: Unify Android Webview and Chrome's fling (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@master
Patch Set: for review Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698