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

Unified Diff: chrome/android/java_staging/src/org/chromium/chrome/browser/contextualsearch/DisableablePromoTapCounter.java

Issue 1206673003: Merge java_staging/src into java/src. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 6 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_staging/src/org/chromium/chrome/browser/contextualsearch/DisableablePromoTapCounter.java
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/contextualsearch/DisableablePromoTapCounter.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/contextualsearch/DisableablePromoTapCounter.java
deleted file mode 100644
index dc91d6e3bbe0364a0e1bd05279f96db4adc19b01..0000000000000000000000000000000000000000
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/contextualsearch/DisableablePromoTapCounter.java
+++ /dev/null
@@ -1,123 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.contextualsearch;
-
-import org.chromium.base.VisibleForTesting;
-import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
-
-/**
- * Manages the Contextual Search disable-able promo tap counter.
- * This counter stores a single persistent integer preference that can indicate both a count
- * and whether it's been disabled (and remembers the count before being disabled).
- */
-class DisableablePromoTapCounter {
-
- // --------------------------------------------------------------------------------------------
- // Opt-out style Promo counter
- //
- // The Opt-out style promo tap counter needs to do two things:
- // 1) Count Taps that trigger the promo, so they can be limited.
- // 2) Support a "disabled" state; when the user opens the panel then Taps trigger from then on.
- // We use a single persistent setting to record both meanings by using a negative value to
- // indicate disabled.
- // --------------------------------------------------------------------------------------------
-
- // Amount to bias a disabled value when making it negative (so 0 can be disabled).
- private static final int PROMO_TAPS_DISABLED_BIAS = -1;
-
- private static DisableablePromoTapCounter sInstance;
-
- private final ChromePreferenceManager mPrefsManager;
- private int mCounter;
-
- /**
- * Gets the singleton instance used to access the persistent counter.
- * @param prefsManager The ChromePreferenceManager to get prefs from.
- * @return the counter.
- */
- static DisableablePromoTapCounter getInstance(
- ChromePreferenceManager prefsManager) {
- if (sInstance == null) {
- sInstance = new DisableablePromoTapCounter(prefsManager);
- }
- return sInstance;
- }
-
- /**
- * Private constructor -- use {@link #getInstance} to get the singleton instance.
- * @param prefsManager The preferences manager to use.
- */
- private DisableablePromoTapCounter(ChromePreferenceManager prefsManager) {
- mPrefsManager = prefsManager;
- setRawCounter(prefsManager.getContextualSearchTapTriggeredPromoCount());
- }
-
- /**
- * @return whether the counter is currently enabled.
- */
- boolean isEnabled() {
- return mCounter >= 0;
- }
-
- /**
- * Disables the counter.
- */
- void disable() {
- if (isEnabled()) setRawCounter(getToggledCounter(mCounter));
- }
-
- /**
- * @return The current count (always non-negative).
- */
- int getCount() {
- if (isEnabled()) return mCounter;
-
- return getToggledCounter(mCounter);
- }
-
- /**
- * Increments the counter.
- */
- void increment() {
- assert isEnabled();
- setRawCounter(getCount() + 1);
- }
-
- /**
- * Resets the counter to zero and enabled.
- */
- @VisibleForTesting
- void reset() {
- setRawCounter(0);
- }
-
- /**
- * Sets the persistent storage to the given value.
- * @param rawCounter The raw value to write.
- */
- private void setRawCounter(int rawCounter) {
- mCounter = rawCounter;
- writeRawCounter();
- }
-
- /**
- * Writes the current counter's raw value to persistent storage.
- */
- private void writeRawCounter() {
- mPrefsManager.setContextualSearchTapTriggeredPromoCount(mCounter);
- }
-
- /**
- * Toggles the counter's raw value from the enabled to disabled state, or vice versa.
- * @param rawCounter The current raw counter value.
- * @return The toggled raw counter value.
- */
- private int getToggledCounter(int rawCounter) {
- // In order to encode a 0 value we need to introduce a bias when we create negative
- // raw values. Since -1 is a special value for some code, we make the bias big
- // enough that we'll never have a raw value of -1 (though that's not strictly needed).
- return PROMO_TAPS_DISABLED_BIAS - rawCounter;
- }
-}

Powered by Google App Engine
This is Rietveld 408576698