Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
index 82b0d37d7c9e25e25badfb4c090e613bfeec7918..2620311b2d42aa68c489c0deae2d59be36336d83 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
@@ -87,6 +87,7 @@ import org.chromium.chrome.browser.metrics.StartupMetrics; |
import org.chromium.chrome.browser.metrics.UmaSessionStats; |
import org.chromium.chrome.browser.metrics.UmaUtils; |
import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; |
+import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; |
import org.chromium.chrome.browser.nfc.BeamController; |
import org.chromium.chrome.browser.nfc.BeamProvider; |
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; |
@@ -101,6 +102,7 @@ import org.chromium.chrome.browser.printing.PrintShareActivity; |
import org.chromium.chrome.browser.printing.TabPrinter; |
import org.chromium.chrome.browser.profiles.Profile; |
import org.chromium.chrome.browser.share.ShareHelper; |
+import org.chromium.chrome.browser.snackbar.DataReductionPromoSnackbarController; |
import org.chromium.chrome.browser.snackbar.DataUseSnackbarController; |
import org.chromium.chrome.browser.snackbar.SnackbarManager; |
import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable; |
@@ -222,6 +224,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
private ReaderModeManager mReaderModeManager; |
private SnackbarManager mSnackbarManager; |
private DataUseSnackbarController mDataUseSnackbarController; |
+ private DataReductionPromoSnackbarController mDataReductionPromoSnackbarController; |
private AppMenuPropertiesDelegate mAppMenuPropertiesDelegate; |
private AppMenuHandler mAppMenuHandler; |
private ToolbarManager mToolbarManager; |
@@ -472,6 +475,19 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
&& DataUseTabUIManager.checkAndResetDataUseTrackingEnded(tab)) { |
mDataUseSnackbarController.showDataUseTrackingEndedBar(); |
} |
+ |
+ // Only alert about data savings once the first paint has happened. It doesn't make |
+ // sense to show a snackbar about savings when nothing has been displayed yet. |
+ if (DataReductionProxySettings.getInstance().isSnackbarPromoAllowed(tab.getUrl())) { |
+ if (mDataReductionPromoSnackbarController == null) { |
+ mDataReductionPromoSnackbarController = |
+ new DataReductionPromoSnackbarController( |
+ getApplicationContext(), getSnackbarManager()); |
+ } |
+ mDataReductionPromoSnackbarController.maybeShowDataReductionPromoSnackbar( |
+ DataReductionProxySettings.getInstance() |
+ .getTotalHttpContentLengthSaved()); |
+ } |
} |
@Override |