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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlueImpl.java

Issue 2531743003: Add TOS-accepted Java pref on Android. (Closed)
Patch Set: Address comment. Created 4 years 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
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlueImpl.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlueImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlueImpl.java
index a07eb1abc6b7a3ac558e5b0d1d344bdcca5f0b0a..3a7f7add7cc0c8fd87e23776efb2e081d3027977 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlueImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlueImpl.java
@@ -6,8 +6,10 @@ package org.chromium.chrome.browser.firstrun;
import android.app.Fragment;
import android.content.Context;
+import android.content.SharedPreferences;
import android.text.TextUtils;
+import org.chromium.base.ContextUtils;
import org.chromium.chrome.browser.metrics.UmaSessionStats;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.signin.AccountAdder;
@@ -19,15 +21,36 @@ import java.util.List;
* Provides preferences glue for FirstRunActivity.
*/
public class FirstRunGlueImpl implements FirstRunGlue {
+ private static final String CACHED_TOS_ACCEPTED_PREF = "first_run_tos_accepted";
+
+ /**
+ * Synchronizes first run native and Java preferences. Previous versions would
+ * set only the native pref so this function synchronizes that state to Java.
+ * Must be called after native initialization.
+ */
+ public static void cacheFirstRunPrefs() {
+ SharedPreferences javaPrefs = ContextUtils.getAppSharedPreferences();
+ if (!javaPrefs.getBoolean(CACHED_TOS_ACCEPTED_PREF, false)
+ && PrefServiceBridge.getInstance().isFirstRunEulaAccepted()) {
+ javaPrefs.edit().putBoolean(CACHED_TOS_ACCEPTED_PREF, true).apply();
+ }
+ }
+
@Override
public boolean didAcceptTermsOfService(Context appContext) {
- return ToSAckedReceiver.checkAnyUserHasSeenToS(appContext)
- || PrefServiceBridge.getInstance().isFirstRunEulaAccepted();
+ // Note: Does not check PrefServiceBridge.getInstance().isFirstRunEulaAccepted()
+ // because this may be called before native is initialized.
+ return ContextUtils.getAppSharedPreferences().getBoolean(CACHED_TOS_ACCEPTED_PREF, false)
+ || ToSAckedReceiver.checkAnyUserHasSeenToS(appContext);
}
@Override
public void acceptTermsOfService(boolean allowCrashUpload) {
UmaSessionStats.changeMetricsReportingConsent(allowCrashUpload);
+ ContextUtils.getAppSharedPreferences()
+ .edit()
+ .putBoolean(CACHED_TOS_ACCEPTED_PREF, true)
+ .apply();
PrefServiceBridge.getInstance().setEulaAccepted();
}
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698