Index: chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java |
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java |
index e6716e482cf6166bd331444db8fa8fe5692ac038..2a2f0ed6a17be07b5adc751f0c97f14ad3700665 100644 |
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java |
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java |
@@ -22,6 +22,9 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; |
import org.chromium.chrome.browser.contextualsearch.ContextualSearchObserver; |
import org.chromium.chrome.browser.dom_distiller.ReaderModePanel.ReaderModePanelHost; |
import org.chromium.chrome.browser.gsa.GSAContextDisplaySelection; |
+import org.chromium.chrome.browser.infobar.InfoBar; |
+import org.chromium.chrome.browser.infobar.InfoBarContainer; |
+import org.chromium.chrome.browser.infobar.InfoBarContainer.InfoBarContainerObserver; |
import org.chromium.chrome.browser.tab.ChromeTab; |
import org.chromium.components.dom_distiller.content.DistillablePageUtils; |
import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; |
@@ -35,7 +38,7 @@ import org.chromium.ui.base.DeviceFormFactor; |
* top controls when a reader mode page has finished loading. |
*/ |
public class ReaderModeManager extends EmptyTabObserver |
- implements ContextualSearchObserver, ReaderModePanelHost { |
+ implements ContextualSearchObserver, InfoBarContainerObserver, ReaderModePanelHost { |
/** |
* Observer for changes to the current status of reader mode. |
@@ -124,6 +127,8 @@ public class ReaderModeManager extends EmptyTabObserver |
ContextualSearchManager contextualSearchManager = getContextualSearchManager(tab); |
if (contextualSearchManager != null) contextualSearchManager.removeObserver(this); |
+ if (mTab.getInfoBarContainer() != null) mTab.getInfoBarContainer().removeObserver(this); |
+ |
if (mReaderModePanel != null) mReaderModePanel.onDestroy(); |
if (mWebContentsObserver != null) { |
@@ -150,6 +155,19 @@ public class ReaderModeManager extends EmptyTabObserver |
} |
ContextualSearchManager contextualSearchManager = getContextualSearchManager(tab); |
if (contextualSearchManager != null) contextualSearchManager.addObserver(this); |
+ |
+ if (tab.getInfoBarContainer() != null) tab.getInfoBarContainer().addObserver(this); |
+ } |
+ |
+ @Override |
+ public void onToggleFullscreenMode(Tab tab, boolean enable) { |
+ if (mReaderModePanel == null) return; |
+ |
+ if (enable) { |
+ mReaderModePanel.onEnterFullscreen(); |
+ } else { |
+ mReaderModePanel.onExitFullscreen(); |
+ } |
} |
// ContextualSearchObserver: |
@@ -163,6 +181,17 @@ public class ReaderModeManager extends EmptyTabObserver |
if (mReaderModePanel != null) mReaderModePanel.unhideButtonBar(); |
} |
+ // InfoBarContainerObserver: |
+ @Override |
+ public void onAddInfoBar(InfoBarContainer container, InfoBar infoBar, boolean isFirst) { |
+ if (isFirst && mReaderModePanel != null) mReaderModePanel.onShowInfobarContainer(); |
+ } |
+ |
+ @Override |
+ public void onRemoveInfoBar(InfoBarContainer container, InfoBar infoBar, boolean isLast) { |
+ if (isLast && mReaderModePanel != null) mReaderModePanel.onHideInfobarContainer(); |
+ } |
+ |
// ReaderModePanelHost: |
// TODO(aruslan): use the one in ChromeSwitches once it's rolled. |