Commit 6373ebc7 authored by Henrique Nakashima's avatar Henrique Nakashima Committed by Commit Bot

Move data reduction SharedPrefs keys to ChromePreferenceKeys.

Use SharedPreferencesManager consistently instead of SharedPreferences
directly.

The keys in the following classes are moved:
- DataReductionProxySettings
- DataReductionPromoUtils
- DataReductionStatsPreference

Bug: 1022108
Change-Id: I49d607b9c0d3246f3fdd3d80675d659eb06aea02
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1972090Reviewed-by: default avatarMegan Jablonski <megjablon@chromium.org>
Reviewed-by: default avatarNatalie Chouinard <chouinard@chromium.org>
Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#726055}
parent b99d6399
...@@ -24,7 +24,6 @@ import org.chromium.base.task.PostTask; ...@@ -24,7 +24,6 @@ import org.chromium.base.task.PostTask;
import org.chromium.chrome.browser.firstrun.FirstRunStatus; import org.chromium.chrome.browser.firstrun.FirstRunStatus;
import org.chromium.chrome.browser.init.AsyncInitTaskRunner; import org.chromium.chrome.browser.init.AsyncInitTaskRunner;
import org.chromium.chrome.browser.init.ChromeBrowserInitializer; import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.settings.privacy.PrivacyPreferencesManager; import org.chromium.chrome.browser.settings.privacy.PrivacyPreferencesManager;
import org.chromium.components.signin.AccountManagerFacade; import org.chromium.components.signin.AccountManagerFacade;
...@@ -88,7 +87,7 @@ public class ChromeBackupAgent extends BackupAgent { ...@@ -88,7 +87,7 @@ public class ChromeBackupAgent extends BackupAgent {
// List of preferences that should be restored unchanged. // List of preferences that should be restored unchanged.
static final String[] BACKUP_ANDROID_BOOL_PREFS = { static final String[] BACKUP_ANDROID_BOOL_PREFS = {
DataReductionProxySettings.DATA_REDUCTION_ENABLED_PREF, ChromePreferenceKeys.DATA_REDUCTION_ENABLED_PREF,
ChromePreferenceKeys.FIRST_RUN_CACHED_TOS_ACCEPTED_PREF, ChromePreferenceKeys.FIRST_RUN_CACHED_TOS_ACCEPTED_PREF,
ChromePreferenceKeys.FIRST_RUN_FLOW_COMPLETE, ChromePreferenceKeys.FIRST_RUN_FLOW_COMPLETE,
ChromePreferenceKeys.FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE, ChromePreferenceKeys.FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE,
......
...@@ -4,8 +4,9 @@ ...@@ -4,8 +4,9 @@
package org.chromium.chrome.browser.datareduction; package org.chromium.chrome.browser.datareduction;
import org.chromium.base.ContextUtils;
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.settings.about.AboutSettingsBridge; import org.chromium.chrome.browser.settings.about.AboutSettingsBridge;
/** /**
...@@ -13,47 +14,6 @@ import org.chromium.chrome.browser.settings.about.AboutSettingsBridge; ...@@ -13,47 +14,6 @@ import org.chromium.chrome.browser.settings.about.AboutSettingsBridge;
* inform users of the benefits of Data Saver. * inform users of the benefits of Data Saver.
*/ */
public class DataReductionPromoUtils { public class DataReductionPromoUtils {
/**
* Key used to save whether the first run experience or second run promo screen has been shown.
*/
private static final String SHARED_PREF_DISPLAYED_FRE_OR_SECOND_RUN_PROMO =
"displayed_data_reduction_promo";
/**
* Key used to save the time in milliseconds since epoch that the first run experience or second
* run promo was shown.
*/
private static final String SHARED_PREF_DISPLAYED_FRE_OR_SECOND_PROMO_TIME_MS =
"displayed_data_reduction_promo_time_ms";
/**
* Key used to save the Chrome version the first run experience or second run promo was shown
* in.
*/
private static final String SHARED_PREF_DISPLAYED_FRE_OR_SECOND_PROMO_VERSION =
"displayed_data_reduction_promo_version";
/**
* Key used to save whether the user opted out of the data reduction proxy in the FRE promo.
*/
private static final String SHARED_PREF_FRE_PROMO_OPT_OUT = "fre_promo_opt_out";
/**
* Key used to save whether the infobar promo has been shown.
*/
private static final String SHARED_PREF_DISPLAYED_INFOBAR_PROMO =
"displayed_data_reduction_infobar_promo";
/**
* Key used to save the Chrome version the infobar promo was shown in.
*/
private static final String SHARED_PREF_DISPLAYED_INFOBAR_PROMO_VERSION =
"displayed_data_reduction_infobar_promo_version";
/**
* Key used to save the saved bytes when the milestone promo was last shown. This value is
* initialized to the bytes saved for data saver users that had data saver turned on when this
* pref was added. This prevents us from showing promo for savings that have already happened
* for existing users.
* Note: For historical reasons, this pref key is misnamed. This promotion used to be conveyed
* in a snackbar but was moved to an IPH in M74.
*/
private static final String SHARED_PREF_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES =
"displayed_data_reduction_snackbar_promo_saved_bytes";
/** /**
* Returns whether any of the data reduction proxy promotions can be displayed. Checks if the * Returns whether any of the data reduction proxy promotions can be displayed. Checks if the
...@@ -77,14 +37,13 @@ public class DataReductionPromoUtils { ...@@ -77,14 +37,13 @@ public class DataReductionPromoUtils {
* run promo screen has been displayed at the current time. * run promo screen has been displayed at the current time.
*/ */
public static void saveFreOrSecondRunPromoDisplayed() { public static void saveFreOrSecondRunPromoDisplayed() {
ContextUtils.getAppSharedPreferences() SharedPreferencesManager prefs = SharedPreferencesManager.getInstance();
.edit() prefs.writeBoolean(
.putBoolean(SHARED_PREF_DISPLAYED_FRE_OR_SECOND_RUN_PROMO, true) ChromePreferenceKeys.DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_RUN_PROMO, true);
.putLong(SHARED_PREF_DISPLAYED_FRE_OR_SECOND_PROMO_TIME_MS, prefs.writeLong(ChromePreferenceKeys.DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_PROMO_TIME_MS,
System.currentTimeMillis()) System.currentTimeMillis());
.putString(SHARED_PREF_DISPLAYED_FRE_OR_SECOND_PROMO_VERSION, prefs.writeString(ChromePreferenceKeys.DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_PROMO_VERSION,
AboutSettingsBridge.getApplicationVersion()) AboutSettingsBridge.getApplicationVersion());
.apply();
} }
/** /**
...@@ -94,8 +53,8 @@ public class DataReductionPromoUtils { ...@@ -94,8 +53,8 @@ public class DataReductionPromoUtils {
* @return Whether the data reduction proxy promo has been displayed. * @return Whether the data reduction proxy promo has been displayed.
*/ */
public static boolean getDisplayedFreOrSecondRunPromo() { public static boolean getDisplayedFreOrSecondRunPromo() {
return ContextUtils.getAppSharedPreferences().getBoolean( return SharedPreferencesManager.getInstance().readBoolean(
SHARED_PREF_DISPLAYED_FRE_OR_SECOND_RUN_PROMO, false); ChromePreferenceKeys.DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_RUN_PROMO, false);
} }
/** /**
...@@ -105,8 +64,8 @@ public class DataReductionPromoUtils { ...@@ -105,8 +64,8 @@ public class DataReductionPromoUtils {
* @return The version the data reduction proxy promo was displayed on. * @return The version the data reduction proxy promo was displayed on.
*/ */
public static String getDisplayedFreOrSecondRunPromoVersion() { public static String getDisplayedFreOrSecondRunPromoVersion() {
return ContextUtils.getAppSharedPreferences().getString( return SharedPreferencesManager.getInstance().readString(
SHARED_PREF_DISPLAYED_FRE_OR_SECOND_PROMO_VERSION, ""); ChromePreferenceKeys.DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_PROMO_VERSION, "");
} }
/** /**
...@@ -116,10 +75,8 @@ public class DataReductionPromoUtils { ...@@ -116,10 +75,8 @@ public class DataReductionPromoUtils {
* @param optOut Whether the user opted out of using the data reduction proxy. * @param optOut Whether the user opted out of using the data reduction proxy.
*/ */
public static void saveFrePromoOptOut(boolean optOut) { public static void saveFrePromoOptOut(boolean optOut) {
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeBoolean(
.edit() ChromePreferenceKeys.DATA_REDUCTION_FRE_PROMO_OPT_OUT, optOut);
.putBoolean(SHARED_PREF_FRE_PROMO_OPT_OUT, optOut)
.apply();
} }
/** /**
...@@ -129,8 +86,8 @@ public class DataReductionPromoUtils { ...@@ -129,8 +86,8 @@ public class DataReductionPromoUtils {
* @return Whether the user opted out of the data reduction proxy first run experience promo. * @return Whether the user opted out of the data reduction proxy first run experience promo.
*/ */
public static boolean getOptedOutOnFrePromo() { public static boolean getOptedOutOnFrePromo() {
return ContextUtils.getAppSharedPreferences().getBoolean( return SharedPreferencesManager.getInstance().readBoolean(
SHARED_PREF_FRE_PROMO_OPT_OUT, false); ChromePreferenceKeys.DATA_REDUCTION_FRE_PROMO_OPT_OUT, false);
} }
/** /**
...@@ -138,12 +95,10 @@ public class DataReductionPromoUtils { ...@@ -138,12 +95,10 @@ public class DataReductionPromoUtils {
* at the current time. * at the current time.
*/ */
public static void saveInfoBarPromoDisplayed() { public static void saveInfoBarPromoDisplayed() {
ContextUtils.getAppSharedPreferences() SharedPreferencesManager prefs = SharedPreferencesManager.getInstance();
.edit() prefs.writeBoolean(ChromePreferenceKeys.DATA_REDUCTION_DISPLAYED_INFOBAR_PROMO, true);
.putBoolean(SHARED_PREF_DISPLAYED_INFOBAR_PROMO, true) prefs.writeString(ChromePreferenceKeys.DATA_REDUCTION_DISPLAYED_INFOBAR_PROMO_VERSION,
.putString(SHARED_PREF_DISPLAYED_INFOBAR_PROMO_VERSION, AboutSettingsBridge.getApplicationVersion());
AboutSettingsBridge.getApplicationVersion())
.apply();
} }
/** /**
...@@ -152,16 +107,15 @@ public class DataReductionPromoUtils { ...@@ -152,16 +107,15 @@ public class DataReductionPromoUtils {
* @return Whether the data reduction proxy infobar promo has been displayed. * @return Whether the data reduction proxy infobar promo has been displayed.
*/ */
public static boolean getDisplayedInfoBarPromo() { public static boolean getDisplayedInfoBarPromo() {
return ContextUtils.getAppSharedPreferences().getBoolean( return SharedPreferencesManager.getInstance().readBoolean(
SHARED_PREF_DISPLAYED_INFOBAR_PROMO, false); ChromePreferenceKeys.DATA_REDUCTION_DISPLAYED_INFOBAR_PROMO, false);
} }
/** See {@link #SHARED_PREF_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES}. */ /** See {@link ChromePreferenceKeys#DATA_REDUCTION_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES}. */
public static void saveMilestonePromoDisplayed(long dataSavingsInBytes) { public static void saveMilestonePromoDisplayed(long dataSavingsInBytes) {
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeLong(
.edit() ChromePreferenceKeys.DATA_REDUCTION_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES,
.putLong(SHARED_PREF_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES, dataSavingsInBytes) dataSavingsInBytes);
.apply();
} }
/** /**
...@@ -170,8 +124,8 @@ public class DataReductionPromoUtils { ...@@ -170,8 +124,8 @@ public class DataReductionPromoUtils {
* @return The data savings in bytes, or -1 if the promo has not been displayed before. * @return The data savings in bytes, or -1 if the promo has not been displayed before.
*/ */
public static long getDisplayedMilestonePromoSavedBytes() { public static long getDisplayedMilestonePromoSavedBytes() {
return ContextUtils.getAppSharedPreferences().getLong( return SharedPreferencesManager.getInstance().readLong(
SHARED_PREF_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES, -1); ChromePreferenceKeys.DATA_REDUCTION_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES, -1);
} }
/** /**
...@@ -181,7 +135,7 @@ public class DataReductionPromoUtils { ...@@ -181,7 +135,7 @@ public class DataReductionPromoUtils {
* @return Whether that the starting saved bytes have been initialized. * @return Whether that the starting saved bytes have been initialized.
*/ */
public static boolean hasMilestonePromoBeenInitWithStartingSavedBytes() { public static boolean hasMilestonePromoBeenInitWithStartingSavedBytes() {
return ContextUtils.getAppSharedPreferences().contains( return SharedPreferencesManager.getInstance().contains(
SHARED_PREF_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES); ChromePreferenceKeys.DATA_REDUCTION_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES);
} }
} }
...@@ -9,11 +9,12 @@ import android.content.Context; ...@@ -9,11 +9,12 @@ import android.content.Context;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.ContextUtils;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative; import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.NativeMethods; import org.chromium.base.annotations.NativeMethods;
import org.chromium.chrome.browser.datareduction.DataReductionPromoUtils; import org.chromium.chrome.browser.datareduction.DataReductionPromoUtils;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.settings.datareduction.DataReductionDataUseItem; import org.chromium.chrome.browser.settings.datareduction.DataReductionDataUseItem;
import org.chromium.chrome.browser.settings.datareduction.DataReductionProxySavingsClearedReason; import org.chromium.chrome.browser.settings.datareduction.DataReductionProxySavingsClearedReason;
import org.chromium.chrome.browser.settings.datareduction.DataReductionStatsPreference; import org.chromium.chrome.browser.settings.datareduction.DataReductionStatsPreference;
...@@ -60,14 +61,8 @@ public class DataReductionProxySettings { ...@@ -60,14 +61,8 @@ public class DataReductionProxySettings {
@VisibleForTesting @VisibleForTesting
public static final String DATA_REDUCTION_PROXY_ENABLED_KEY = "Data Reduction Proxy Enabled"; public static final String DATA_REDUCTION_PROXY_ENABLED_KEY = "Data Reduction Proxy Enabled";
// Visible for backup and restore
public static final String DATA_REDUCTION_ENABLED_PREF = "BANDWIDTH_REDUCTION_PROXY_ENABLED";
private static DataReductionProxySettings sSettings; private static DataReductionProxySettings sSettings;
public static final String DATA_REDUCTION_FIRST_ENABLED_TIME =
"BANDWIDTH_REDUCTION_FIRST_ENABLED_TIME";
// The saved data threshold for showing the Lite mode menu footer. // The saved data threshold for showing the Lite mode menu footer.
private static final long DATA_REDUCTION_MAIN_MENU_ITEM_SAVED_KB_THRESHOLD = 100; private static final long DATA_REDUCTION_MAIN_MENU_ITEM_SAVED_KB_THRESHOLD = 100;
...@@ -98,8 +93,8 @@ public class DataReductionProxySettings { ...@@ -98,8 +93,8 @@ public class DataReductionProxySettings {
private static void reconcileDataReductionProxyEnabledState() { private static void reconcileDataReductionProxyEnabledState() {
ThreadUtils.assertOnUiThread(); ThreadUtils.assertOnUiThread();
boolean enabled = getInstance().isDataReductionProxyEnabled(); boolean enabled = getInstance().isDataReductionProxyEnabled();
ContextUtils.getAppSharedPreferences().edit() SharedPreferencesManager.getInstance().writeBoolean(
.putBoolean(DATA_REDUCTION_ENABLED_PREF, enabled).apply(); ChromePreferenceKeys.DATA_REDUCTION_ENABLED_PREF, enabled);
} }
/** /**
...@@ -156,16 +151,15 @@ public class DataReductionProxySettings { ...@@ -156,16 +151,15 @@ public class DataReductionProxySettings {
*/ */
public void setDataReductionProxyEnabled(Context context, boolean enabled) { public void setDataReductionProxyEnabled(Context context, boolean enabled) {
if (enabled if (enabled
&& ContextUtils.getAppSharedPreferences().getLong( && SharedPreferencesManager.getInstance().readLong(
DATA_REDUCTION_FIRST_ENABLED_TIME, 0) ChromePreferenceKeys.DATA_REDUCTION_FIRST_ENABLED_TIME, 0)
== 0) { == 0) {
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeLong(
.edit() ChromePreferenceKeys.DATA_REDUCTION_FIRST_ENABLED_TIME,
.putLong(DATA_REDUCTION_FIRST_ENABLED_TIME, System.currentTimeMillis()) System.currentTimeMillis());
.apply();
} }
ContextUtils.getAppSharedPreferences().edit() SharedPreferencesManager.getInstance().writeBoolean(
.putBoolean(DATA_REDUCTION_ENABLED_PREF, enabled).apply(); ChromePreferenceKeys.DATA_REDUCTION_ENABLED_PREF, enabled);
DataReductionProxySettingsJni.get().setDataReductionProxyEnabled( DataReductionProxySettingsJni.get().setDataReductionProxyEnabled(
mNativeDataReductionProxySettings, DataReductionProxySettings.this, enabled); mNativeDataReductionProxySettings, DataReductionProxySettings.this, enabled);
} }
...@@ -207,7 +201,8 @@ public class DataReductionProxySettings { ...@@ -207,7 +201,8 @@ public class DataReductionProxySettings {
* @return The time that the proxy was first enabled in milliseconds since the epoch. * @return The time that the proxy was first enabled in milliseconds since the epoch.
*/ */
public long getDataReductionProxyFirstEnabledTime() { public long getDataReductionProxyFirstEnabledTime() {
return ContextUtils.getAppSharedPreferences().getLong(DATA_REDUCTION_FIRST_ENABLED_TIME, 0); return SharedPreferencesManager.getInstance().readLong(
ChromePreferenceKeys.DATA_REDUCTION_FIRST_ENABLED_TIME, 0);
} }
/** /**
...@@ -218,10 +213,8 @@ public class DataReductionProxySettings { ...@@ -218,10 +213,8 @@ public class DataReductionProxySettings {
// When the data saving statistics are cleared, reset the milestone promo that tells the // When the data saving statistics are cleared, reset the milestone promo that tells the
// user how much data they have saved using Data Saver so far. // user how much data they have saved using Data Saver so far.
DataReductionPromoUtils.saveMilestonePromoDisplayed(0); DataReductionPromoUtils.saveMilestonePromoDisplayed(0);
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeLong(
.edit() ChromePreferenceKeys.DATA_REDUCTION_FIRST_ENABLED_TIME, System.currentTimeMillis());
.putLong(DATA_REDUCTION_FIRST_ENABLED_TIME, System.currentTimeMillis())
.apply();
DataReductionProxySettingsJni.get().clearDataSavingStatistics( DataReductionProxySettingsJni.get().clearDataSavingStatistics(
mNativeDataReductionProxySettings, DataReductionProxySettings.this, reason); mNativeDataReductionProxySettings, DataReductionProxySettings.this, reason);
} }
......
...@@ -31,11 +31,12 @@ import android.widget.TextView; ...@@ -31,11 +31,12 @@ import android.widget.TextView;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.datareduction.DataReductionProxyUma; import org.chromium.chrome.browser.datareduction.DataReductionProxyUma;
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.util.ConversionUtils; import org.chromium.chrome.browser.util.ConversionUtils;
import org.chromium.chrome.browser.util.FileSizeUtil; import org.chromium.chrome.browser.util.FileSizeUtil;
import org.chromium.third_party.android.datausagechart.ChartDataUsageView; import org.chromium.third_party.android.datausagechart.ChartDataUsageView;
...@@ -53,13 +54,6 @@ import java.util.TimeZone; ...@@ -53,13 +54,6 @@ import java.util.TimeZone;
public class DataReductionStatsPreference extends Preference { public class DataReductionStatsPreference extends Preference {
private static final String TAG = "DataSaverStats"; private static final String TAG = "DataSaverStats";
/**
* Key used to save the date on which the site breakdown should be shown. If the user has
* historical data saver stats, the site breakdown cannot be shown for MAXIMUM_DAYS_IN_CHART.
*/
private static final String PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE =
"data_reduction_site_breakdown_allowed_date";
private NetworkStatsHistory mOriginalNetworkStatsHistory; private NetworkStatsHistory mOriginalNetworkStatsHistory;
private NetworkStatsHistory mReceivedNetworkStatsHistory; private NetworkStatsHistory mReceivedNetworkStatsHistory;
private List<DataReductionDataUseItem> mSiteBreakdownItems; private List<DataReductionDataUseItem> mSiteBreakdownItems;
...@@ -93,8 +87,8 @@ public class DataReductionStatsPreference extends Preference { ...@@ -93,8 +87,8 @@ public class DataReductionStatsPreference extends Preference {
*/ */
public static void initializeDataReductionSiteBreakdownPref() { public static void initializeDataReductionSiteBreakdownPref() {
// If the site breakdown pref has already been set, don't set it. // If the site breakdown pref has already been set, don't set it.
if (ContextUtils.getAppSharedPreferences().contains( if (SharedPreferencesManager.getInstance().contains(
PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE)) { ChromePreferenceKeys.DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE)) {
return; return;
} }
...@@ -107,11 +101,9 @@ public class DataReductionStatsPreference extends Preference { ...@@ -107,11 +101,9 @@ public class DataReductionStatsPreference extends Preference {
long timeChartCanBeShown = long timeChartCanBeShown =
lastUpdateTimeMillis + MAXIMUM_DAYS_IN_CHART * DateUtils.DAY_IN_MILLIS; lastUpdateTimeMillis + MAXIMUM_DAYS_IN_CHART * DateUtils.DAY_IN_MILLIS;
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeLong(
.edit() ChromePreferenceKeys.DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE,
.putLong(PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, timeChartCanBeShown > now ? timeChartCanBeShown : now);
timeChartCanBeShown > now ? timeChartCanBeShown : now)
.apply();
} }
public DataReductionStatsPreference(Context context, AttributeSet attrs) { public DataReductionStatsPreference(Context context, AttributeSet attrs) {
...@@ -175,9 +167,9 @@ public class DataReductionStatsPreference extends Preference { ...@@ -175,9 +167,9 @@ public class DataReductionStatsPreference extends Preference {
+ numDaysSinceStatsUpdated.intValue() * DateUtils.DAY_IN_MILLIS; + numDaysSinceStatsUpdated.intValue() * DateUtils.DAY_IN_MILLIS;
if (mShouldShowRealData && mDataReductionBreakdownView != null if (mShouldShowRealData && mDataReductionBreakdownView != null
&& currentTimeMillis > ContextUtils.getAppSharedPreferences().getLong( && currentTimeMillis > SharedPreferencesManager.getInstance().readLong(
PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, ChromePreferenceKeys.DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE,
Long.MAX_VALUE)) { Long.MAX_VALUE)) {
DataReductionProxySettings.getInstance().queryDataUsage( DataReductionProxySettings.getInstance().queryDataUsage(
mNumDaysInChart, new Callback<List<DataReductionDataUseItem>>() { mNumDaysInChart, new Callback<List<DataReductionDataUseItem>>() {
@Override @Override
...@@ -346,15 +338,15 @@ public class DataReductionStatsPreference extends Preference { ...@@ -346,15 +338,15 @@ public class DataReductionStatsPreference extends Preference {
// historical data, reset that state so that the site breakdown can // historical data, reset that state so that the site breakdown can
// now be shown. // now be shown.
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
if (ContextUtils.getAppSharedPreferences().getLong( if (SharedPreferencesManager.getInstance().readLong(
PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, ChromePreferenceKeys
.DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE,
Long.MAX_VALUE) Long.MAX_VALUE)
> now) { > now) {
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeLong(
.edit() ChromePreferenceKeys
.putLong(PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, .DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE,
now) now);
.apply();
} }
DataReductionProxySettings.getInstance().clearDataSavingStatistics( DataReductionProxySettings.getInstance().clearDataSavingStatistics(
DataReductionProxySavingsClearedReason DataReductionProxySavingsClearedReason
......
...@@ -26,6 +26,8 @@ import org.chromium.base.test.BaseJUnit4ClassRunner; ...@@ -26,6 +26,8 @@ import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.AdvancedMockContext; import org.chromium.base.test.util.AdvancedMockContext;
import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Feature;
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.test.ChromeBrowserTestRule; import org.chromium.chrome.test.ChromeBrowserTestRule;
/** /**
...@@ -104,10 +106,10 @@ public class DataReductionStatsPreferenceTest { ...@@ -104,10 +106,10 @@ public class DataReductionStatsPreferenceTest {
DataReductionStatsPreference.initializeDataReductionSiteBreakdownPref(); DataReductionStatsPreference.initializeDataReductionSiteBreakdownPref();
long afterTime = System.currentTimeMillis(); long afterTime = System.currentTimeMillis();
Assert.assertTrue(ContextUtils.getAppSharedPreferences().getLong( Assert.assertTrue(SharedPreferencesManager.getInstance().readLong(
PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1) PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1)
>= beforeTime); >= beforeTime);
Assert.assertTrue(ContextUtils.getAppSharedPreferences().getLong( Assert.assertTrue(SharedPreferencesManager.getInstance().readLong(
PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1) PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1)
<= afterTime); <= afterTime);
...@@ -116,10 +118,10 @@ public class DataReductionStatsPreferenceTest { ...@@ -116,10 +118,10 @@ public class DataReductionStatsPreferenceTest {
DataReductionStatsPreference.initializeDataReductionSiteBreakdownPref(); DataReductionStatsPreference.initializeDataReductionSiteBreakdownPref();
// Pref should still be the same value as before. // Pref should still be the same value as before.
Assert.assertTrue(ContextUtils.getAppSharedPreferences().getLong( Assert.assertTrue(SharedPreferencesManager.getInstance().readLong(
PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1) PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1)
>= beforeTime); >= beforeTime);
Assert.assertTrue(ContextUtils.getAppSharedPreferences().getLong( Assert.assertTrue(SharedPreferencesManager.getInstance().readLong(
PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1) PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1)
<= afterTime); <= afterTime);
} }
...@@ -141,7 +143,7 @@ public class DataReductionStatsPreferenceTest { ...@@ -141,7 +143,7 @@ public class DataReductionStatsPreferenceTest {
DataReductionStatsPreference.initializeDataReductionSiteBreakdownPref(); DataReductionStatsPreference.initializeDataReductionSiteBreakdownPref();
Assert.assertEquals(lastUpdateInMillis + DAYS_IN_CHART * DateUtils.DAY_IN_MILLIS, Assert.assertEquals(lastUpdateInMillis + DAYS_IN_CHART * DateUtils.DAY_IN_MILLIS,
ContextUtils.getAppSharedPreferences().getLong( SharedPreferencesManager.getInstance().readLong(
PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1)); PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1));
} }
...@@ -160,10 +162,10 @@ public class DataReductionStatsPreferenceTest { ...@@ -160,10 +162,10 @@ public class DataReductionStatsPreferenceTest {
DataReductionStatsPreference.initializeDataReductionSiteBreakdownPref(); DataReductionStatsPreference.initializeDataReductionSiteBreakdownPref();
long afterTime = System.currentTimeMillis(); long afterTime = System.currentTimeMillis();
Assert.assertTrue(ContextUtils.getAppSharedPreferences().getLong( Assert.assertTrue(SharedPreferencesManager.getInstance().readLong(
PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1) PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1)
>= beforeTime); >= beforeTime);
Assert.assertTrue(ContextUtils.getAppSharedPreferences().getLong( Assert.assertTrue(SharedPreferencesManager.getInstance().readLong(
PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1) PREF_DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE, -1)
<= afterTime); <= afterTime);
} }
...@@ -181,11 +183,8 @@ public class DataReductionStatsPreferenceTest { ...@@ -181,11 +183,8 @@ public class DataReductionStatsPreferenceTest {
long lastUpdateTime = now - DateUtils.DAY_IN_MILLIS; long lastUpdateTime = now - DateUtils.DAY_IN_MILLIS;
long dataSaverEnableTime = now - DateUtils.HOUR_IN_MILLIS; long dataSaverEnableTime = now - DateUtils.HOUR_IN_MILLIS;
mSettings.setDataReductionLastUpdateTime(lastUpdateTime); mSettings.setDataReductionLastUpdateTime(lastUpdateTime);
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeLong(
.edit() ChromePreferenceKeys.DATA_REDUCTION_FIRST_ENABLED_TIME, dataSaverEnableTime);
.putLong(DataReductionProxySettings.DATA_REDUCTION_FIRST_ENABLED_TIME,
dataSaverEnableTime)
.apply();
pref.updateReductionStatistics(now); pref.updateReductionStatistics(now);
Assert.assertEquals(MINIMUM_DAYS_IN_CHART, pref.getNumDaysInChart()); Assert.assertEquals(MINIMUM_DAYS_IN_CHART, pref.getNumDaysInChart());
...@@ -204,11 +203,8 @@ public class DataReductionStatsPreferenceTest { ...@@ -204,11 +203,8 @@ public class DataReductionStatsPreferenceTest {
long lastUpdateTime = now - DateUtils.DAY_IN_MILLIS; long lastUpdateTime = now - DateUtils.DAY_IN_MILLIS;
long dataSaverEnableTime = now - DateUtils.DAY_IN_MILLIS; long dataSaverEnableTime = now - DateUtils.DAY_IN_MILLIS;
mSettings.setDataReductionLastUpdateTime(lastUpdateTime); mSettings.setDataReductionLastUpdateTime(lastUpdateTime);
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeLong(
.edit() ChromePreferenceKeys.DATA_REDUCTION_FIRST_ENABLED_TIME, dataSaverEnableTime);
.putLong(DataReductionProxySettings.DATA_REDUCTION_FIRST_ENABLED_TIME,
dataSaverEnableTime)
.apply();
pref.updateReductionStatistics(now); pref.updateReductionStatistics(now);
Assert.assertEquals(MINIMUM_DAYS_IN_CHART, pref.getNumDaysInChart()); Assert.assertEquals(MINIMUM_DAYS_IN_CHART, pref.getNumDaysInChart());
...@@ -227,11 +223,8 @@ public class DataReductionStatsPreferenceTest { ...@@ -227,11 +223,8 @@ public class DataReductionStatsPreferenceTest {
long lastUpdateTime = now - DateUtils.DAY_IN_MILLIS; long lastUpdateTime = now - DateUtils.DAY_IN_MILLIS;
long dataSaverEnableTime = now - 31 * DateUtils.DAY_IN_MILLIS; long dataSaverEnableTime = now - 31 * DateUtils.DAY_IN_MILLIS;
mSettings.setDataReductionLastUpdateTime(lastUpdateTime); mSettings.setDataReductionLastUpdateTime(lastUpdateTime);
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeLong(
.edit() ChromePreferenceKeys.DATA_REDUCTION_FIRST_ENABLED_TIME, dataSaverEnableTime);
.putLong(DataReductionProxySettings.DATA_REDUCTION_FIRST_ENABLED_TIME,
dataSaverEnableTime)
.apply();
pref.updateReductionStatistics(now); pref.updateReductionStatistics(now);
Assert.assertEquals(MAXIMUM_DAYS_IN_CHART, pref.getNumDaysInChart()); Assert.assertEquals(MAXIMUM_DAYS_IN_CHART, pref.getNumDaysInChart());
...@@ -252,11 +245,8 @@ public class DataReductionStatsPreferenceTest { ...@@ -252,11 +245,8 @@ public class DataReductionStatsPreferenceTest {
int numDaysDataSaverEnabled = 10; int numDaysDataSaverEnabled = 10;
long dataSaverEnableTime = now - numDaysDataSaverEnabled * DateUtils.DAY_IN_MILLIS; long dataSaverEnableTime = now - numDaysDataSaverEnabled * DateUtils.DAY_IN_MILLIS;
mSettings.setDataReductionLastUpdateTime(lastUpdateTime); mSettings.setDataReductionLastUpdateTime(lastUpdateTime);
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeLong(
.edit() ChromePreferenceKeys.DATA_REDUCTION_FIRST_ENABLED_TIME, dataSaverEnableTime);
.putLong(DataReductionProxySettings.DATA_REDUCTION_FIRST_ENABLED_TIME,
dataSaverEnableTime)
.apply();
pref.updateReductionStatistics(now); pref.updateReductionStatistics(now);
Assert.assertEquals(numDaysDataSaverEnabled + 1, pref.getNumDaysInChart()); Assert.assertEquals(numDaysDataSaverEnabled + 1, pref.getNumDaysInChart());
...@@ -272,11 +262,8 @@ public class DataReductionStatsPreferenceTest { ...@@ -272,11 +262,8 @@ public class DataReductionStatsPreferenceTest {
long lastUpdateTime = now - DateUtils.DAY_IN_MILLIS; long lastUpdateTime = now - DateUtils.DAY_IN_MILLIS;
long dataSaverEnableTime = now - DateUtils.HOUR_IN_MILLIS; long dataSaverEnableTime = now - DateUtils.HOUR_IN_MILLIS;
mSettings.setDataReductionLastUpdateTime(lastUpdateTime); mSettings.setDataReductionLastUpdateTime(lastUpdateTime);
ContextUtils.getAppSharedPreferences() SharedPreferencesManager.getInstance().writeLong(
.edit() ChromePreferenceKeys.DATA_REDUCTION_FIRST_ENABLED_TIME, dataSaverEnableTime);
.putLong(DataReductionProxySettings.DATA_REDUCTION_FIRST_ENABLED_TIME,
dataSaverEnableTime)
.apply();
// User has only used 50KB so far. // User has only used 50KB so far.
mSettings.setReceivedNetworkStatsHistory(new long[] {50 * 1024}); mSettings.setReceivedNetworkStatsHistory(new long[] {50 * 1024});
......
...@@ -285,6 +285,60 @@ public final class ChromePreferenceKeys { ...@@ -285,6 +285,60 @@ public final class ChromePreferenceKeys {
public static final String FIRST_RUN_FLOW_SIGNIN_SETUP = "first_run_signin_setup"; public static final String FIRST_RUN_FLOW_SIGNIN_SETUP = "first_run_signin_setup";
public static final String FIRST_RUN_FLOW_SIGNIN_ACCOUNT_NAME = "first_run_signin_account_name"; public static final String FIRST_RUN_FLOW_SIGNIN_ACCOUNT_NAME = "first_run_signin_account_name";
/**
* Key used to save the date on which the site breakdown should be shown. If the user has
* historical data saver stats, the site breakdown cannot be shown for MAXIMUM_DAYS_IN_CHART.
*/
public static final String DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE =
"data_reduction_site_breakdown_allowed_date";
/**
* Key used to save whether the first run experience or second run promo screen has been shown.
*/
public static final String DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_RUN_PROMO =
"displayed_data_reduction_promo";
/**
* Key used to save the time in milliseconds since epoch that the first run experience or second
* run promo was shown.
*/
public static final String DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_PROMO_TIME_MS =
"displayed_data_reduction_promo_time_ms";
/**
* Key used to save the Chrome version the first run experience or second run promo was shown
* in.
*/
public static final String DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_PROMO_VERSION =
"displayed_data_reduction_promo_version";
/**
* Key used to save whether the user opted out of the data reduction proxy in the FRE promo.
*/
public static final String DATA_REDUCTION_FRE_PROMO_OPT_OUT = "fre_promo_opt_out";
/**
* Key used to save whether the infobar promo has been shown.
*/
public static final String DATA_REDUCTION_DISPLAYED_INFOBAR_PROMO =
"displayed_data_reduction_infobar_promo";
/**
* Key used to save the Chrome version the infobar promo was shown in.
*/
public static final String DATA_REDUCTION_DISPLAYED_INFOBAR_PROMO_VERSION =
"displayed_data_reduction_infobar_promo_version";
/**
* Key used to save the saved bytes when the milestone promo was last shown. This value is
* initialized to the bytes saved for data saver users that had data saver turned on when this
* pref was added. This prevents us from showing promo for savings that have already happened
* for existing users.
* Note: For historical reasons, this pref key is misnamed. This promotion used to be conveyed
* in a snackbar but was moved to an IPH in M74.
*/
public static final String DATA_REDUCTION_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES =
"displayed_data_reduction_snackbar_promo_saved_bytes";
// Visible for backup and restore
public static final String DATA_REDUCTION_ENABLED_PREF = "BANDWIDTH_REDUCTION_PROXY_ENABLED";
public static final String DATA_REDUCTION_FIRST_ENABLED_TIME =
"BANDWIDTH_REDUCTION_FIRST_ENABLED_TIME";
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
// Keys representing cached feature flags // // Keys representing cached feature flags //
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
...@@ -503,6 +557,16 @@ public final class ChromePreferenceKeys { ...@@ -503,6 +557,16 @@ public final class ChromePreferenceKeys {
FIRST_RUN_FLOW_SIGNIN_COMPLETE, FIRST_RUN_FLOW_SIGNIN_COMPLETE,
FIRST_RUN_FLOW_SIGNIN_SETUP, FIRST_RUN_FLOW_SIGNIN_SETUP,
FIRST_RUN_FLOW_SIGNIN_ACCOUNT_NAME, FIRST_RUN_FLOW_SIGNIN_ACCOUNT_NAME,
DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE,
DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_RUN_PROMO,
DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_PROMO_TIME_MS,
DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_PROMO_VERSION,
DATA_REDUCTION_FRE_PROMO_OPT_OUT,
DATA_REDUCTION_DISPLAYED_INFOBAR_PROMO,
DATA_REDUCTION_DISPLAYED_INFOBAR_PROMO_VERSION,
DATA_REDUCTION_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES,
DATA_REDUCTION_ENABLED_PREF,
DATA_REDUCTION_FIRST_ENABLED_TIME,
// Cached feature flags // Cached feature flags
SERVICE_MANAGER_FOR_DOWNLOAD_RESUMPTION_KEY, SERVICE_MANAGER_FOR_DOWNLOAD_RESUMPTION_KEY,
...@@ -640,6 +704,16 @@ public final class ChromePreferenceKeys { ...@@ -640,6 +704,16 @@ public final class ChromePreferenceKeys {
FIRST_RUN_FLOW_SIGNIN_COMPLETE, FIRST_RUN_FLOW_SIGNIN_COMPLETE,
FIRST_RUN_FLOW_SIGNIN_SETUP, FIRST_RUN_FLOW_SIGNIN_SETUP,
FIRST_RUN_FLOW_SIGNIN_ACCOUNT_NAME, FIRST_RUN_FLOW_SIGNIN_ACCOUNT_NAME,
DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE,
DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_RUN_PROMO,
DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_PROMO_TIME_MS,
DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_PROMO_VERSION,
DATA_REDUCTION_FRE_PROMO_OPT_OUT,
DATA_REDUCTION_DISPLAYED_INFOBAR_PROMO,
DATA_REDUCTION_DISPLAYED_INFOBAR_PROMO_VERSION,
DATA_REDUCTION_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES,
DATA_REDUCTION_ENABLED_PREF,
DATA_REDUCTION_FIRST_ENABLED_TIME,
// Cached feature flags // Cached feature flags
SERVICE_MANAGER_FOR_DOWNLOAD_RESUMPTION_KEY, SERVICE_MANAGER_FOR_DOWNLOAD_RESUMPTION_KEY,
......
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