Index: ui/base/clipboard/clipboard.h |
diff --git a/ui/base/clipboard/clipboard.h b/ui/base/clipboard/clipboard.h |
index 4dc7a380557640a94b1d6cf426d6712104a1987a..e0f0b71333309fc52018bc46060acb3b61868e24 100644 |
--- a/ui/base/clipboard/clipboard.h |
+++ b/ui/base/clipboard/clipboard.h |
@@ -20,6 +20,13 @@ |
#include <gdk/gdk.h> |
#endif |
+#if defined(OS_ANDROID) |
+#include <jni.h> |
+ |
+#include "base/android/jni_android.h" |
+#include "base/android/scoped_java_ref.h" |
+#endif |
+ |
namespace gfx { |
class Size; |
} |
@@ -75,6 +82,11 @@ class UI_EXPORT Clipboard { |
explicit FormatType(const GdkAtom& native_format); |
const GdkAtom& ToGdkAtom() const { return data_; } |
GdkAtom data_; |
+#elif defined(OS_ANDROID) |
+ explicit FormatType(const std::string& native_format); |
+ const std::string& ToString() const { return data_; } |
+ int compare(const std::string& str) const { return data_.compare(str); } |
+ std::string data_; |
#else |
#error No FormatType definition. |
#endif |
@@ -165,7 +177,8 @@ class UI_EXPORT Clipboard { |
// On Linux/BSD, we need to know when the clipboard is set to a URL. Most |
// platforms don't care. |
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(USE_AURA) |
+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(USE_AURA) \ |
+ || defined(OS_ANDROID) |
void DidWriteURL(const std::string& utf8_text) {} |
#else // !defined(OS_WIN) && !defined(OS_MACOSX) |
void DidWriteURL(const std::string& utf8_text); |
@@ -321,6 +334,30 @@ class UI_EXPORT Clipboard { |
TargetMap* clipboard_data_; |
GtkClipboard* clipboard_; |
GtkClipboard* primary_selection_; |
+#elif defined(OS_ANDROID) |
+ // Returns whether some text is available from the Android Clipboard. |
+ bool IsTextAvailableFromAndroid() const; |
+ |
+ // Make sure that the Android Clipboard contents matches what we think it |
+ // should contain. If it changed, a copy occured from another application and |
+ // all internal data is dropped. |
+ void ValidateInternalClipboard() const; |
+ |
+ // Clear the Clipboard for all types. Both for Android and internal. |
+ void Clear(); |
+ |
+ // Clear the internal clipboard. |
+ void ClearInternalClipboard() const; |
+ |
+ // This private method is used to set non text key/value. |
+ void Set(const std::string& key, const std::string& value); |
+ |
+ // Java class and methods for the Android ClipboardManager. |
+ base::android::ScopedJavaGlobalRef<jobject> clipboard_manager_; |
+ jmethodID set_text_; |
+ jmethodID has_text_; |
+ jmethodID get_text_; |
+ jmethodID to_string_; |
#endif |
// MIME type constants. |