Index: chrome/android/java/src/org/chromium/chrome/browser/snackbar/LofiBarController.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/LofiBarController.java b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/LofiBarController.java |
deleted file mode 100644 |
index 6906a853cb358f2b64947d3309d5798a4ba8ee52..0000000000000000000000000000000000000000 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/LofiBarController.java |
+++ /dev/null |
@@ -1,174 +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.snackbar; |
- |
-import android.content.Context; |
- |
-import org.chromium.base.CommandLine; |
-import org.chromium.chrome.R; |
-import org.chromium.chrome.browser.ChromeSwitches; |
-import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; |
-import org.chromium.chrome.browser.preferences.datareduction.DataReductionProxyUma; |
-import org.chromium.chrome.browser.tab.EmptyTabObserver; |
-import org.chromium.chrome.browser.tab.Tab; |
-import org.chromium.chrome.browser.tab.TabObserver; |
- |
-/** |
- * Each time a tab loads with Lo-Fi this controller saves that tab id and title to the stack of |
- * SnackbarManager. It will then let SnackbarManager show a snackbar representing the top entry |
- * of the stack. |
- * <p/> |
- * When the load images button is clicked, it will reload the page without Lo-Fi. |
- */ |
-public class LofiBarController implements SnackbarManager.SnackbarController { |
- /** Snackbar types */ |
- private static final int LOFI_SNACKBAR = 0; |
- private static final int PREVIEW_SNACKBAR = 1; |
- |
- private static final int DEFAULT_LO_FI_SNACKBAR_SHOW_DURATION_MS = 6000; |
- private final SnackbarManager mSnackbarManager; |
- private final Context mContext; |
- private final boolean mDisabled; |
- private Tab mTab; |
- private TabObserver mTabObserver; |
- private boolean mLoFiPopupShownForPageLoad = false; |
- |
- /** |
- * Creates an instance of a {@link LofiBarController}. |
- * @param context The {@link Context} in which snackbar is shown. |
- * @param snackbarManager The manager that helps to show up snackbar. |
- */ |
- public LofiBarController(Context context, SnackbarManager snackbarManager) { |
- mSnackbarManager = snackbarManager; |
- mContext = context; |
- mDisabled = CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_LOFI_SNACKBAR); |
- } |
- |
- /** |
- * Called on new page loads to indicate that a Lo-Fi snackbar has not been shown yet. |
- */ |
- public void resetLoFiPopupShownForPageLoad() { |
- mLoFiPopupShownForPageLoad = false; |
- } |
- |
- /** |
- * If a Lo-Fi snackbar has not been shown for the current page load, creates a Lo-Fi snackbar |
- * for the given tab and shows it. If the tab is hidden, waits until it is visible to show the |
- * snackbar. |
- * |
- * @param tab The tab to show the snackbar on. |
- * @param isPreview Whether the snackbar should have the Lo-Fi preview message. |
- */ |
- public void maybeCreateLoFiBar(Tab tab, final boolean isPreview) { |
- if (mLoFiPopupShownForPageLoad) return; |
- mLoFiPopupShownForPageLoad = true; |
- if (tab.isHidden()) { |
- TabObserver tabObserver = new EmptyTabObserver() { |
- @Override |
- public void onShown(Tab tab) { |
- showLoFiBar(tab, isPreview); |
- tab.removeObserver(this); |
- } |
- }; |
- tab.addObserver(tabObserver); |
- } else { |
- showLoFiBar(tab, isPreview); |
- } |
- } |
- |
- /** |
- * @param tab The tab. Saved to reload the page. |
- */ |
- private void showLoFiBar(Tab tab, boolean isPreview) { |
- if (mDisabled) return; |
- mTab = tab; |
- |
- mTabObserver = new EmptyTabObserver() { |
- @Override |
- public void onHidden(Tab tab) { |
- dismissLoFiBar(); |
- } |
- |
- @Override |
- public void onDestroyed(Tab tab) { |
- dismissLoFiBar(); |
- } |
- |
- @Override |
- public void onDidStartProvisionalLoadForFrame(Tab tab, long frameId, |
- long parentFrameId, boolean isMainFrame, String validatedUrl, |
- boolean isErrorPage, boolean isIframeSrcdoc) { |
- // When a provisional load is started for the main frame, the boolean storing if |
- // the Lo-Fi snackbar has been shown is reset. If there was a previous Lo-Fi |
- // snackbar showing, remove it. |
- if (isMainFrame) dismissLoFiBar(); |
- } |
- |
- }; |
- tab.addObserver(mTabObserver); |
- |
- String message = mContext |
- .getString(isPreview ? R.string.data_reduction_lo_fi_preview_snackbar_message |
- : R.string.data_reduction_lo_fi_snackbar_message); |
- String buttonText = mContext |
- .getString(isPreview ? R.string.data_reduction_lo_fi_preview_snackbar_action |
- : R.string.data_reduction_lo_fi_snackbar_action); |
- |
- mSnackbarManager.showSnackbar( |
- Snackbar.make(message, this, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_LOFI) |
- .setAction(buttonText, isPreview ? PREVIEW_SNACKBAR : LOFI_SNACKBAR) |
- .setDuration(DEFAULT_LO_FI_SNACKBAR_SHOW_DURATION_MS)); |
- DataReductionProxySettings.getInstance().incrementLoFiSnackbarShown(); |
- DataReductionProxyUma.dataReductionProxyLoFiUIAction( |
- DataReductionProxyUma.ACTION_LOAD_IMAGES_SNACKBAR_SHOWN); |
- } |
- |
- /** |
- * Dismisses the snackbar. |
- */ |
- private void dismissLoFiBar() { |
- removeTabObserver(); |
- if (mSnackbarManager.isShowing()) mSnackbarManager.dismissSnackbars(this); |
- } |
- |
- /** |
- * Removes the TabObserver. |
- */ |
- private void removeTabObserver() { |
- mTab.removeObserver(mTabObserver); |
- mTabObserver = null; |
- } |
- |
- /** |
- * Reloads the page showing all images. |
- */ |
- @Override |
- public void onAction(Object actionData) { |
- removeTabObserver(); |
- |
- if (actionData == null) return; |
- int snackbarType = (int) actionData; |
- switch (snackbarType) { |
- case PREVIEW_SNACKBAR: |
- mTab.reloadDisableLoFi(); |
- break; |
- case LOFI_SNACKBAR: |
- mTab.reloadLoFiImages(); |
- break; |
- default: |
- assert false; |
- break; |
- } |
- |
- DataReductionProxySettings.getInstance().incrementLoFiUserRequestsForImages(); |
- DataReductionProxyUma.dataReductionProxyLoFiUIAction( |
- DataReductionProxyUma.ACTION_LOAD_IMAGES_SNACKBAR_CLICKED); |
- } |
- |
- @Override |
- public void onDismissNoAction(Object actionData) { |
- removeTabObserver(); |
- } |
-} |