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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java

Issue 2367403005: Snackbar for promoting Data Saver to existing users (Closed)
Patch Set: rename "data saving" to "data savings" for consistency Created 4 years, 2 months 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
Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
index 9866be882a9f1184963f5c2582fb6c23685b9c5f..bd42c899b2f21761abcb8cc876a5b76c512bd5fa 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
@@ -15,25 +15,44 @@ import org.chromium.chrome.browser.preferences.PrefServiceBridge.AboutVersionStr
*/
public class DataReductionPromoUtils {
/**
- * Keys used to save whether the first run experience or second run promo screen has been shown,
- * the time in milliseconds since epoch it was shown, the Chrome version it was shown in, and
- * whether the user opted out of the data reduction proxy in the FRE promo.
+ * 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";
-
/**
- * Keys used to save whether the infobar promo is shown and the Chrome version it was shown in.
+ * 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 snackbar 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.
+ */
+ private static final String SHARED_PREF_DISPLAYED_SNACKBAR_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
@@ -139,4 +158,33 @@ public class DataReductionPromoUtils {
return ContextUtils.getAppSharedPreferences().getBoolean(
SHARED_PREF_DISPLAYED_INFOBAR_PROMO, false);
}
+
+ /** See {@link #SHARED_PREF_DISPLAYED_SNACKBAR_PROMO_SAVED_BYTES}. */
+ public static void saveSnackbarPromoDisplayed(long dataSavingsInBytes) {
+ ContextUtils.getAppSharedPreferences()
+ .edit()
+ .putLong(SHARED_PREF_DISPLAYED_SNACKBAR_PROMO_SAVED_BYTES, dataSavingsInBytes)
+ .apply();
+ }
+
+ /**
+ * Returns the data savings in bytes from when the promo snackbar was last displayed.
+ *
+ * @return The data savings in bytes, or -1 if the promo has not been displayed before.
+ */
+ public static long getDisplayedSnackbarPromoSavedBytes() {
+ return ContextUtils.getAppSharedPreferences().getLong(
+ SHARED_PREF_DISPLAYED_SNACKBAR_PROMO_SAVED_BYTES, -1);
+ }
+
+ /**
+ * Returns a boolean indicating that the data savings in bytes on the first upgrade to the
+ * version that shows the snackbar has been initialized.
+ *
+ * @return Whether that the starting saved bytes have been initialized.
+ */
+ public static boolean hasSnackbarPromoBeenInitWithStartingSavedBytes() {
+ return ContextUtils.getAppSharedPreferences()
+ .contains(SHARED_PREF_DISPLAYED_SNACKBAR_PROMO_SAVED_BYTES);
+ }
}

Powered by Google App Engine
This is Rietveld 408576698