Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java |
index 1aa2a20a8ccd6a8a5b5fa0aabaeee31857a0ccaa..286bc4d13edcf175bb105c1958e2a16a945a82f5 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java |
@@ -13,6 +13,7 @@ import org.chromium.chrome.browser.ChromeActivity; |
import org.chromium.chrome.browser.compositor.bottombar.OverlayContentProgressObserver; |
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelContent; |
import org.chromium.chrome.browser.compositor.layouts.LayoutUpdateHost; |
+import org.chromium.chrome.browser.contextualsearch.ContextualSearchManagementDelegate; |
import org.chromium.content.browser.ContentViewClient; |
import org.chromium.content.browser.ContentViewCore; |
@@ -115,6 +116,11 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation |
*/ |
private ContextualSearchPanelMetrics mPanelMetrics; |
+ /** |
+ * The object for handling global Contextual Search management duties |
+ */ |
+ private ContextualSearchManagementDelegate mManagementDelegate; |
+ |
// ============================================================================================ |
// Constructor |
// ============================================================================================ |
@@ -133,7 +139,7 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation |
*/ |
public OverlayPanelContent createNewOverlayPanelContent() { |
OverlayPanelContent overlayPanelContent = new OverlayPanelContent( |
- getManagementDelegate().getOverlayContentDelegate(), new PanelProgressObserver(), |
+ mManagementDelegate.getOverlayContentDelegate(), new PanelProgressObserver(), |
mActivity); |
// Adds a ContentViewClient to override the default fullscreen size. |
@@ -188,6 +194,30 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation |
} |
// ============================================================================================ |
+ // Contextual Search Manager Integration |
+ // ============================================================================================ |
+ |
+ /** |
+ * Sets the {@code ContextualSearchManagementDelegate} associated with this panel. |
+ * @param delegate The {@code ContextualSearchManagementDelegate}. |
+ */ |
+ public void setManagementDelegate(ContextualSearchManagementDelegate delegate) { |
+ if (mManagementDelegate != delegate) { |
+ mManagementDelegate = delegate; |
+ if (delegate != null) { |
+ initializeUiState(); |
+ } |
+ } |
+ } |
+ |
+ /** |
+ * @return The {@code ContextualSearchManagementDelegate} associated with this Layout. |
+ */ |
+ public ContextualSearchManagementDelegate getManagementDelegate() { |
+ return mManagementDelegate; |
+ } |
+ |
+ // ============================================================================================ |
// Logging of panel state information. |
// ============================================================================================ |
@@ -243,7 +273,7 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation |
@Override |
public void onPromoButtonClick(boolean accepted) { |
super.onPromoButtonClick(accepted); |
- getManagementDelegate().logPromoOutcome(); |
+ mManagementDelegate.logPromoOutcome(); |
setIsPromoActive(false); |
} |
@@ -265,14 +295,14 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation |
@Override |
public void setPreferenceState(boolean enabled) { |
- if (getManagementDelegate() != null) { |
- getManagementDelegate().setPreferenceState(enabled); |
+ if (mManagementDelegate != null) { |
+ mManagementDelegate.setPreferenceState(enabled); |
} |
} |
@Override |
protected boolean isPromoAvailable() { |
- return getManagementDelegate() != null && getManagementDelegate().isPromoAvailable(); |
+ return mManagementDelegate != null && mManagementDelegate.isPromoAvailable(); |
} |
@Override |
@@ -281,7 +311,7 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation |
if (mOverlayPanelContent != null) { |
mOverlayPanelContent.destroyContentView(); |
} |
- getManagementDelegate().onCloseContextualSearch(reason); |
+ mManagementDelegate.onCloseContextualSearch(reason); |
} |
// ============================================================================================ |
@@ -355,8 +385,8 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation |
closePanel(StateChangeReason.BASE_PAGE_TAP, true); |
} else if (isCoordinateInsideSearchBar(x, y)) { |
if (isPeeking()) { |
- if (getManagementDelegate().isRunningInCompatibilityMode()) { |
- getManagementDelegate().openResolvedSearchUrlInNewTab(); |
+ if (mManagementDelegate.isRunningInCompatibilityMode()) { |
+ mManagementDelegate.openResolvedSearchUrlInNewTab(); |
} else { |
if (isFullscreenSizePanel()) { |
expandPanel(StateChangeReason.SEARCH_BAR_TAP); |
@@ -475,7 +505,7 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation |
if (mShouldPromoteToTabAfterMaximizing && getPanelState() == PanelState.MAXIMIZED) { |
mShouldPromoteToTabAfterMaximizing = false; |
- getManagementDelegate().promoteToTab(); |
+ mManagementDelegate.promoteToTab(); |
} |
} |
@@ -514,6 +544,20 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation |
} |
// ============================================================================================ |
+ // ContextualSearchPanelBase methods. |
+ // ============================================================================================ |
+ |
+ @Override |
+ public boolean isCustomTab() { |
+ return mManagementDelegate.isCustomTab(); |
+ } |
+ |
+ @Override |
+ public int getControlContainerHeightResource() { |
+ return mManagementDelegate.getControlContainerHeightResource(); |
+ } |
+ |
+ // ============================================================================================ |
// Panel Delegate |
// ============================================================================================ |