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

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

Issue 2400793003: [Signin] Update sign in promo triggering logic (Closed)
Patch Set: address comments 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/ChromePreferenceManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
index e31ceb4853da126205ed1ecf7f3ec58b9b63e44a..3e2c6948df064d6e35d290219b3767f2cf22c848 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
@@ -10,6 +10,7 @@ import android.content.SharedPreferences;
import org.chromium.base.ContextUtils;
import org.chromium.base.annotations.SuppressFBWarnings;
import org.chromium.chrome.browser.ChromeSwitches;
+import org.chromium.chrome.browser.ChromeVersionInfo;
import org.chromium.chrome.browser.crash.MinidumpUploadService.ProcessType;
import org.chromium.chrome.browser.util.FeatureUtilities;
@@ -23,7 +24,7 @@ public class ChromePreferenceManager {
private static final String TAG = "preferences";
private static final String PROMOS_SKIPPED_ON_FIRST_START = "promos_skipped_on_first_start";
- private static final String SIGNIN_PROMO_LAST_SHOWN = "signin_promo_last_timestamp_key";
+ private static final String SIGNIN_PROMO_LAST_SHOWN = "signin_promo_last_shown_chrome_version";
private static final String SHOW_SIGNIN_PROMO = "show_signin_promo";
private static final String ALLOW_LOW_END_DEVICE_UI = "allow_low_end_device_ui";
private static final String PREF_WEBSITE_SETTINGS_FILTER = "website_settings_filter";
@@ -51,9 +52,6 @@ public class ChromePreferenceManager {
private static final String SUCCESS_UPLOAD_SUFFIX = "_crash_success_upload";
private static final String FAILURE_UPLOAD_SUFFIX = "_crash_failure_upload";
- private static final int SIGNIN_PROMO_CYCLE_IN_DAYS = 120;
- private static final long MILLISECONDS_IN_DAY = 1000 * 60 * 60 * 24;
-
private static ChromePreferenceManager sPrefs;
private final SharedPreferences mSharedPreferences;
@@ -174,23 +172,28 @@ public class ChromePreferenceManager {
}
/**
- * Signin promo could be shown at most once every 12 weeks. This method checks
- * wheter the signin promo has already been shown in the current cycle.
- * @return Whether the signin promo has been shown in the current cycle.
+ * Signin promo could be shown at most once every at least 2 Chrome major versions. This method
+ * checks wheter the signin promo has already been shown in the current range.
+ * @return Whether the signin promo has been shown in the current range.
*/
public boolean getSigninPromoShown() {
- long signinPromoLastShown = mSharedPreferences.getLong(SIGNIN_PROMO_LAST_SHOWN, 0);
- long numDaysElapsed =
- (System.currentTimeMillis() - signinPromoLastShown) / MILLISECONDS_IN_DAY;
- return numDaysElapsed < SIGNIN_PROMO_CYCLE_IN_DAYS;
+ int lastMajorVersion = mSharedPreferences.getInt(SIGNIN_PROMO_LAST_SHOWN, 0);
+ if (lastMajorVersion == 0) {
+ setSigninPromoShown();
+ return true;
+ }
+
+ return ChromeVersionInfo.getProductMajorVersion() < lastMajorVersion + 2;
}
/**
- * Sets the preference for tracking when the signin promo was last shown.
+ * Sets the preference for tracking Chrome major version number when the signin promo was last
+ * shown.
*/
public void setSigninPromoShown() {
SharedPreferences.Editor sharedPreferencesEditor = mSharedPreferences.edit();
- sharedPreferencesEditor.putLong(SIGNIN_PROMO_LAST_SHOWN, System.currentTimeMillis());
+ sharedPreferencesEditor.putInt(
+ SIGNIN_PROMO_LAST_SHOWN, ChromeVersionInfo.getProductMajorVersion());
sharedPreferencesEditor.apply();
}

Powered by Google App Engine
This is Rietveld 408576698