Index: chrome/android/java_staging/src/org/chromium/chrome/browser/rlz/RevenueStats.java |
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/rlz/RevenueStats.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/rlz/RevenueStats.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f8e340ee818f9e0428b16604d48ada15bae31ff9 |
--- /dev/null |
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/rlz/RevenueStats.java |
@@ -0,0 +1,87 @@ |
+// 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.chrome.browser.rlz; |
+ |
+import android.content.Context; |
+import android.content.SharedPreferences; |
+import android.preference.PreferenceManager; |
+ |
+import org.chromium.base.ApplicationStatus; |
+import org.chromium.base.JNINamespace; |
+import org.chromium.chrome.browser.ChromeMobileApplication; |
+import org.chromium.chrome.browser.Tab; |
+ |
+import java.util.concurrent.atomic.AtomicReference; |
+ |
+/** |
+ * Utility class for managing revenue sharing information. |
+ */ |
+@JNINamespace("chrome::android") |
+public class RevenueStats { |
+ private static final String PREF_RLZ_NOTIFIED = "rlz_first_search_notified"; |
+ |
+ // Use an AtomicReference since getInstance() can be called from multiple threads. |
+ private static AtomicReference<RevenueStats> sInstance = new AtomicReference<RevenueStats>(); |
+ |
+ /** |
+ * Returns the singleton instance of ExternalAuthUtils, creating it if needed. |
+ */ |
+ public static RevenueStats getInstance() { |
+ if (sInstance.get() == null) { |
+ ChromeMobileApplication application = |
+ (ChromeMobileApplication) ApplicationStatus.getApplicationContext(); |
+ sInstance.compareAndSet(null, application.createRevenueStatsInstance()); |
+ } |
+ return sInstance.get(); |
+ } |
+ |
+ /** |
+ * Notifies tab creation event. |
+ */ |
+ public void tabCreated(Tab chromeTab) {} |
+ |
+ /** |
+ * Retrieves the client ID string. |
+ */ |
+ public String retrieveClientId() { |
+ return null; |
+ } |
+ |
+ /** |
+ * Returns whether the RLZ provider has been notified that the first search has occurred. |
+ */ |
+ protected static boolean getRlzNotified(Context context) { |
+ return PreferenceManager.getDefaultSharedPreferences(context).getBoolean( |
+ PREF_RLZ_NOTIFIED, false); |
+ } |
+ |
+ /** |
+ * Stores whether the RLZ provider has been notified that the first search has occurred as |
+ * shared preference. |
+ */ |
+ protected static void setRlzNotified(Context context, boolean notified) { |
+ SharedPreferences.Editor sharedPreferencesEditor = |
+ PreferenceManager.getDefaultSharedPreferences(context).edit(); |
+ sharedPreferencesEditor.putBoolean(PREF_RLZ_NOTIFIED, notified); |
+ sharedPreferencesEditor.apply(); |
+ } |
+ |
+ /** |
+ * Sets search client id. |
+ */ |
+ protected static void setSearchClient(String client) { |
+ nativeSetSearchClient(client); |
+ } |
+ |
+ /** |
+ * Sets rlz value. |
+ */ |
+ protected static void setRlzParameterValue(String rlz) { |
+ nativeSetRlzParameterValue(rlz); |
+ } |
+ |
+ private static native void nativeSetSearchClient(String client); |
+ private static native void nativeSetRlzParameterValue(String rlz); |
+} |