Index: content/public/android/java/src/org/chromium/content/browser/FloatingWebActionModeCallback.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/FloatingWebActionModeCallback.java b/content/public/android/java/src/org/chromium/content/browser/FloatingWebActionModeCallback.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4d4e29c03e0c00a9b577645eb4e763cf3714cb8c |
--- /dev/null |
+++ b/content/public/android/java/src/org/chromium/content/browser/FloatingWebActionModeCallback.java |
@@ -0,0 +1,50 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.content.browser; |
+ |
+import android.graphics.Rect; |
+import android.view.ActionMode; |
+import android.view.Menu; |
+import android.view.MenuItem; |
+import android.view.View; |
+ |
+/** |
+ * A wrapper for SelectActionModeCallback that extends ActionMode.Callback2 to |
+ * support floating ActionModes. |
+ */ |
+public class FloatingWebActionModeCallback extends ActionMode.Callback2 { |
+ private final WebActionModeCallback mWrappedCallback; |
+ |
+ public FloatingWebActionModeCallback(WebActionModeCallback wrappedCallback) { |
+ mWrappedCallback = wrappedCallback; |
+ } |
+ |
+ @Override |
+ public boolean onCreateActionMode(ActionMode mode, Menu menu) { |
+ // If the created ActionMode isn't actually floating, abort creation altogether. |
+ if (mode.getType() != ActionMode.TYPE_FLOATING) return false; |
+ return mWrappedCallback.onCreateActionMode(mode, menu); |
+ } |
+ |
+ @Override |
+ public boolean onPrepareActionMode(ActionMode mode, Menu menu) { |
+ return mWrappedCallback.onPrepareActionMode(mode, menu); |
+ } |
+ |
+ @Override |
+ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { |
+ return mWrappedCallback.onActionItemClicked(mode, item); |
+ } |
+ |
+ @Override |
+ public void onDestroyActionMode(ActionMode mode) { |
+ mWrappedCallback.onDestroyActionMode(mode); |
+ } |
+ |
+ @Override |
+ public void onGetContentRect(ActionMode mode, View view, Rect outRect) { |
+ mWrappedCallback.onGetContentRect(mode, view, outRect); |
+ } |
+} |