Index: ui/android/java/src/org/chromium/ui/base/Clipboard.java |
diff --git a/ui/android/java/src/org/chromium/ui/base/Clipboard.java b/ui/android/java/src/org/chromium/ui/base/Clipboard.java |
index 4497c60fa49b925005f3322337b1146f626c9770..4554352ad63acb156e9730aeeb58d60dfb4491f9 100644 |
--- a/ui/android/java/src/org/chromium/ui/base/Clipboard.java |
+++ b/ui/android/java/src/org/chromium/ui/base/Clipboard.java |
@@ -8,6 +8,7 @@ import android.content.ClipData; |
import android.content.ClipboardManager; |
import android.content.Context; |
+import org.chromium.base.ContextUtils; |
import org.chromium.base.annotations.CalledByNative; |
import org.chromium.base.annotations.JNINamespace; |
import org.chromium.base.annotations.SuppressFBWarnings; |
@@ -15,11 +16,12 @@ import org.chromium.ui.R; |
import org.chromium.ui.widget.Toast; |
/** |
- * Simple proxy that provides C++ code with an access pathway to the Android |
- * clipboard. |
+ * Simple proxy that provides C++ code with an access pathway to the Android clipboard. |
*/ |
@JNINamespace("ui") |
public class Clipboard { |
+ private static Clipboard sInstance; |
+ |
// Necessary for coercing clipboard contents to text if they require |
// access to network resources, etceteras (e.g., URI in clipboard) |
private final Context mContext; |
@@ -27,25 +29,21 @@ public class Clipboard { |
private final ClipboardManager mClipboardManager; |
/** |
- * Use the factory constructor instead. |
- * |
- * @param context for accessing the clipboard |
+ * Get the singleton Clipboard instance (creating it if needed). |
*/ |
- public Clipboard(final Context context) { |
- mContext = context; |
- mClipboardManager = (ClipboardManager) |
- context.getSystemService(Context.CLIPBOARD_SERVICE); |
+ @CalledByNative |
+ public static Clipboard getInstance() { |
+ if (sInstance == null) { |
+ sInstance = new Clipboard(); |
+ } |
+ return sInstance; |
} |
- /** |
- * Returns a new Clipboard object bound to the specified context. |
- * |
- * @param context for accessing the clipboard |
- * @return the new object |
- */ |
- @CalledByNative |
- private static Clipboard create(final Context context) { |
- return new Clipboard(context); |
+ private Clipboard() { |
+ mContext = ContextUtils.getApplicationContext(); |
+ mClipboardManager = |
+ (ClipboardManager) ContextUtils.getApplicationContext().getSystemService( |
+ Context.CLIPBOARD_SERVICE); |
} |
/** |