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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java

Issue 1342383004: Separate contextual search state handler and log (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@overlay-panel
Patch Set: correct var name Created 5 years, 3 months 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
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelBase.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 7a325c8a7bc2033114871b29a70517189c6ae8db..40f4f1d60f028efce95db7ec80236e68df1ba8ee 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
@@ -35,6 +35,7 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation
/**
* The reason for a change in the Contextual Search Panel's state.
+ * TODO(mdjones): Separate generic reasons from Contextual Search reasons.
*/
public static enum StateChangeReason {
UNKNOWN,
@@ -57,9 +58,11 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation
CLOSE_BUTTON;
}
- // The animation duration of a URL being promoted to a tab when triggered by an
- // intercept navigation. This is faster than the standard tab promotion animation
- // so that it completes before the navigation.
+ /**
+ * The animation duration of a URL being promoted to a tab when triggered by an
+ * intercept navigation. This is faster than the standard tab promotion animation
+ * so that it completes before the navigation.
+ */
private static final long INTERCEPT_NAVIGATION_PROMOTION_ANIMATION_DURATION_MS = 40;
/**
@@ -107,6 +110,11 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation
*/
private OverlayPanelContent mOverlayPanelContent;
+ /**
+ * Used for logging state changes.
+ */
+ private ContextualSearchPanelMetrics mPanelMetrics;
+
// ============================================================================================
// Constructor
// ============================================================================================
@@ -117,6 +125,7 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation
*/
public ContextualSearchPanel(Context context, LayoutUpdateHost updateHost) {
super(context, updateHost);
+ mPanelMetrics = new ContextualSearchPanelMetrics();
}
/**
@@ -179,6 +188,37 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation
}
// ============================================================================================
+ // Logging of panel state information.
+ // ============================================================================================
+
+ @Override
+ public void setPanelState(PanelState toState, StateChangeReason reason) {
+ // Store the previous state of the panel for when super changes it. 'super' should be the
+ // first thing with significant logic that runs in this method which is why
+ // onPanelStateChanged is not called here.
+ PanelState fromState = getPanelState();
+ super.setPanelState(toState, reason);
+ mPanelMetrics.onPanelStateChanged(fromState, toState, reason);
+ }
+
+ // ============================================================================================
+ // Promo Host
+ // ============================================================================================
+
+ @Override
+ public void onPromoPreferenceClick() {
+ super.onPromoPreferenceClick();
+ setIsPromoActive(false);
+ }
+
+ @Override
+ public void onPromoButtonClick(boolean accepted) {
+ super.onPromoButtonClick(accepted);
+ getManagementDelegate().logPromoOutcome();
+ setIsPromoActive(false);
+ }
+
+ // ============================================================================================
// Layout Integration
// ============================================================================================
@@ -207,13 +247,6 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation
}
@Override
- public void onPromoButtonClick(boolean accepted) {
- super.onPromoButtonClick(accepted);
- getManagementDelegate().logPromoOutcome();
- setIsPromoActive(false);
- }
-
- @Override
protected void onClose(StateChangeReason reason) {
destroySearchBarControl();
if (mOverlayPanelContent != null) {
@@ -455,6 +488,31 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation
// Panel Delegate
// ============================================================================================
+ /**
+ * Sets that the Search Content View was seen.
+ */
+ @Override
+ public void setWasSearchContentViewSeen() {
+ mPanelMetrics.setWasSearchContentViewSeen();
+ }
+
+ /**
+ * Sets whether the promo is active.
+ */
+ @Override
+ public void setIsPromoActive(boolean shown) {
+ mPanelMetrics.setIsPromoActive(shown);
+ }
+
+ /**
+ * Records timing information when the search results have fully loaded.
+ * @param wasPrefetch Whether the request was prefetch-enabled.
+ */
+ @Override
+ public void onSearchResultsLoaded(boolean wasPrefetch) {
+ mPanelMetrics.onSearchResultsLoaded(wasPrefetch);
+ }
+
@Override
public boolean isFullscreenSizePanel() {
// NOTE(pedrosimonetti): exposing superclass method to the interface.
@@ -544,35 +602,11 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation
}
@Override
- public void setDidSearchInvolvePromo() {
- // NOTE(pedrosimonetti): exposing superclass method to the interface.
- super.setDidSearchInvolvePromo();
- }
-
- @Override
- public void setWasSearchContentViewSeen() {
- // NOTE(pedrosimonetti): exposing superclass method to the interface.
- super.setWasSearchContentViewSeen();
- }
-
- @Override
- public void setIsPromoActive(boolean shown) {
- // NOTE(pedrosimonetti): exposing superclass method to the interface.
- super.setIsPromoActive(shown);
- }
-
- @Override
public boolean didTouchSearchContentView() {
return mHasSearchContentViewBeenTouched;
}
@Override
- public void onSearchResultsLoaded(boolean wasPrefetch) {
- // NOTE(pedrosimonetti): exposing superclass method to the interface.
- super.onSearchResultsLoaded(wasPrefetch);
- }
-
- @Override
public boolean shouldAnimatePanelCloseOnPromoteToTab() {
return mSearchPanelFeatures.shouldAnimatePanelCloseOnPromoteToTab();
}
@@ -635,6 +669,11 @@ public class ContextualSearchPanel extends ContextualSearchPanelAnimation
}
}
+ @Override
+ public void setDidSearchInvolvePromo() {
+ mPanelMetrics.setDidSearchInvolvePromo();
+ }
+
// ============================================================================================
// ContextualSearchBarControl
// ============================================================================================
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelBase.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698