Commit 2db632df authored by Henrique Nakashima's avatar Henrique Nakashima Committed by Commit Bot

Move SharedPrefs from LocaleManager to ChromePreferenceKeys.

Register them in ChromePreferenceKeys and use SharedPreferencesManager
consistently instead of SharedPreferences directly.

Bug: 1022108
Change-Id: I84c3bfab7c42accaf198ee1a84a62602ca173b56
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1997655Reviewed-by: default avatarYusuf Ozuysal <yusufo@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#731821}
parent 9612f58a
...@@ -6,8 +6,6 @@ package org.chromium.chrome.browser.locale; ...@@ -6,8 +6,6 @@ package org.chromium.chrome.browser.locale;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences;
import android.os.StrictMode;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -26,6 +24,8 @@ import org.chromium.chrome.R; ...@@ -26,6 +24,8 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.AppHooks; import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.settings.SettingsLauncher; import org.chromium.chrome.browser.settings.SettingsLauncher;
import org.chromium.chrome.browser.settings.search_engine.SearchEngineSettings; import org.chromium.chrome.browser.settings.search_engine.SearchEngineSettings;
...@@ -48,9 +48,6 @@ import java.util.concurrent.Callable; ...@@ -48,9 +48,6 @@ import java.util.concurrent.Callable;
* Manager for some locale specific logics. * Manager for some locale specific logics.
*/ */
public class LocaleManager { public class LocaleManager {
public static final String PREF_AUTO_SWITCH = "LocaleManager_PREF_AUTO_SWITCH";
public static final String PREF_PROMO_SHOWN = "LocaleManager_PREF_PROMO_SHOWN";
public static final String PREF_WAS_IN_SPECIAL_LOCALE = "LocaleManager_WAS_IN_SPECIAL_LOCALE";
public static final String SPECIAL_LOCALE_ID = "US"; public static final String SPECIAL_LOCALE_ID = "US";
/** The current state regarding search engine promo dialogs. */ /** The current state regarding search engine promo dialogs. */
...@@ -74,6 +71,8 @@ public class LocaleManager { ...@@ -74,6 +71,8 @@ public class LocaleManager {
int SHOW_NEW = 2; int SHOW_NEW = 2;
} }
// TODO(crbug.com/1022108): Remove this when downstream uses the replacement:
// {@link ChromePreferenceKeys#LOCALE_MANAGER_SEARCH_ENGINE_PROMO_SHOW_STATE}.
protected static final String KEY_SEARCH_ENGINE_PROMO_SHOW_STATE = protected static final String KEY_SEARCH_ENGINE_PROMO_SHOW_STATE =
"com.android.chrome.SEARCH_ENGINE_PROMO_SHOWN"; "com.android.chrome.SEARCH_ENGINE_PROMO_SHOWN";
...@@ -118,14 +117,9 @@ public class LocaleManager { ...@@ -118,14 +117,9 @@ public class LocaleManager {
*/ */
public LocaleManager() { public LocaleManager() {
@SearchEnginePromoState @SearchEnginePromoState
int state = SearchEnginePromoState.SHOULD_CHECK; int state = SharedPreferencesManager.getInstance().readInt(
StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); ChromePreferenceKeys.LOCALE_MANAGER_SEARCH_ENGINE_PROMO_SHOW_STATE,
try { SearchEnginePromoState.SHOULD_CHECK);
state = ContextUtils.getAppSharedPreferences().getInt(
KEY_SEARCH_ENGINE_PROMO_SHOW_STATE, SearchEnginePromoState.SHOULD_CHECK);
} finally {
StrictMode.setThreadPolicy(oldPolicy);
}
mSearchEnginePromoCompleted = state == SearchEnginePromoState.CHECKED_AND_SHOWN; mSearchEnginePromoCompleted = state == SearchEnginePromoState.CHECKED_AND_SHOWN;
} }
...@@ -202,8 +196,9 @@ public class LocaleManager { ...@@ -202,8 +196,9 @@ public class LocaleManager {
* long as the user is in this locale. * long as the user is in this locale.
*/ */
protected void maybeAutoSwitchSearchEngine() { protected void maybeAutoSwitchSearchEngine() {
SharedPreferences preferences = ContextUtils.getAppSharedPreferences(); SharedPreferencesManager preferences = SharedPreferencesManager.getInstance();
boolean wasInSpecialLocale = preferences.getBoolean(PREF_WAS_IN_SPECIAL_LOCALE, false); boolean wasInSpecialLocale = preferences.readBoolean(
ChromePreferenceKeys.LOCALE_MANAGER_WAS_IN_SPECIAL_LOCALE, false);
boolean isInSpecialLocale = isSpecialLocaleEnabled(); boolean isInSpecialLocale = isSpecialLocaleEnabled();
if (wasInSpecialLocale && !isInSpecialLocale) { if (wasInSpecialLocale && !isInSpecialLocale) {
revertDefaultSearchEngineOverride(); revertDefaultSearchEngineOverride();
...@@ -215,7 +210,8 @@ public class LocaleManager { ...@@ -215,7 +210,8 @@ public class LocaleManager {
// As long as the user is in the special locale, special engines should be in the list. // As long as the user is in the special locale, special engines should be in the list.
addSpecialSearchEngines(); addSpecialSearchEngines();
} }
preferences.edit().putBoolean(PREF_WAS_IN_SPECIAL_LOCALE, isInSpecialLocale).apply(); preferences.writeBoolean(
ChromePreferenceKeys.LOCALE_MANAGER_WAS_IN_SPECIAL_LOCALE, isInSpecialLocale);
} }
/** /**
...@@ -345,15 +341,16 @@ public class LocaleManager { ...@@ -345,15 +341,16 @@ public class LocaleManager {
* @return Whether auto switch for search engine is enabled. * @return Whether auto switch for search engine is enabled.
*/ */
public boolean isSearchEngineAutoSwitchEnabled() { public boolean isSearchEngineAutoSwitchEnabled() {
return ContextUtils.getAppSharedPreferences().getBoolean(PREF_AUTO_SWITCH, false); return SharedPreferencesManager.getInstance().readBoolean(
ChromePreferenceKeys.LOCALE_MANAGER_AUTO_SWITCH, false);
} }
/** /**
* Sets whether auto switch for search engine is enabled. * Sets whether auto switch for search engine is enabled.
*/ */
public void setSearchEngineAutoSwitch(boolean isEnabled) { public void setSearchEngineAutoSwitch(boolean isEnabled) {
ContextUtils.getAppSharedPreferences().edit().putBoolean(PREF_AUTO_SWITCH, isEnabled) SharedPreferencesManager.getInstance().writeBoolean(
.apply(); ChromePreferenceKeys.LOCALE_MANAGER_AUTO_SWITCH, isEnabled);
} }
/** /**
...@@ -381,8 +378,8 @@ public class LocaleManager { ...@@ -381,8 +378,8 @@ public class LocaleManager {
@SearchEnginePromoType @SearchEnginePromoType
public int getSearchEnginePromoShowType() { public int getSearchEnginePromoShowType() {
if (!isSpecialLocaleEnabled()) return SearchEnginePromoType.DONT_SHOW; if (!isSpecialLocaleEnabled()) return SearchEnginePromoType.DONT_SHOW;
SharedPreferences preferences = ContextUtils.getAppSharedPreferences(); SharedPreferencesManager preferences = SharedPreferencesManager.getInstance();
if (preferences.getBoolean(PREF_PROMO_SHOWN, false)) { if (preferences.readBoolean(ChromePreferenceKeys.LOCALE_MANAGER_PROMO_SHOWN, false)) {
return SearchEnginePromoType.DONT_SHOW; return SearchEnginePromoType.DONT_SHOW;
} }
return SearchEnginePromoType.SHOW_SOGOU; return SearchEnginePromoType.SHOW_SOGOU;
...@@ -413,11 +410,9 @@ public class LocaleManager { ...@@ -413,11 +410,9 @@ public class LocaleManager {
protected void onUserSearchEngineChoiceFromPromoDialog( protected void onUserSearchEngineChoiceFromPromoDialog(
@SearchEnginePromoType int type, List<String> keywords, String keyword) { @SearchEnginePromoType int type, List<String> keywords, String keyword) {
TemplateUrlServiceFactory.get().setSearchEngine(keyword); TemplateUrlServiceFactory.get().setSearchEngine(keyword);
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeInt(
.edit() ChromePreferenceKeys.LOCALE_MANAGER_SEARCH_ENGINE_PROMO_SHOW_STATE,
.putInt(KEY_SEARCH_ENGINE_PROMO_SHOW_STATE, SearchEnginePromoState.CHECKED_AND_SHOWN);
SearchEnginePromoState.CHECKED_AND_SHOWN)
.apply();
mSearchEnginePromoCompleted = true; mSearchEnginePromoCompleted = true;
} }
...@@ -482,14 +477,9 @@ public class LocaleManager { ...@@ -482,14 +477,9 @@ public class LocaleManager {
return false; return false;
} }
@SearchEnginePromoState @SearchEnginePromoState
int state = SearchEnginePromoState.SHOULD_CHECK; int state = SharedPreferencesManager.getInstance().readInt(
StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); ChromePreferenceKeys.LOCALE_MANAGER_SEARCH_ENGINE_PROMO_SHOW_STATE,
try { SearchEnginePromoState.SHOULD_CHECK);
state = ContextUtils.getAppSharedPreferences().getInt(
KEY_SEARCH_ENGINE_PROMO_SHOW_STATE, SearchEnginePromoState.SHOULD_CHECK);
} finally {
StrictMode.setThreadPolicy(oldPolicy);
}
return !mSearchEnginePromoCheckedThisSession return !mSearchEnginePromoCheckedThisSession
&& state == SearchEnginePromoState.SHOULD_CHECK; && state == SearchEnginePromoState.SHOULD_CHECK;
} }
......
...@@ -18,9 +18,10 @@ import androidx.annotation.IntDef; ...@@ -18,9 +18,10 @@ import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.ContextUtils;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.settings.SettingsLauncher; import org.chromium.chrome.browser.settings.SettingsLauncher;
import org.chromium.chrome.browser.settings.search_engine.SearchEngineSettings; import org.chromium.chrome.browser.settings.search_engine.SearchEngineSettings;
import org.chromium.chrome.browser.ui.widget.PromoDialog; import org.chromium.chrome.browser.ui.widget.PromoDialog;
...@@ -141,10 +142,8 @@ public class SogouPromoDialog extends PromoDialog { ...@@ -141,10 +142,8 @@ public class SogouPromoDialog extends PromoDialog {
default: default:
assert false : "Unexpected choice"; assert false : "Unexpected choice";
} }
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeBoolean(
.edit() ChromePreferenceKeys.LOCALE_MANAGER_PROMO_SHOWN, true);
.putBoolean(LocaleManager.PREF_PROMO_SHOWN, true)
.apply();
RecordHistogram.recordEnumeratedHistogram( RecordHistogram.recordEnumeratedHistogram(
"SpecialLocale.PromotionDialog", mChoice, UserChoice.NUM_ENTRIES); "SpecialLocale.PromotionDialog", mChoice, UserChoice.NUM_ENTRIES);
......
...@@ -416,6 +416,13 @@ public final class ChromePreferenceKeys { ...@@ -416,6 +416,13 @@ public final class ChromePreferenceKeys {
*/ */
public static final String LATEST_UNSUPPORTED_VERSION = "android_os_unsupported_chrome_version"; public static final String LATEST_UNSUPPORTED_VERSION = "android_os_unsupported_chrome_version";
public static final String LOCALE_MANAGER_AUTO_SWITCH = "LocaleManager_PREF_AUTO_SWITCH";
public static final String LOCALE_MANAGER_PROMO_SHOWN = "LocaleManager_PREF_PROMO_SHOWN";
public static final String LOCALE_MANAGER_SEARCH_ENGINE_PROMO_SHOW_STATE =
"com.android.chrome.SEARCH_ENGINE_PROMO_SHOWN";
public static final String LOCALE_MANAGER_WAS_IN_SPECIAL_LOCALE =
"LocaleManager_WAS_IN_SPECIAL_LOCALE";
/** /**
* Key to cache whether offline indicator v2 (persistent offline indicator) is enabled. * Key to cache whether offline indicator v2 (persistent offline indicator) is enabled.
*/ */
...@@ -718,6 +725,10 @@ public final class ChromePreferenceKeys { ...@@ -718,6 +725,10 @@ public final class ChromePreferenceKeys {
INCOGNITO_SHORTCUT_ADDED, INCOGNITO_SHORTCUT_ADDED,
INVALIDATIONS_UUID_PREF_KEY, INVALIDATIONS_UUID_PREF_KEY,
LATEST_UNSUPPORTED_VERSION, LATEST_UNSUPPORTED_VERSION,
LOCALE_MANAGER_AUTO_SWITCH,
LOCALE_MANAGER_PROMO_SHOWN,
LOCALE_MANAGER_SEARCH_ENGINE_PROMO_SHOW_STATE,
LOCALE_MANAGER_WAS_IN_SPECIAL_LOCALE,
OFFLINE_INDICATOR_V2_ENABLED, OFFLINE_INDICATOR_V2_ENABLED,
PRIVACY_ALLOW_PRERENDER_OLD, PRIVACY_ALLOW_PRERENDER_OLD,
PRIVACY_BANDWIDTH_NO_CELLULAR_OLD, PRIVACY_BANDWIDTH_NO_CELLULAR_OLD,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment