| 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 3a7f7add7cc0c8fd87e23776efb2e081d3027977..c0eab35b6dd149f2c9f612ffc3b34e353d53a582 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
|
| @@ -24,15 +24,28 @@ 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.
|
| + * Synchronizes first run native and Java preferences.
|
| * 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();
|
| + PrefServiceBridge prefsBridge = PrefServiceBridge.getInstance();
|
| + // Set both Java and native prefs if any of the three indicators indicate ToS has been
|
| + // accepted. This needed because:
|
| + // - Old versions only set native pref, so this syncs Java pref.
|
| + // - Backup & restore does not restore native pref, so this needs to update it.
|
| + // - checkAnyUserHasSeenToS() may be true which needs to sync its state to the prefs.
|
| + boolean javaPrefValue = javaPrefs.getBoolean(CACHED_TOS_ACCEPTED_PREF, false);
|
| + boolean nativePrefValue = prefsBridge.isFirstRunEulaAccepted();
|
| + boolean userHasSeenTos =
|
| + ToSAckedReceiver.checkAnyUserHasSeenToS(ContextUtils.getApplicationContext());
|
| + if (javaPrefValue || nativePrefValue || userHasSeenTos) {
|
| + if (!javaPrefValue) {
|
| + javaPrefs.edit().putBoolean(CACHED_TOS_ACCEPTED_PREF, true).apply();
|
| + }
|
| + if (!nativePrefValue) {
|
| + prefsBridge.setEulaAccepted();
|
| + }
|
| }
|
| }
|
|
|
|
|