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;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.StrictMode;
import androidx.annotation.IntDef;
import androidx.annotation.Nullable;
......@@ -26,6 +24,8 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.ChromeFeatureList;
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.settings.SettingsLauncher;
import org.chromium.chrome.browser.settings.search_engine.SearchEngineSettings;
......@@ -48,9 +48,6 @@ import java.util.concurrent.Callable;
* Manager for some locale specific logics.
*/
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";
/** The current state regarding search engine promo dialogs. */
......@@ -74,6 +71,8 @@ public class LocaleManager {
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 =
"com.android.chrome.SEARCH_ENGINE_PROMO_SHOWN";
......@@ -118,14 +117,9 @@ public class LocaleManager {
*/
public LocaleManager() {
@SearchEnginePromoState
int state = SearchEnginePromoState.SHOULD_CHECK;
StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
try {
state = ContextUtils.getAppSharedPreferences().getInt(
KEY_SEARCH_ENGINE_PROMO_SHOW_STATE, SearchEnginePromoState.SHOULD_CHECK);
} finally {
StrictMode.setThreadPolicy(oldPolicy);
}
int state = SharedPreferencesManager.getInstance().readInt(
ChromePreferenceKeys.LOCALE_MANAGER_SEARCH_ENGINE_PROMO_SHOW_STATE,
SearchEnginePromoState.SHOULD_CHECK);
mSearchEnginePromoCompleted = state == SearchEnginePromoState.CHECKED_AND_SHOWN;
}
......@@ -202,8 +196,9 @@ public class LocaleManager {
* long as the user is in this locale.
*/
protected void maybeAutoSwitchSearchEngine() {
SharedPreferences preferences = ContextUtils.getAppSharedPreferences();
boolean wasInSpecialLocale = preferences.getBoolean(PREF_WAS_IN_SPECIAL_LOCALE, false);
SharedPreferencesManager preferences = SharedPreferencesManager.getInstance();
boolean wasInSpecialLocale = preferences.readBoolean(
ChromePreferenceKeys.LOCALE_MANAGER_WAS_IN_SPECIAL_LOCALE, false);
boolean isInSpecialLocale = isSpecialLocaleEnabled();
if (wasInSpecialLocale && !isInSpecialLocale) {
revertDefaultSearchEngineOverride();
......@@ -215,7 +210,8 @@ public class LocaleManager {
// As long as the user is in the special locale, special engines should be in the list.
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 {
* @return Whether auto switch for search engine is enabled.
*/
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.
*/
public void setSearchEngineAutoSwitch(boolean isEnabled) {
ContextUtils.getAppSharedPreferences().edit().putBoolean(PREF_AUTO_SWITCH, isEnabled)
.apply();
SharedPreferencesManager.getInstance().writeBoolean(
ChromePreferenceKeys.LOCALE_MANAGER_AUTO_SWITCH, isEnabled);
}
/**
......@@ -381,8 +378,8 @@ public class LocaleManager {
@SearchEnginePromoType
public int getSearchEnginePromoShowType() {
if (!isSpecialLocaleEnabled()) return SearchEnginePromoType.DONT_SHOW;
SharedPreferences preferences = ContextUtils.getAppSharedPreferences();
if (preferences.getBoolean(PREF_PROMO_SHOWN, false)) {
SharedPreferencesManager preferences = SharedPreferencesManager.getInstance();
if (preferences.readBoolean(ChromePreferenceKeys.LOCALE_MANAGER_PROMO_SHOWN, false)) {
return SearchEnginePromoType.DONT_SHOW;
}
return SearchEnginePromoType.SHOW_SOGOU;
......@@ -413,11 +410,9 @@ public class LocaleManager {
protected void onUserSearchEngineChoiceFromPromoDialog(
@SearchEnginePromoType int type, List<String> keywords, String keyword) {
TemplateUrlServiceFactory.get().setSearchEngine(keyword);
ContextUtils.getAppSharedPreferences()
.edit()
.putInt(KEY_SEARCH_ENGINE_PROMO_SHOW_STATE,
SearchEnginePromoState.CHECKED_AND_SHOWN)
.apply();
SharedPreferencesManager.getInstance().writeInt(
ChromePreferenceKeys.LOCALE_MANAGER_SEARCH_ENGINE_PROMO_SHOW_STATE,
SearchEnginePromoState.CHECKED_AND_SHOWN);
mSearchEnginePromoCompleted = true;
}
......@@ -482,14 +477,9 @@ public class LocaleManager {
return false;
}
@SearchEnginePromoState
int state = SearchEnginePromoState.SHOULD_CHECK;
StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
try {
state = ContextUtils.getAppSharedPreferences().getInt(
KEY_SEARCH_ENGINE_PROMO_SHOW_STATE, SearchEnginePromoState.SHOULD_CHECK);
} finally {
StrictMode.setThreadPolicy(oldPolicy);
}
int state = SharedPreferencesManager.getInstance().readInt(
ChromePreferenceKeys.LOCALE_MANAGER_SEARCH_ENGINE_PROMO_SHOW_STATE,
SearchEnginePromoState.SHOULD_CHECK);
return !mSearchEnginePromoCheckedThisSession
&& state == SearchEnginePromoState.SHOULD_CHECK;
}
......
......@@ -18,9 +18,10 @@ import androidx.annotation.IntDef;
import androidx.annotation.Nullable;
import org.chromium.base.Callback;
import org.chromium.base.ContextUtils;
import org.chromium.base.metrics.RecordHistogram;
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.search_engine.SearchEngineSettings;
import org.chromium.chrome.browser.ui.widget.PromoDialog;
......@@ -141,10 +142,8 @@ public class SogouPromoDialog extends PromoDialog {
default:
assert false : "Unexpected choice";
}
ContextUtils.getAppSharedPreferences()
.edit()
.putBoolean(LocaleManager.PREF_PROMO_SHOWN, true)
.apply();
SharedPreferencesManager.getInstance().writeBoolean(
ChromePreferenceKeys.LOCALE_MANAGER_PROMO_SHOWN, true);
RecordHistogram.recordEnumeratedHistogram(
"SpecialLocale.PromotionDialog", mChoice, UserChoice.NUM_ENTRIES);
......
......@@ -416,6 +416,13 @@ public final class ChromePreferenceKeys {
*/
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.
*/
......@@ -718,6 +725,10 @@ public final class ChromePreferenceKeys {
INCOGNITO_SHORTCUT_ADDED,
INVALIDATIONS_UUID_PREF_KEY,
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,
PRIVACY_ALLOW_PRERENDER_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