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

Unified Diff: ui/android/java/src/org/chromium/ui/base/Clipboard.java

Issue 2772073002: Make Clipboard.java a singleton pattern. (Closed)
Patch Set: Fix shame Created 3 years, 9 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: 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);
}
/**

Powered by Google App Engine
This is Rietveld 408576698