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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java

Issue 2528823002: Separate SwipeRefreshHandler and ContentViewCore (Closed)
Patch Set: Move web_contents_view_android.h header in web_contents_android.h into cc file, modify CreateRefres… Created 4 years, 1 month 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: chrome/android/java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java
index 6543a19062599063a3ac9df68aae16da4a9ff796..0991a72f377c8516f6e18d603576cb67e50b2d4b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java
@@ -8,6 +8,7 @@ import android.content.Context;
import android.view.ViewGroup.LayoutParams;
import org.chromium.base.TraceEvent;
+import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.tab.Tab;
@@ -51,6 +52,9 @@ public class SwipeRefreshHandler implements OverscrollRefreshHandler {
// Accessibility utterance used to indicate refresh activation.
private String mAccessibilityRefreshString;
+ // Pointer to the C++ SwipeRefreshHandler
+ private long mNativeSwipeRefreshHandler;
+
/**
* Simple constructor to use when creating an OverscrollRefresh instance from code.
*
@@ -61,6 +65,8 @@ public class SwipeRefreshHandler implements OverscrollRefreshHandler {
mTab = tab;
mContentViewCore = mTab.getContentViewCore();
+ mNativeSwipeRefreshHandler = nativeInit();
+
mSwipeRefreshLayout = new SwipeRefreshLayout(context);
mSwipeRefreshLayout.setLayoutParams(
new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
@@ -100,8 +106,6 @@ public class SwipeRefreshHandler implements OverscrollRefreshHandler {
mSwipeRefreshLayout.post(mDetachLayoutRunnable);
}
});
-
- mContentViewCore.setOverscrollRefreshHandler(this);
}
/**
@@ -111,7 +115,7 @@ public class SwipeRefreshHandler implements OverscrollRefreshHandler {
setEnabled(false);
cancelStopRefreshingRunnable();
mSwipeRefreshLayout.setOnRefreshListener(null);
- mContentViewCore.setOverscrollRefreshHandler(null);
+ nativeDestroy(mNativeSwipeRefreshHandler);
}
/**
@@ -127,12 +131,14 @@ public class SwipeRefreshHandler implements OverscrollRefreshHandler {
}
@Override
+ @CalledByNative
public boolean start() {
attachSwipeRefreshLayoutIfNecessary();
return mSwipeRefreshLayout.start();
}
@Override
+ @CalledByNative
public void pull(float delta) {
TraceEvent.begin("SwipeRefreshHandler.pull");
mSwipeRefreshLayout.pull(delta);
@@ -140,6 +146,7 @@ public class SwipeRefreshHandler implements OverscrollRefreshHandler {
}
@Override
+ @CalledByNative
public void release(boolean allowRefresh) {
TraceEvent.begin("SwipeRefreshHandler.release");
mSwipeRefreshLayout.release(allowRefresh);
@@ -147,6 +154,7 @@ public class SwipeRefreshHandler implements OverscrollRefreshHandler {
}
@Override
+ @CalledByNative
public void reset() {
cancelStopRefreshingRunnable();
mSwipeRefreshLayout.reset();
@@ -183,6 +191,10 @@ public class SwipeRefreshHandler implements OverscrollRefreshHandler {
return mStopRefreshingRunnable;
}
+ public long getNativePtr() {
+ return mNativeSwipeRefreshHandler;
+ }
+
// The animation view is attached/detached on-demand to minimize overlap
// with composited SurfaceView content.
private void attachSwipeRefreshLayoutIfNecessary() {
@@ -198,4 +210,7 @@ public class SwipeRefreshHandler implements OverscrollRefreshHandler {
mContentViewCore.getContainerView().removeView(mSwipeRefreshLayout);
}
}
+
+ private native long nativeInit();
+ private native void nativeDestroy(long nativeSwipeRefreshHandler);
}

Powered by Google App Engine
This is Rietveld 408576698