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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerDocument.java

Issue 1436743002: Integrate new Reader Mode panel (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scene-layer-changes
Patch Set: findbugs and low-end devices Created 5 years, 1 month 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/compositor/layouts/LayoutManagerDocument.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerDocument.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerDocument.java
index b3ed7ec25fef4e5f9cec5ea6bef304d0577fb49a..9056924d16c77621f95117a39948c0f019663060 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerDocument.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerDocument.java
@@ -18,6 +18,7 @@ import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelContentViewDelegate;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager;
import org.chromium.chrome.browser.compositor.bottombar.contextualsearch.ContextualSearchPanel;
+import org.chromium.chrome.browser.compositor.bottombar.readermode.ReaderModePanel;
import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab;
import org.chromium.chrome.browser.compositor.layouts.components.VirtualView;
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
@@ -35,11 +36,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchManagementDe
import org.chromium.chrome.browser.contextualsearch.ContextualSearchStaticEventFilter;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchStaticEventFilter.ContextualSearchTapHandler;
import org.chromium.chrome.browser.device.DeviceClassManager;
-import org.chromium.chrome.browser.dom_distiller.ReaderModeEdgeSwipeHandler;
-import org.chromium.chrome.browser.dom_distiller.ReaderModePanel;
-import org.chromium.chrome.browser.dom_distiller.ReaderModeStaticEventFilter;
-import org.chromium.chrome.browser.dom_distiller.ReaderModeStaticEventFilter.ReaderModePanelSelector;
-import org.chromium.chrome.browser.dom_distiller.ReaderModeStaticEventFilter.ReaderModeTapHandler;
+import org.chromium.chrome.browser.dom_distiller.ReaderModeManagerDelegate;
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
@@ -60,8 +57,7 @@ import java.util.List;
* driving all {@link Layout}s that get shown via the {@link LayoutManager}.
*/
public class LayoutManagerDocument extends LayoutManager
- implements ContextualSearchTapHandler, OverlayPanelContentViewDelegate,
- ReaderModeTapHandler {
+ implements ContextualSearchTapHandler, OverlayPanelContentViewDelegate {
// Layouts
/** A {@link Layout} used for showing a normal web page. */
protected final StaticLayout mStaticLayout;
@@ -77,17 +73,16 @@ public class LayoutManagerDocument extends LayoutManager
/** A {@link GestureHandler} that will delegate all events to {@link #getActiveLayout()}. */
protected final GestureHandler mGestureHandler;
private final EdgeSwipeHandler mOverlayPanelEdgeSwipeHandler;
- private final EdgeSwipeHandler mReaderModeEdgeSwipeHandler;
// Internal State
private final SparseArray<LayoutTab> mTabCache = new SparseArray<LayoutTab>();
private final ContextualSearchPanel mContextualSearchPanel;
+ private final ReaderModePanel mReaderModePanel;
private final OverlayPanelManager mOverlayPanelManager;
/** A delegate for interacting with the Contextual Search manager. */
protected ContextualSearchManagementDelegate mContextualSearchDelegate;
@SuppressWarnings("unused") private TabModelSelectorTabObserver mTabModelSelectorTabObserver;
- private final ReaderModePanelSelector mReaderModePanelSelector;
/**
* Creates a {@link LayoutManagerDocument} instance.
@@ -100,22 +95,10 @@ public class LayoutManagerDocument extends LayoutManager
mOverlayPanelManager = new OverlayPanelManager();
mContextualSearchPanel = new ContextualSearchPanel(context, this, mOverlayPanelManager);
-
- mReaderModePanelSelector = new ReaderModePanelSelector() {
- @Override
- public ReaderModePanel getActiveReaderModePanel() {
- if (mStaticLayout == null || !mStaticLayout.isActive()) return null;
- ReaderModePanel panel = mStaticLayout.getReaderModePanel();
- if (panel == null) return null;
- if (!panel.isShowing() || !panel.isReaderModeCurrentlyAllowed()) return null;
- return panel;
- }
- };
+ mReaderModePanel = new ReaderModePanel(context, this, mOverlayPanelManager, this);
// Build Event Filter Handlers
mOverlayPanelEdgeSwipeHandler = new OverlayPanelEdgeSwipeHandler(this);
- mReaderModeEdgeSwipeHandler = new ReaderModeEdgeSwipeHandler(
- mReaderModePanelSelector, this);
mGestureHandler = new GestureHandlerLayoutDelegate(this);
mToolbarSwipeHandler = new ToolbarSwipeHandler(this);
@@ -126,11 +109,8 @@ public class LayoutManagerDocument extends LayoutManager
context, this, mGestureHandler, mOverlayPanelManager);
EventFilter contextualSearchStaticEventFilter = new ContextualSearchStaticEventFilter(
context, this, mOverlayPanelManager, mOverlayPanelEdgeSwipeHandler, this);
- EventFilter readerModeStaticEventFilter = new ReaderModeStaticEventFilter(
- context, this, mReaderModePanelSelector, mReaderModeEdgeSwipeHandler, this);
EventFilter staticCascadeEventFilter = new CascadeEventFilter(context, this,
- new EventFilter[] {readerModeStaticEventFilter, contextualSearchStaticEventFilter,
- mStaticEdgeEventFilter});
+ new EventFilter[] {contextualSearchStaticEventFilter, mStaticEdgeEventFilter});
// Build Layouts
mStaticLayout = new StaticLayout(
@@ -148,6 +128,7 @@ public class LayoutManagerDocument extends LayoutManager
public void init(TabModelSelector selector, TabCreatorManager creator,
TabContentManager content, ViewGroup androidContentContainer,
ContextualSearchManagementDelegate contextualSearchDelegate,
+ ReaderModeManagerDelegate readerModeDelegate,
DynamicResourceLoader dynamicResourceLoader) {
// Save state
mContextualSearchDelegate = contextualSearchDelegate;
@@ -168,6 +149,14 @@ public class LayoutManagerDocument extends LayoutManager
contextualSearchDelegate.setContextualSearchPanel(mContextualSearchPanel);
}
+ mReaderModePanel.setManagerDelegate(readerModeDelegate);
+ // TODO(mdjones): The manager should be responsible for passing the resource loader to all
+ // panels.
+ mReaderModePanel.setDynamicResourceLoader(dynamicResourceLoader);
+ if (readerModeDelegate != null) {
+ readerModeDelegate.setReaderModePanel(mReaderModePanel);
+ }
+
mTabModelSelectorTabObserver = new TabModelSelectorTabObserver(selector) {
@Override
public void onContentChanged(Tab tab) {
@@ -186,7 +175,7 @@ public class LayoutManagerDocument extends LayoutManager
};
super.init(selector, creator, content, androidContentContainer, contextualSearchDelegate,
- dynamicResourceLoader);
+ readerModeDelegate, dynamicResourceLoader);
}
@Override
@@ -320,6 +309,7 @@ public class LayoutManagerDocument extends LayoutManager
if (getActiveLayout() == mContextualSearchLayout) return;
OverlayPanel panel = mOverlayPanelManager.getActivePanel();
+ if (panel == null) return;
// When not in compatibility mode, tapping on the Search Bar will expand the Panel,
// therefore we must start showing the ContextualSearchLayout.
@@ -328,11 +318,11 @@ public class LayoutManagerDocument extends LayoutManager
// ContextualSearchLayout. Coordinate with dtrainor@ to solve this. It might be
// necessary for the ContextualSearchPanel to be able to trigger the display of the
// ContextualSearchLayout.
- if (panel != null && panel.supportsContextualSearchLayout()) {
+ if (panel.supportsContextualSearchLayout()) {
showContextualSearchLayout(true);
}
- mOverlayPanelManager.getActivePanel().handleClick(time, x, y);
+ panel.handleClick(time, x, y);
}
@Override
@@ -453,10 +443,4 @@ public class LayoutManagerDocument extends LayoutManager
return direction == ScrollDirection.LEFT || direction == ScrollDirection.RIGHT;
}
}
-
- @Override
- public void handleTapReaderModeBar(long time, float x, float y) {
- ReaderModePanel activePanel = mReaderModePanelSelector.getActiveReaderModePanel();
- if (activePanel != null) activePanel.handleClick(time, x, y);
- }
}

Powered by Google App Engine
This is Rietveld 408576698