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

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

Issue 2263043002: android_webview: Let AwContents manage TouchHandleDrawable (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: DestroyAllDrawables Created 4 years, 4 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/AwContents.java
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index 1f2941492e7de510fa3d59fb7c5674b5883ed8e2..81db590371e12efc2ea4d2b843ac55c944169a75 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -81,7 +81,9 @@ import java.io.File;
import java.lang.annotation.Annotation;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
@@ -288,6 +290,8 @@ public class AwContents implements SmartClipProvider,
private final AwSettings mSettings;
private final ScrollAccessibilityHelper mScrollAccessibilityHelper;
+ private final List<PopupTouchHandleDrawable> mTouchHandleDrawables = new ArrayList<>();
+
private boolean mIsPaused;
private boolean mIsViewVisible;
private boolean mIsWindowVisible;
@@ -934,6 +938,9 @@ public class AwContents implements SmartClipProvider,
mAwPdfExporter.setContainerView(mContainerView);
}
mWebContentsDelegate.setContainerView(mContainerView);
+ for (PopupTouchHandleDrawable drawable: mTouchHandleDrawables) {
+ drawable.onContainerViewChanged(newContainerView);
+ }
onContainerViewChanged();
}
@@ -2684,6 +2691,21 @@ public class AwContents implements SmartClipProvider,
mFavicon = bitmap;
}
+ @CalledByNative
+ private long onCreateTouchHandle() {
+ PopupTouchHandleDrawable drawable =
+ PopupTouchHandleDrawable.create(mContentViewCore, mDIPScale);
+ if (drawable == null) return 0L;
+
+ mTouchHandleDrawables.add(drawable);
+ return drawable.getNativeDrawable();
+ }
+
+ @CalledByNative
+ private void onDestroyAllTouchHandles() {
+ mTouchHandleDrawables.clear();
+ }
+
/** Callback for generateMHTML. */
@CalledByNative
private static void generateMHTMLCallback(

Powered by Google App Engine
This is Rietveld 408576698