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

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

Issue 1589023003: [Contextual Search] Enable for fullscreen (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 11 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
Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBase.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBase.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBase.java
index 3e562d309361dfeb3b5be0bae05da94d105519f2..7e9c971c3574fb08266373e86ceae0bd7274a651 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBase.java
@@ -275,8 +275,8 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
private float mMaximumWidth;
private float mMaximumHeight;
- private boolean mIsFullscreenSizePanelForTesting;
- private boolean mOverrideIsFullscreenSizePanelForTesting;
+ private boolean mIsFullWidthSizePanelForTesting;
+ private boolean mOverrideIsFullWidthSizePanelForTesting;
/**
* Called when the size of the view has changed.
@@ -285,32 +285,41 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
* @param height The new width in dp.
* @param isToolbarShowing Whether the Toolbar is showing.
*/
- public final void onSizeChanged(float width, float height, boolean isToolbarShowing) {
+ public void onSizeChanged(float width, float height, boolean isToolbarShowing) {
mLayoutWidth = width;
mLayoutHeight = height;
mIsToolbarShowing = isToolbarShowing;
mMaximumWidth = calculateOverlayPanelWidth();
mMaximumHeight = getPanelHeightFromState(PanelState.MAXIMIZED);
+
+ // If the panel is closed, the height and offsets aren't changing. In a few tests, we get
+ // calls to onSizeChanged() when the panel isn't fully initialized, which causes the tests
+ // to fail if we try to call setPanelHeight().
+ if (mPanelState != PanelState.UNDEFINED && mPanelState != PanelState.CLOSED) {
+ setPanelHeight(getPanelHeightFromState(getPanelState()));
+ mOffsetX = calculateOverlayPanelX();
+ mOffsetY = calculateOverlayPanelY();
+ }
}
/**
- * Overrides the FullscreenSizePanel state for testing.
+ * Overrides the FullWidthSizePanel state for testing.
*
- * @param isFullscreenSizePanel
+ * @param isFullWidthSizePanel
*/
@VisibleForTesting
- public void setIsFullscreenSizePanelForTesting(boolean isFullscreenSizePanel) {
- mOverrideIsFullscreenSizePanelForTesting = true;
- mIsFullscreenSizePanelForTesting = isFullscreenSizePanel;
+ public void setIsFullWidthSizePanelForTesting(boolean isFullWidthSizePanel) {
+ mOverrideIsFullWidthSizePanelForTesting = true;
+ mIsFullWidthSizePanelForTesting = isFullWidthSizePanel;
}
/**
- * @return Whether the Panel is in fullscreen size.
+ * @return Whether the Panel is in full width size.
*/
- protected boolean isFullscreenSizePanel() {
- if (mOverrideIsFullscreenSizePanelForTesting) {
- return mIsFullscreenSizePanelForTesting;
+ protected boolean isFullWidthSizePanel() {
+ if (mOverrideIsFullWidthSizePanelForTesting) {
+ return mIsFullWidthSizePanelForTesting;
}
return getFullscreenWidth() <= SMALL_PANEL_WIDTH_THRESHOLD_DP;
}
@@ -319,14 +328,29 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
* @return Whether the narrow version of the Panel is supported, in any orientation.
*/
protected boolean isNarrowSizePanelSupported() {
- return !isFullscreenSizePanel() || getFullscreenHeight() > SMALL_PANEL_WIDTH_THRESHOLD_DP;
+ return !isFullWidthSizePanel() || getTabHeight() > SMALL_PANEL_WIDTH_THRESHOLD_DP;
+ }
+
+ /**
+ * @return The current X-position of the Overlay Panel.
+ */
+ protected float calculateOverlayPanelX() {
+ return isFullWidthSizePanel() ? 0.f
+ : Math.round((getFullscreenWidth() - calculateOverlayPanelWidth()) / 2.f);
+ }
+
+ /**
+ * @return The current Y-position of the Overlay Panel.
+ */
+ protected float calculateOverlayPanelY() {
+ return getTabHeight() - mHeight;
}
/**
* @return The current width of the Overlay Panel.
*/
protected float calculateOverlayPanelWidth() {
- return isFullscreenSizePanel() ? getFullscreenWidth() : SMALL_PANEL_WIDTH_DP;
+ return isFullWidthSizePanel() ? getFullscreenWidth() : SMALL_PANEL_WIDTH_DP;
}
/**
@@ -376,9 +400,9 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
}
/**
- * @return The fullscreen height.
+ * @return The height of the tab the panel is displayed on top of.
*/
- private float getFullscreenHeight() {
+ public float getTabHeight() {
// NOTE(mdjones): This value will always be the same for a particular orientation; it is
// the content height + visible toolbar height.
return mLayoutHeight + (getToolbarHeight() - getTopControlsOffsetDp());
@@ -387,7 +411,7 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
/**
* @return The maximum height of the Overlay Panel in dps.
*/
- public float getMaximumHeight() {
+ public float getMaximumPanelHeight() {
return mMaximumHeight;
}
@@ -426,7 +450,7 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
* @return The height of the Overlay Panel Content View in pixels.
*/
public int getContentViewHeightPx() {
- float barExpandedHeight = isFullscreenSizePanel()
+ float barExpandedHeight = isFullWidthSizePanel()
? getToolbarHeight() : mBarHeightPeeking;
return Math.round((mMaximumHeight - barExpandedHeight) / mPxToDp);
}
@@ -859,8 +883,8 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
* @param state The state whose height will be calculated.
* @return The height of the Overlay Panel in dps for a given |state|.
*/
- protected float getPanelHeightFromState(PanelState state) {
- float fullscreenHeight = getFullscreenHeight();
+ public float getPanelHeightFromState(PanelState state) {
+ float tabHeight = getTabHeight();
float panelHeight = 0;
if (state == PanelState.UNDEFINED) {
@@ -870,17 +894,17 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
} else if (state == PanelState.PEEKED) {
panelHeight = mBarHeightPeeking + getPeekPromoHeightPeekingPx() * mPxToDp;
} else if (state == PanelState.EXPANDED) {
- if (isFullscreenSizePanel()) {
- panelHeight = fullscreenHeight * EXPANDED_PANEL_HEIGHT_PERCENTAGE;
+ if (isFullWidthSizePanel()) {
+ panelHeight = tabHeight * EXPANDED_PANEL_HEIGHT_PERCENTAGE;
} else {
- panelHeight = (fullscreenHeight - mToolbarHeight)
+ panelHeight = (tabHeight - mToolbarHeight)
* EXPANDED_PANEL_HEIGHT_PERCENTAGE;
}
} else if (state == PanelState.MAXIMIZED) {
- if (isFullscreenSizePanel()) {
- panelHeight = fullscreenHeight;
+ if (isFullWidthSizePanel()) {
+ panelHeight = tabHeight;
} else {
- panelHeight = fullscreenHeight - mToolbarHeight;
+ panelHeight = tabHeight - mToolbarHeight;
}
}
@@ -1006,9 +1030,8 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
*/
private void updatePanelSize(float height, PanelState endState, float percentage) {
mHeight = height;
- mOffsetX = isFullscreenSizePanel() ? 0.f
- : Math.round((getFullscreenWidth() - calculateOverlayPanelWidth()) / 2.f);
- mOffsetY = getFullscreenHeight() - mHeight;
+ mOffsetX = calculateOverlayPanelX();
+ mOffsetY = calculateOverlayPanelY();
mIsMaximized = height == getPanelHeightFromState(PanelState.MAXIMIZED);
}
@@ -1215,7 +1238,7 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
}
private float getBarHeightExpanded() {
- if (isFullscreenSizePanel()) {
+ if (isFullWidthSizePanel()) {
return mBarHeightExpanded;
} else {
return mBarHeightPeeking;
@@ -1223,7 +1246,7 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
}
private float getBarHeightMaximized() {
- if (isFullscreenSizePanel()) {
+ if (isFullWidthSizePanel()) {
return mBarHeightMaximized;
} else {
return mBarHeightPeeking;
@@ -1312,7 +1335,7 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
protected float calculateBasePageTargetY(PanelState expandedState) {
// Only a fullscreen wide Panel should offset the base page. A small panel should
// always return zero to ensure the Base Page remains in the same position.
- if (!isFullscreenSizePanel()) return 0.f;
+ if (!isFullWidthSizePanel()) return 0.f;
// Convert from px to dp.
final float selectionY = mBasePageSelectionYPx * mPxToDp;
@@ -1324,8 +1347,8 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
final float expandedHeight = getPanelHeightFromState(expandedState);
// Calculate the offset to center the selection on the available area.
- final float fullscreenHeight = getFullscreenHeight();
- final float availableHeight = fullscreenHeight - expandedHeight;
+ final float tabHeight = getTabHeight();
+ final float availableHeight = tabHeight - expandedHeight;
float offset = -selectionY + availableHeight / 2;
// Make sure offset is negative to prevent Base Page from moving down,
@@ -1445,7 +1468,7 @@ abstract class OverlayPanelBase implements ContextualSearchPromoHost {
final int maximumWidth = getMaximumWidthPx();
// Adjust size for small Panel.
- if (!isFullscreenSizePanel()) {
+ if (!isFullWidthSizePanel()) {
mPromoView.getLayoutParams().width = maximumWidth;
mPromoView.requestLayout();
}

Powered by Google App Engine
This is Rietveld 408576698