Index: chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java |
index 3580d89175257cf9d85e861c5224de07e43a97eb..c4ce6e7f8201c7be0af11bf5b790e7430eaa2c03 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java |
@@ -25,7 +25,6 @@ |
import android.graphics.drawable.TransitionDrawable; |
import android.os.Build; |
import android.os.SystemClock; |
-import android.support.v4.view.animation.FastOutSlowInInterpolator; |
import android.text.TextUtils; |
import android.util.AttributeSet; |
import android.util.Property; |
@@ -37,7 +36,6 @@ |
import android.view.ViewDebug; |
import android.view.ViewGroup; |
import android.view.WindowManager; |
-import android.view.animation.Interpolator; |
import android.view.animation.LinearInterpolator; |
import android.widget.FrameLayout; |
import android.widget.ImageView; |
@@ -94,12 +92,11 @@ |
private static final float UNINITIALIZED_PERCENT = -1f; |
+ private static final String TAG = "ToolbarPhone"; |
+ |
static final int LOCATION_BAR_TRANSPARENT_BACKGROUND_ALPHA = 51; |
- private static final Interpolator NTP_SEARCH_BOX_EXPANSION_INTERPOLATOR = |
- new FastOutSlowInInterpolator(); |
- |
- private LocationBarPhone mLocationBar; |
+ private LocationBarPhone mPhoneLocationBar; |
private ViewGroup mToolbarButtonsContainer; |
private ImageView mToggleTabStackButton; |
@@ -107,7 +104,7 @@ |
private TintedImageButton mReturnButton; |
private TintedImageButton mHomeButton; |
private TextView mUrlBar; |
- private View mUrlActionContainer; |
+ private View mUrlActionsContainer; |
private ImageView mToolbarShadow; |
private final int mProgressBackBackgroundColorWhite; |
@@ -177,13 +174,12 @@ |
private int mUnfocusedLocationBarLayoutLeft; |
private boolean mUnfocusedLocationBarUsesTransparentBg; |
- private int mLocationBarBackgroundAlpha = 255; |
+ private int mUrlBackgroundAlpha = 255; |
private float mNtpSearchBoxScrollPercent = UNINITIALIZED_PERCENT; |
private ColorDrawable mToolbarBackground; |
- /** The omnibox background (white with a shadow). */ |
+ // The omnibox background (white with a shadow). |
private Drawable mLocationBarBackground; |
- |
private boolean mForceDrawLocationBarBackground; |
private TabSwitcherDrawable mTabSwitcherButtonDrawable; |
private TabSwitcherDrawable mTabSwitcherButtonDrawableLight; |
@@ -191,30 +187,16 @@ |
private final int mLightModeDefaultColor; |
private final int mDarkModeDefaultColor; |
- /** The boundaries of the omnibox, without the NTP-specific offset applied. */ |
- private final Rect mLocationBarBackgroundBounds = new Rect(); |
- |
- private final Rect mLocationBarBackgroundPadding = new Rect(); |
+ private final Rect mUrlViewportBounds = new Rect(); |
+ private final Rect mUrlBackgroundPadding = new Rect(); |
private final Rect mBackgroundOverlayBounds = new Rect(); |
- |
- /** Offset applied to the bounds of the omnibox if we are showing a New Tab Page. */ |
- private final Rect mLocationBarBackgroundNtpOffset = new Rect(); |
- |
- /** |
- * Offsets applied to the <i>contents</i> of the omnibox if we are showing a New Tab Page. |
- * This can be different from {@link #mLocationBarBackgroundNtpOffset} due to the fact that we |
- * extend the omnibox horizontally beyond the screen boundaries when focused, to hide its |
- * rounded corners. |
- */ |
- private float mLocationBarNtpOffsetLeft; |
- private float mLocationBarNtpOffsetRight; |
- |
- private final Rect mNtpSearchBoxBounds = new Rect(); |
- private final Point mNtpSearchBoxTranslation = new Point(); |
- |
+ private final Rect mLocationBarBackgroundOffset = new Rect(); |
+ |
+ private final Rect mNtpSearchBoxOriginalBounds = new Rect(); |
+ private final Rect mNtpSearchBoxTransformedBounds = new Rect(); |
+ |
+ private final int mLocationBarInsets; |
private final int mToolbarSidePadding; |
- private final int mLocationBarVerticalMargin; |
- private final int mLocationBarBackgroundCornerRadius; |
private ValueAnimator mBrandColorTransitionAnimation; |
private boolean mBrandColorTransitionActive; |
@@ -295,10 +277,9 @@ |
super(context, attrs); |
mToolbarSidePadding = getResources().getDimensionPixelOffset( |
R.dimen.toolbar_edge_padding); |
- mLocationBarVerticalMargin = |
- getResources().getDimensionPixelOffset(R.dimen.location_bar_vertical_margin); |
- mLocationBarBackgroundCornerRadius = |
- getResources().getDimensionPixelOffset(R.dimen.location_bar_corner_radius); |
+ // Insets used for the PhoneLocatioBar background drawable. |
+ mLocationBarInsets = getResources().getDimensionPixelSize(R.dimen.location_bar_margin_top) |
+ + getResources().getDimensionPixelSize(R.dimen.location_bar_margin_bottom); |
mProgressBackBackgroundColorWhite = ApiCompatibilityUtils.getColor(getResources(), |
R.color.progress_bar_background_white); |
mLightModeDefaultColor = |
@@ -310,7 +291,7 @@ |
@Override |
public void onFinishInflate() { |
super.onFinishInflate(); |
- mLocationBar = (LocationBarPhone) findViewById(R.id.location_bar); |
+ mPhoneLocationBar = (LocationBarPhone) findViewById(R.id.location_bar); |
mToolbarButtonsContainer = (ViewGroup) findViewById(R.id.toolbar_buttons); |
@@ -319,20 +300,20 @@ |
mUrlBar = (TextView) findViewById(R.id.url_bar); |
- mUrlActionContainer = findViewById(R.id.url_action_container); |
- |
- mBrowsingModeViews.add(mLocationBar); |
+ mUrlActionsContainer = findViewById(R.id.url_action_container); |
+ |
+ mBrowsingModeViews.add(mPhoneLocationBar); |
mToolbarBackground = new ColorDrawable(getToolbarColorForVisualState(VisualState.NORMAL)); |
mTabSwitcherAnimationBgOverlay = |
new ColorDrawable(getToolbarColorForVisualState(VisualState.NORMAL)); |
mLocationBarBackground = |
- ApiCompatibilityUtils.getDrawable(getResources(), R.drawable.textbox); |
- mLocationBarBackground.getPadding(mLocationBarBackgroundPadding); |
- mLocationBar.setPadding( |
- mLocationBarBackgroundPadding.left, mLocationBarBackgroundPadding.top, |
- mLocationBarBackgroundPadding.right, mLocationBarBackgroundPadding.bottom); |
+ ApiCompatibilityUtils.getDrawable(getResources(), R.drawable.inset_textbox); |
+ mLocationBarBackground.getPadding(mUrlBackgroundPadding); |
+ mPhoneLocationBar.setPadding( |
+ mUrlBackgroundPadding.left, mUrlBackgroundPadding.top, |
+ mUrlBackgroundPadding.right, mUrlBackgroundPadding.bottom); |
setLayoutTransition(null); |
@@ -459,7 +440,7 @@ |
}); |
onHomeButtonUpdate(HomepageManager.isHomepageEnabled(getContext())); |
- updateVisualsForToolbarState(); |
+ updateVisualsForToolbarState(mIsInTabSwitcherMode); |
} |
@Override |
@@ -529,8 +510,8 @@ |
private void updateUnfocusedLocationBarLayoutParams() { |
boolean hasVisibleViewPriorToUrlBar = false; |
- for (int i = 0; i < mLocationBar.getChildCount(); i++) { |
- View child = mLocationBar.getChildAt(i); |
+ for (int i = 0; i < mPhoneLocationBar.getChildCount(); i++) { |
+ View child = mPhoneLocationBar.getChildAt(i); |
if (child == mUrlBar) break; |
if (child.getVisibility() != GONE) { |
hasVisibleViewPriorToUrlBar = true; |
@@ -539,21 +520,14 @@ |
} |
int leftViewBounds = getViewBoundsLeftOfLocationBar(mVisualState); |
+ if (!hasVisibleViewPriorToUrlBar) leftViewBounds += mToolbarSidePadding; |
int rightViewBounds = getViewBoundsRightOfLocationBar(mVisualState); |
- if (!hasVisibleViewPriorToUrlBar) { |
- if (ApiCompatibilityUtils.isLayoutRtl(mLocationBar)) { |
- rightViewBounds -= mToolbarSidePadding; |
- } else { |
- leftViewBounds += mToolbarSidePadding; |
- } |
- } |
- |
- if (!mLocationBar.hasVisibleViewsAfterUrlBarWhenUnfocused()) { |
+ if (!mPhoneLocationBar.hasVisibleViewsAfterUrlBarWhenUnfocused()) { |
// Add spacing between the end of the URL and the edge of the omnibox drawable. |
// This only applies if there is no end aligned view that should be visible |
// while the omnibox is unfocused. |
- if (ApiCompatibilityUtils.isLayoutRtl(mLocationBar)) { |
+ if (ApiCompatibilityUtils.isLayoutRtl(mPhoneLocationBar)) { |
leftViewBounds += mToolbarSidePadding; |
} else { |
rightViewBounds -= mToolbarSidePadding; |
@@ -600,15 +574,15 @@ |
if (mLayoutLocationBarInFocusedMode || mVisualState == VisualState.NEW_TAB_NORMAL) { |
int priorVisibleWidth = 0; |
- for (int i = 0; i < mLocationBar.getChildCount(); i++) { |
- View child = mLocationBar.getChildAt(i); |
- if (child == mLocationBar.getFirstViewVisibleWhenFocused()) break; |
+ for (int i = 0; i < mPhoneLocationBar.getChildCount(); i++) { |
+ View child = mPhoneLocationBar.getChildAt(i); |
+ if (child == mPhoneLocationBar.getFirstViewVisibleWhenFocused()) break; |
if (child.getVisibility() == GONE) continue; |
priorVisibleWidth += child.getMeasuredWidth(); |
} |
width = containerWidth - (2 * mToolbarSidePadding) + priorVisibleWidth; |
- if (ApiCompatibilityUtils.isLayoutRtl(mLocationBar)) { |
+ if (ApiCompatibilityUtils.isLayoutRtl(mPhoneLocationBar)) { |
leftMargin = mToolbarSidePadding; |
} else { |
leftMargin = -priorVisibleWidth + mToolbarSidePadding; |
@@ -703,8 +677,8 @@ |
} |
if (mLocationBarBackground != null |
- && (mLocationBar.getVisibility() == VISIBLE || mTextureCaptureMode)) { |
- updateLocationBarBackgroundBounds(mLocationBarBackgroundBounds, mVisualState); |
+ && (mPhoneLocationBar.getVisibility() == VISIBLE || mTextureCaptureMode)) { |
+ updateUrlViewportBounds(mUrlViewportBounds, mVisualState, false); |
} |
if (mTextureCaptureMode) { |
@@ -758,20 +732,18 @@ |
} |
/** |
- * Calculate the bounds for the location bar background and set them to {@code out}. |
+ * Calculate the bounds for UrlViewport and set them to out rect. |
*/ |
- private void updateLocationBarBackgroundBounds(Rect out, VisualState visualState) { |
- // Calculate the visible boundaries of the left and right most child views of the |
- // location bar. |
- float expansion = visualState == VisualState.NEW_TAB_NORMAL ? 1 : mUrlExpansionPercent; |
+ private void updateUrlViewportBounds(Rect out, VisualState visualState, |
+ boolean ignoreTranslationY) { |
+ // Calculate the visible boundaries of the left and right most child views |
+ // of the location bar. |
int leftViewPosition = (int) MathUtils.interpolate( |
- getViewBoundsLeftOfLocationBar(visualState), |
- -mLocationBarBackgroundCornerRadius, |
- expansion); |
+ getViewBoundsLeftOfLocationBar(visualState), 0f, mUrlExpansionPercent) |
+ - mUrlBackgroundPadding.left; |
int rightViewPosition = (int) MathUtils.interpolate( |
- getViewBoundsRightOfLocationBar(visualState), |
- getWidth() + mLocationBarBackgroundCornerRadius, |
- expansion); |
+ getViewBoundsRightOfLocationBar(visualState), getWidth(), mUrlExpansionPercent) |
+ + mUrlBackgroundPadding.right; |
// The bounds are set by the following: |
// - The left most visible location bar child view. |
@@ -779,11 +751,13 @@ |
// - The right most visible location bar child view. |
// - The bottom of the viewport is aligned with the bottom of the location bar. |
// Additional padding can be applied for use during animations. |
- int verticalMargin = (int) MathUtils.interpolate(mLocationBarVerticalMargin, 0, expansion); |
+ float yOffset = ignoreTranslationY ? mPhoneLocationBar.getTop() : mPhoneLocationBar.getY(); |
+ |
out.set(leftViewPosition, |
- mLocationBar.getTop() + verticalMargin, |
+ (int) (yOffset - (mUrlBackgroundPadding.top * mUrlExpansionPercent)), |
rightViewPosition, |
- mLocationBar.getBottom() - verticalMargin); |
+ (int) (yOffset + MathUtils.interpolate(mPhoneLocationBar.getMeasuredHeight(), |
+ getHeight() + mUrlBackgroundPadding.bottom, mUrlExpansionPercent))); |
} |
/** |
@@ -802,78 +776,36 @@ |
assert mUrlExpansionPercent <= 1; |
} |
- /** |
- * Updates the parameters relating to expanding the location bar, as the result of either a |
- * focus change or scrolling the New Tab Page. |
- */ |
private void updateUrlExpansionAnimation() { |
if (mIsInTabSwitcherMode || isTabSwitcherAnimationRunning()) { |
mToolbarButtonsContainer.setVisibility(VISIBLE); |
return; |
} |
- FrameLayout.LayoutParams locationBarLayoutParams = getFrameLayoutParams(mLocationBar); |
+ mLocationBarBackgroundOffset.setEmpty(); |
+ |
+ FrameLayout.LayoutParams locationBarLayoutParams = |
+ getFrameLayoutParams(mPhoneLocationBar); |
int currentLeftMargin = locationBarLayoutParams.leftMargin; |
int currentWidth = locationBarLayoutParams.width; |
- float locationBarBaseTranslationX = mUnfocusedLocationBarLayoutLeft - currentLeftMargin; |
- boolean isLocationBarRtl = ApiCompatibilityUtils.isLayoutRtl(mLocationBar); |
+ float inversePercent = 1f - mUrlExpansionPercent; |
+ float locationBarTranslationX = mUnfocusedLocationBarLayoutLeft - currentLeftMargin; |
+ boolean isLocationBarRtl = ApiCompatibilityUtils.isLayoutRtl(mPhoneLocationBar); |
if (isLocationBarRtl) { |
- locationBarBaseTranslationX += mUnfocusedLocationBarLayoutWidth - currentWidth; |
- } |
- locationBarBaseTranslationX *= 1f - mUrlExpansionPercent; |
- |
- mLocationBarBackgroundNtpOffset.setEmpty(); |
- mLocationBarNtpOffsetLeft = 0; |
- mLocationBarNtpOffsetRight = 0; |
- |
- Tab currentTab = getToolbarDataProvider().getTab(); |
- if (currentTab != null) { |
- NewTabPage ntp = getToolbarDataProvider().getNewTabPageForCurrentTab(); |
- // Explicitly use the focus change percentage here because it applies scroll |
- // compensation that only applies during focus animations. |
- if (ntp != null && mUrlFocusChangeInProgress) { |
- ntp.setUrlFocusChangeAnimationPercent(mUrlFocusChangePercent); |
- } |
- |
- if (isLocationBarShownInNTP()) { |
- updateNtpTransitionAnimation(); |
- } else { |
- // Reset these values in case we transitioned to a different page during the |
- // transition. |
- resetNtpAnimationValues(); |
- } |
- } |
- |
- boolean isRtl = ApiCompatibilityUtils.isLayoutRtl(this); |
- |
- float locationBarTranslationX; |
- // Get the padding straight from the location bar instead of |
- // |mLocationBarBackgroundPadding|, because it might be different in incognito mode. |
- if (isRtl) { |
- locationBarTranslationX = locationBarBaseTranslationX |
- + mLocationBarNtpOffsetRight - mLocationBar.getPaddingRight(); |
- } else { |
- locationBarTranslationX = locationBarBaseTranslationX |
- + mLocationBarNtpOffsetLeft + mLocationBar.getPaddingLeft(); |
- } |
- mLocationBar.setTranslationX(locationBarTranslationX); |
+ locationBarTranslationX += mUnfocusedLocationBarLayoutWidth - currentWidth; |
+ } |
+ locationBarTranslationX *= inversePercent; |
+ |
+ mPhoneLocationBar.setTranslationX(locationBarTranslationX); |
// Negate the location bar translation to keep the URL action container in the same |
// place during the focus expansion. |
- float urlActionsTranslationX = 0; |
- if (!isLocationBarRtl || isRtl) { |
- urlActionsTranslationX = -locationBarBaseTranslationX; |
- } |
- |
- if (isRtl) { |
- urlActionsTranslationX += mLocationBarNtpOffsetLeft - mLocationBarNtpOffsetRight; |
- } else { |
- urlActionsTranslationX += mLocationBarNtpOffsetRight - mLocationBarNtpOffsetLeft; |
- } |
- mUrlActionContainer.setTranslationX(urlActionsTranslationX); |
- |
- mLocationBar.setUrlFocusChangePercent(mUrlExpansionPercent); |
+ if (!isLocationBarRtl || ApiCompatibilityUtils.isLayoutRtl(this)) { |
+ mUrlActionsContainer.setTranslationX(-locationBarTranslationX); |
+ } |
+ |
+ mPhoneLocationBar.setUrlFocusChangePercent(mUrlExpansionPercent); |
// Ensure the buttons are invisible after focusing the omnibox to prevent them from |
// accepting click events. |
@@ -888,99 +820,113 @@ |
// Force an invalidation of the location bar to properly handle the clipping of the URL |
// bar text as a result of the url action container translations. |
- mLocationBar.invalidate(); |
+ mPhoneLocationBar.invalidate(); |
invalidate(); |
- } |
- |
- /** |
- * Reset the parameters for the New Tab Page transition animation (expanding the location bar as |
- * a result of scrolling the New Tab Page) to their default values. |
- */ |
+ |
+ Tab currentTab = getToolbarDataProvider().getTab(); |
+ if (currentTab == null) return; |
+ |
+ NewTabPage ntp = getToolbarDataProvider().getNewTabPageForCurrentTab(); |
+ // Explicitly use the focus change percentage here because it applies scroll compensation |
+ // that only applies during focus animations. |
+ if (ntp != null && mUrlFocusChangeInProgress) { |
+ ntp.setUrlFocusChangeAnimationPercent(mUrlFocusChangePercent); |
+ } |
+ |
+ if (!isLocationBarShownInNTP()) { |
+ // Reset these values in case we transitioned to a different page during the |
+ // transition. |
+ resetNtpAnimationValues(); |
+ return; |
+ } |
+ |
+ updateNtpTransitionAnimation(); |
+ } |
+ |
private void resetNtpAnimationValues() { |
- mLocationBarBackgroundNtpOffset.setEmpty(); |
- mLocationBar.setTranslationY(0); |
+ mLocationBarBackgroundOffset.setEmpty(); |
+ mPhoneLocationBar.setTranslationY(0); |
if (!mUrlFocusChangeInProgress) { |
mToolbarButtonsContainer.setTranslationY(0); |
mReturnButton.setTranslationY(0); |
mHomeButton.setTranslationY(0); |
} |
mToolbarShadow.setAlpha(1f); |
- mLocationBar.setAlpha(1); |
+ mPhoneLocationBar.setAlpha(1); |
mForceDrawLocationBarBackground = false; |
- mLocationBarBackgroundAlpha = 255; |
- if (isIncognito() |
- || (mUnfocusedLocationBarUsesTransparentBg && !mUrlFocusChangeInProgress |
- && !mLocationBar.hasFocus())) { |
- mLocationBarBackgroundAlpha = LOCATION_BAR_TRANSPARENT_BACKGROUND_ALPHA; |
- } |
+ mUrlBackgroundAlpha = isIncognito() |
+ || (mUnfocusedLocationBarUsesTransparentBg |
+ && !mUrlFocusChangeInProgress |
+ && !mPhoneLocationBar.hasFocus()) |
+ ? LOCATION_BAR_TRANSPARENT_BACKGROUND_ALPHA : 255; |
setAncestorsShouldClipChildren(true); |
mNtpSearchBoxScrollPercent = UNINITIALIZED_PERCENT; |
updateUrlExpansionPercent(); |
} |
- /** |
- * Updates the parameters of the New Tab Page transition animation (expanding the location bar |
- * as a result of scrolling the New Tab Page). |
- */ |
private void updateNtpTransitionAnimation() { |
if (mIsInTabSwitcherMode) return; |
+ NewTabPage ntp = getToolbarDataProvider().getNewTabPageForCurrentTab(); |
+ |
setAncestorsShouldClipChildren(mUrlExpansionPercent == 0f); |
mToolbarShadow.setAlpha(0f); |
- NewTabPage ntp = getToolbarDataProvider().getNewTabPageForCurrentTab(); |
- ntp.getSearchBoxBounds(mNtpSearchBoxBounds, mNtpSearchBoxTranslation); |
- int locationBarTranslationY = |
- Math.max(0, (mNtpSearchBoxBounds.top - mLocationBar.getTop())); |
- mLocationBar.setTranslationY(locationBarTranslationY); |
+ float growthPercent = 0f; |
+ if (ntp.isCardsUiEnabled() || mUrlExpansionPercent == 0f || mUrlExpansionPercent == 1f) { |
+ growthPercent = 1f - mUrlExpansionPercent; |
+ } else { |
+ // During the transition from search box to omnibox, keep the omnibox drawing |
+ // at the same size of the search box for first 40% of the scroll transition. |
+ growthPercent = mUrlExpansionPercent <= 0.4f |
+ ? 1f : Math.min(1f, (1f - mUrlExpansionPercent) * 1.66667f); |
+ } |
+ |
+ int paddingTop = mPhoneLocationBar.getPaddingTop(); |
+ int paddingBottom = mPhoneLocationBar.getPaddingBottom(); |
+ |
+ ntp.getSearchBoxBounds(mNtpSearchBoxOriginalBounds, mNtpSearchBoxTransformedBounds); |
+ float halfHeightDifference = (mNtpSearchBoxTransformedBounds.height() |
+ - (mPhoneLocationBar.getMeasuredHeight() - paddingTop - paddingBottom |
+ + mLocationBarInsets)) / 2f; |
+ mPhoneLocationBar.setTranslationY(growthPercent == 0f ? 0 : Math.max(0, |
+ (mNtpSearchBoxTransformedBounds.top - mPhoneLocationBar.getTop() |
+ + halfHeightDifference))); |
if (!mUrlFocusChangeInProgress) { |
setButtonsTranslationY(); |
} |
- // Linearly interpolate between the bounds of the search box on the NTP and the omnibox |
- // background bounds. |shrinkage| is the scaling factor for the offset -- if it's 1, we are |
- // shrinking the omnibox down to the size of the search box. |
- float shrinkage; |
- if (ntp.isCardsUiEnabled()) { |
- shrinkage = 1f |
- - NTP_SEARCH_BOX_EXPANSION_INTERPOLATOR.getInterpolation(mUrlExpansionPercent); |
+ mLocationBarBackgroundOffset.set( |
+ (int) ((mNtpSearchBoxTransformedBounds.left - mUrlViewportBounds.left |
+ - mPhoneLocationBar.getPaddingLeft()) * growthPercent), |
+ (int) ((-halfHeightDifference - paddingTop) * growthPercent), |
+ (int) ((mNtpSearchBoxTransformedBounds.right - mUrlViewportBounds.right |
+ + mPhoneLocationBar.getPaddingRight()) * growthPercent), |
+ (int) ((halfHeightDifference - paddingBottom + mLocationBarInsets) |
+ * growthPercent)); |
+ |
+ // The transparency of the location bar is dependent on how different its size is |
+ // from the final value. This is based on how much growth is applied between the |
+ // desired size of the location bar to its drawn size. The location bar then only |
+ // starts becoming opaque once the growth is at least half done. |
+ if (growthPercent >= 0.5f) { |
+ mPhoneLocationBar.setAlpha(0); |
} else { |
- // During the transition from middle of the NTP to the top, keep the omnibox drawing |
- // at the same size of the search box for first 40% of the scroll transition. |
- shrinkage = Math.min(1f, (1f - mUrlExpansionPercent) * 1.66667f); |
- } |
- |
- int leftBoundDifference = mNtpSearchBoxBounds.left - mLocationBarBackgroundBounds.left; |
- int rightBoundDifference = mNtpSearchBoxBounds.right - mLocationBarBackgroundBounds.right; |
- mLocationBarBackgroundNtpOffset.set( |
- (int) Math.round(leftBoundDifference * shrinkage), |
- locationBarTranslationY, |
- (int) Math.round(rightBoundDifference * shrinkage), |
- locationBarTranslationY); |
- |
- // The omnibox background bounds are outset by |mLocationBarBackgroundCornerRadius| in the |
- // fully expanded state (and only there!) to hide the rounded corners, so undo that before |
- // applying the shrinkage factor. |
- mLocationBarNtpOffsetLeft = |
- (leftBoundDifference - mLocationBarBackgroundCornerRadius) * shrinkage; |
- mLocationBarNtpOffsetRight = |
- (rightBoundDifference + mLocationBarBackgroundCornerRadius) * shrinkage; |
- |
- mLocationBarBackgroundAlpha = mUrlExpansionPercent > 0f ? 255 : 0; |
- mForceDrawLocationBarBackground = mLocationBarBackgroundAlpha > 0; |
- float relativeAlpha = mLocationBarBackgroundAlpha / 255f; |
- mLocationBar.setAlpha(relativeAlpha); |
- |
- // The search box on the NTP is visible if our omnibox is invisible, and vice-versa. |
- ntp.setSearchBoxAlpha(1f - relativeAlpha); |
- |
- if (!ntp.isCardsUiEnabled()) { |
- ntp.setSearchProviderLogoAlpha(Math.max(1f - mUrlExpansionPercent * 2.5f, 0f)); |
- } |
+ mPhoneLocationBar.setAlpha(1f - growthPercent * 2); |
+ } |
+ |
+ // Go from a transparent url background to a fully opaque one in the first 40% of the |
+ // scroll transition. |
+ mUrlBackgroundAlpha = |
+ mUrlExpansionPercent >= 0.4f ? 255 : (int) ((mUrlExpansionPercent * 2.5f) * 255); |
+ if (mUrlExpansionPercent == 1f) mUrlBackgroundAlpha = 255; |
+ mForceDrawLocationBarBackground = mUrlExpansionPercent != 0f; |
} |
private void setButtonsTranslationY() { |
- int searchBoxTranslationY = Math.min(mNtpSearchBoxTranslation.y, 0); |
+ float searchBoxTranslationY = |
+ mNtpSearchBoxTransformedBounds.top - mNtpSearchBoxOriginalBounds.top; |
+ searchBoxTranslationY = Math.min(searchBoxTranslationY, 0); |
mToolbarButtonsContainer.setTranslationY(searchBoxTranslationY); |
mReturnButton.setTranslationY(searchBoxTranslationY); |
mHomeButton.setTranslationY(searchBoxTranslationY); |
@@ -1037,13 +983,13 @@ |
} |
// Draw the location/URL bar. |
- previousAlpha = mLocationBar.getAlpha(); |
- mLocationBar.setAlpha(previousAlpha * floatAlpha); |
+ previousAlpha = mPhoneLocationBar.getAlpha(); |
+ mPhoneLocationBar.setAlpha(previousAlpha * floatAlpha); |
// If the location bar is now fully transparent, do not bother drawing it. |
- if (mLocationBar.getAlpha() != 0) { |
- drawChild(canvas, mLocationBar, SystemClock.uptimeMillis()); |
- } |
- mLocationBar.setAlpha(previousAlpha); |
+ if (mPhoneLocationBar.getAlpha() != 0) { |
+ drawChild(canvas, mPhoneLocationBar, SystemClock.uptimeMillis()); |
+ } |
+ mPhoneLocationBar.setAlpha(previousAlpha); |
// Draw the tab stack button and associated text. |
translateCanvasToView(this, mToolbarButtonsContainer, canvas); |
@@ -1135,18 +1081,14 @@ |
@Override |
protected boolean drawChild(Canvas canvas, View child, long drawingTime) { |
- if (child == mLocationBar) return drawLocationBar(canvas, drawingTime); |
+ if (child == mPhoneLocationBar) return drawLocationBar(canvas, drawingTime); |
boolean clipped = false; |
if (mLocationBarBackground != null |
&& ((!mIsInTabSwitcherMode && !mTabSwitcherModeViews.contains(child)) |
|| (mIsInTabSwitcherMode && mBrowsingModeViews.contains(child)))) { |
canvas.save(); |
- |
- int translationY = (int) mLocationBar.getTranslationY(); |
- int clipTop = mLocationBarBackgroundBounds.top - mLocationBarBackgroundPadding.top |
- + translationY; |
- if (mUrlExpansionPercent != 0f && clipTop < child.getBottom()) { |
+ if (mUrlExpansionPercent != 0f && mUrlViewportBounds.top < child.getBottom()) { |
// For other child views, use the inverse clipping of the URL viewport. |
// Only necessary during animations. |
// Hardware mode does not support unioned clip regions, so clip using the |
@@ -1155,24 +1097,24 @@ |
boolean isLeft = (child == mNewTabButton || child == mReturnButton |
|| child == mHomeButton) ^ LocalizationUtils.isLayoutRtl(); |
- int clipBottom = mLocationBarBackgroundBounds.bottom |
- + mLocationBarBackgroundPadding.bottom + translationY; |
+ int clipTop = mUrlViewportBounds.top; |
+ int clipBottom = mUrlViewportBounds.bottom; |
boolean verticalClip = false; |
- if (translationY > 0f) { |
+ if (mPhoneLocationBar.getTranslationY() > 0f) { |
clipTop = child.getTop(); |
- clipBottom = clipTop; |
+ clipBottom = mUrlViewportBounds.top; |
verticalClip = true; |
} |
if (isLeft) { |
- int clipRight = verticalClip ? child.getMeasuredWidth() |
- : mLocationBarBackgroundBounds.left |
- - mLocationBarBackgroundPadding.left; |
- canvas.clipRect(0, clipTop, clipRight, clipBottom); |
+ canvas.clipRect( |
+ 0, clipTop, |
+ verticalClip ? child.getMeasuredWidth() : mUrlViewportBounds.left, |
+ clipBottom); |
} else { |
- int clipLeft = verticalClip ? 0 : mLocationBarBackgroundBounds.right |
- + mLocationBarBackgroundPadding.right; |
- canvas.clipRect(clipLeft, clipTop, getMeasuredWidth(), clipBottom); |
+ canvas.clipRect( |
+ verticalClip ? 0 : mUrlViewportBounds.right, |
+ clipTop, getMeasuredWidth(), clipBottom); |
} |
} |
clipped = true; |
@@ -1192,7 +1134,7 @@ |
// Fade out/in the location bar towards the beginning of the animations to avoid |
// large jumps of stark white. |
backgroundAlpha = |
- (int) (Math.pow(mLocationBar.getAlpha(), 3) * mLocationBarBackgroundAlpha); |
+ (int) (Math.pow(mPhoneLocationBar.getAlpha(), 3) * mUrlBackgroundAlpha); |
} else if (getToolbarDataProvider().isUsingBrandColor() |
&& !mBrandColorTransitionActive) { |
backgroundAlpha = mUnfocusedLocationBarUsesTransparentBg |
@@ -1200,32 +1142,28 @@ |
255, mUrlExpansionPercent)) |
: 255; |
} else { |
- backgroundAlpha = mLocationBarBackgroundAlpha; |
+ backgroundAlpha = mUrlBackgroundAlpha; |
} |
mLocationBarBackground.setAlpha(backgroundAlpha); |
- if ((mLocationBar.getAlpha() > 0 || mForceDrawLocationBarBackground) |
+ if ((mPhoneLocationBar.getAlpha() > 0 || mForceDrawLocationBarBackground) |
&& !mTextureCaptureMode) { |
mLocationBarBackground.setBounds( |
- mLocationBarBackgroundBounds.left + mLocationBarBackgroundNtpOffset.left |
- - mLocationBarBackgroundPadding.left, |
- mLocationBarBackgroundBounds.top + mLocationBarBackgroundNtpOffset.top |
- - mLocationBarBackgroundPadding.top, |
- mLocationBarBackgroundBounds.right + mLocationBarBackgroundNtpOffset.right |
- + mLocationBarBackgroundPadding.right, |
- mLocationBarBackgroundBounds.bottom + mLocationBarBackgroundNtpOffset.bottom |
- + mLocationBarBackgroundPadding.bottom); |
+ mUrlViewportBounds.left + mLocationBarBackgroundOffset.left, |
+ mUrlViewportBounds.top + mLocationBarBackgroundOffset.top, |
+ mUrlViewportBounds.right + mLocationBarBackgroundOffset.right, |
+ mUrlViewportBounds.bottom + mLocationBarBackgroundOffset.bottom); |
mLocationBarBackground.draw(canvas); |
} |
- float locationBarClipLeft = |
- mLocationBarBackgroundBounds.left + mLocationBarBackgroundNtpOffset.left; |
- float locationBarClipRight = |
- mLocationBarBackgroundBounds.right + mLocationBarBackgroundNtpOffset.right; |
- float locationBarClipTop = |
- mLocationBarBackgroundBounds.top + mLocationBarBackgroundNtpOffset.top; |
- float locationBarClipBottom = |
- mLocationBarBackgroundBounds.bottom + mLocationBarBackgroundNtpOffset.bottom; |
+ float locationBarClipLeft = mUrlViewportBounds.left |
+ + mPhoneLocationBar.getPaddingLeft() + mLocationBarBackgroundOffset.left; |
+ float locationBarClipRight = mUrlViewportBounds.right |
+ - mPhoneLocationBar.getPaddingRight() + mLocationBarBackgroundOffset.right; |
+ float locationBarClipTop = mUrlViewportBounds.top + mPhoneLocationBar.getPaddingTop() |
+ + mLocationBarBackgroundOffset.top; |
+ float locationBarClipBottom = mUrlViewportBounds.bottom |
+ - mPhoneLocationBar.getPaddingBottom() + mLocationBarBackgroundOffset.bottom; |
// When unexpanded, the location bar's visible content boundaries are inset from the |
// viewport used to draw the background. During expansion transitions, compensation |
@@ -1249,7 +1187,7 @@ |
clipped = true; |
} |
- boolean retVal = super.drawChild(canvas, mLocationBar, drawingTime); |
+ boolean retVal = super.drawChild(canvas, mPhoneLocationBar, drawingTime); |
if (clipped) canvas.restore(); |
return retVal; |
@@ -1346,12 +1284,23 @@ |
// The Android framework calls onAnimationEnd() on listeners before Animator#isRunning() |
// returns false. Sometimes this causes the progress bar visibility to be set incorrectly. |
// Update the visibility now that animations are set to null. (see crbug.com/606419) |
- updateProgressBarVisibility(); |
+ updateProgressBarVisibility(mIsInTabSwitcherMode); |
} |
@Override |
public void getLocationBarContentRect(Rect outRect) { |
- updateLocationBarBackgroundBounds(outRect, VisualState.NORMAL); |
+ mLocationBarBackground.getPadding(outRect); |
+ int paddingLeft = outRect.left; |
+ int paddingTop = outRect.top; |
+ int paddingRight = outRect.right; |
+ int paddingBottom = outRect.bottom; |
+ |
+ updateUrlViewportBounds(outRect, VisualState.NORMAL, true); |
+ |
+ outRect.set(outRect.left + paddingLeft, |
+ outRect.top + paddingTop, |
+ outRect.right - paddingRight, |
+ outRect.bottom - paddingBottom); |
} |
@Override |
@@ -1416,7 +1365,7 @@ |
exitAnimation.addListener(new AnimatorListenerAdapter() { |
@Override |
public void onAnimationEnd(Animator animation) { |
- updateViewsForTabSwitcherMode(); |
+ updateViewsForTabSwitcherMode(mIsInTabSwitcherMode); |
} |
}); |
@@ -1431,7 +1380,7 @@ |
exitAnimation.addListener(new AnimatorListenerAdapter() { |
@Override |
public void onAnimationStart(Animator animation) { |
- updateViewsForTabSwitcherMode(); |
+ updateViewsForTabSwitcherMode(mIsInTabSwitcherMode); |
// On older builds, force an update to ensure the new visuals are used |
// when bringing in the toolbar. crbug.com/404571 |
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN) { |
@@ -1442,8 +1391,8 @@ |
@Override |
public void onAnimationEnd(Animator animation) { |
mDelayedTabSwitcherModeAnimation = null; |
- updateShadowVisibility(); |
- updateViewsForTabSwitcherMode(); |
+ updateShadowVisibility(mIsInTabSwitcherMode); |
+ updateViewsForTabSwitcherMode(mIsInTabSwitcherMode); |
} |
}); |
@@ -1460,7 +1409,7 @@ |
setAlpha(1); |
} else { |
setAlpha(mPreTextureCaptureAlpha); |
- updateShadowVisibility(); |
+ updateShadowVisibility(mIsInTabSwitcherMode); |
mPreTextureCaptureAlpha = 1f; |
} |
} |
@@ -1472,9 +1421,9 @@ |
&& mDelayedTabSwitcherModeAnimation.isRunning()); |
} |
- private void updateViewsForTabSwitcherMode() { |
- int tabSwitcherViewsVisibility = mIsInTabSwitcherMode ? VISIBLE : INVISIBLE; |
- int browsingViewsVisibility = mIsInTabSwitcherMode ? INVISIBLE : VISIBLE; |
+ private void updateViewsForTabSwitcherMode(boolean isInTabSwitcherMode) { |
+ int tabSwitcherViewsVisibility = isInTabSwitcherMode ? VISIBLE : INVISIBLE; |
+ int browsingViewsVisibility = isInTabSwitcherMode ? INVISIBLE : VISIBLE; |
for (View view : mTabSwitcherModeViews) { |
view.setVisibility(tabSwitcherViewsVisibility); |
@@ -1483,28 +1432,27 @@ |
view.setVisibility(browsingViewsVisibility); |
} |
if (mShowMenuBadge) { |
- setMenuButtonContentDescription(!mIsInTabSwitcherMode); |
- } |
- |
- updateProgressBarVisibility(); |
- updateVisualsForToolbarState(); |
- } |
- |
- private void updateProgressBarVisibility() { |
+ setMenuButtonContentDescription(!isInTabSwitcherMode); |
+ } |
+ |
+ updateProgressBarVisibility(isInTabSwitcherMode); |
+ updateVisualsForToolbarState(isInTabSwitcherMode); |
+ } |
+ |
+ private void updateProgressBarVisibility(boolean isInTabSwitcherMode) { |
getProgressBar().setVisibility( |
- mIsInTabSwitcherMode || isTabSwitcherAnimationRunning() ? INVISIBLE : VISIBLE); |
+ isInTabSwitcherMode || isTabSwitcherAnimationRunning() ? INVISIBLE : VISIBLE); |
} |
@Override |
protected void setContentAttached(boolean attached) { |
- updateVisualsForToolbarState(); |
+ updateVisualsForToolbarState(mIsInTabSwitcherMode); |
} |
@Override |
protected void setTabSwitcherMode( |
boolean inTabSwitcherMode, boolean showToolbar, boolean delayAnimation) { |
if (mIsInTabSwitcherMode == inTabSwitcherMode) return; |
- mIsInTabSwitcherMode = inTabSwitcherMode; |
finishAnimations(); |
@@ -1521,7 +1469,7 @@ |
updateUrlExpansionAnimation(); |
} |
mNewTabButton.setEnabled(true); |
- updateViewsForTabSwitcherMode(); |
+ updateViewsForTabSwitcherMode(true); |
mTabSwitcherModeAnimation = createEnterTabSwitcherModeAnimation(); |
} else { |
if (!mDelayingTabSwitcherAnimation) { |
@@ -1531,6 +1479,7 @@ |
} |
mAnimateNormalToolbar = showToolbar; |
+ mIsInTabSwitcherMode = inTabSwitcherMode; |
if (mTabSwitcherModeAnimation != null) mTabSwitcherModeAnimation.start(); |
if (SysUtils.isLowEndDevice()) finishAnimations(); |
@@ -1547,7 +1496,7 @@ |
if (!mAnimateNormalToolbar) { |
finishAnimations(); |
- updateVisualsForToolbarState(); |
+ updateVisualsForToolbarState(mIsInTabSwitcherMode); |
} |
if (mDelayingTabSwitcherAnimation) { |
@@ -1555,11 +1504,11 @@ |
mDelayedTabSwitcherModeAnimation = createPostExitTabSwitcherAnimation(); |
mDelayedTabSwitcherModeAnimation.start(); |
} else { |
- updateViewsForTabSwitcherMode(); |
- } |
- } |
- |
- private void updateOverlayDrawables() { |
+ updateViewsForTabSwitcherMode(mIsInTabSwitcherMode); |
+ } |
+ } |
+ |
+ private void updateOverlayDrawables(boolean isInTabSwitcherMode) { |
if (!isNativeLibraryReady()) return; |
VisualState overlayState = computeVisualState(false); |
@@ -1579,7 +1528,7 @@ |
setTabSwitcherAnimationMenuDrawable(); |
setUseLightDrawablesForTextureCapture(); |
- if (!mIsInTabSwitcherMode && !mTextureCaptureMode && mLayoutUpdateHost != null) { |
+ if (!isInTabSwitcherMode && !mTextureCaptureMode && mLayoutUpdateHost != null) { |
// Request a layout update to trigger a texture capture if the tint color is changing |
// and we're not already in texture capture mode. This is necessary if the tab switcher |
// is entered immediately after a change to the tint color without any user interactions |
@@ -1645,9 +1594,9 @@ |
animator.setInterpolator(BakedBezierInterpolator.TRANSFORM_CURVE); |
animators.add(animator); |
- for (int i = 0; i < mLocationBar.getChildCount(); i++) { |
- View childView = mLocationBar.getChildAt(i); |
- if (childView == mLocationBar.getFirstViewVisibleWhenFocused()) break; |
+ for (int i = 0; i < mPhoneLocationBar.getChildCount(); i++) { |
+ View childView = mPhoneLocationBar.getChildAt(i); |
+ if (childView == mPhoneLocationBar.getFirstViewVisibleWhenFocused()) break; |
animator = ObjectAnimator.ofFloat(childView, ALPHA, 0); |
animator.setDuration(URL_FOCUS_CHANGE_ANIMATION_DURATION_MS); |
animator.setInterpolator(BakedBezierInterpolator.TRANSFORM_CURVE); |
@@ -1716,9 +1665,9 @@ |
animators.add(animator); |
} |
- for (int i = 0; i < mLocationBar.getChildCount(); i++) { |
- View childView = mLocationBar.getChildAt(i); |
- if (childView == mLocationBar.getFirstViewVisibleWhenFocused()) break; |
+ for (int i = 0; i < mPhoneLocationBar.getChildCount(); i++) { |
+ View childView = mPhoneLocationBar.getChildAt(i); |
+ if (childView == mPhoneLocationBar.getFirstViewVisibleWhenFocused()) break; |
animator = ObjectAnimator.ofFloat(childView, ALPHA, 1); |
animator.setStartDelay(URL_FOCUS_TOOLBAR_BUTTONS_DURATION_MS); |
animator.setDuration(URL_CLEAR_FOCUS_MENU_DELAY_MS); |
@@ -1731,7 +1680,7 @@ |
// The call to getLayout() can return null briefly during text changes, but as it |
// is only needed for RTL calculations, we proceed if the location bar is showing |
// LTR content. |
- boolean isLocationBarRtl = ApiCompatibilityUtils.isLayoutRtl(mLocationBar); |
+ boolean isLocationBarRtl = ApiCompatibilityUtils.isLayoutRtl(mPhoneLocationBar); |
if (!isLocationBarRtl || mUrlBar.getLayout() != null) { |
int urlBarStartScrollX = 0; |
if (isLocationBarRtl) { |
@@ -1744,8 +1693,10 @@ |
// back to page URLs (despite it continually calling setScrollX with the same |
// number). |
if (mUrlBar.getScrollX() != urlBarStartScrollX) { |
- animator = ObjectAnimator.ofInt(mUrlBar, |
- buildUrlScrollProperty(mLocationBar, isLocationBarRtl), urlBarStartScrollX); |
+ animator = ObjectAnimator.ofInt( |
+ mUrlBar, |
+ buildUrlScrollProperty(mPhoneLocationBar, isLocationBarRtl), |
+ urlBarStartScrollX); |
animator.setDuration(URL_FOCUS_CHANGE_ANIMATION_DURATION_MS); |
animator.setInterpolator(BakedBezierInterpolator.TRANSFORM_CURVE); |
animators.add(animator); |
@@ -1821,7 +1772,7 @@ |
mLayoutLocationBarInFocusedMode = false; |
requestLayout(); |
} |
- mLocationBar.finishUrlFocusChange(hasFocus); |
+ mPhoneLocationBar.finishUrlFocusChange(hasFocus); |
mUrlFocusChangeInProgress = false; |
} |
}); |
@@ -1834,7 +1785,7 @@ |
// allows the menu to translate off the screen on scroll to match the tabbed behavior. |
if (mVisualState == VisualState.NEW_TAB_NORMAL) return true; |
- return !mLocationBar.showMenuButtonInOmnibox() && super.shouldShowMenuButton(); |
+ return !mPhoneLocationBar.showMenuButtonInOmnibox() && super.shouldShowMenuButton(); |
} |
@Override |
@@ -1883,14 +1834,14 @@ |
protected void onTabContentViewChanged() { |
super.onTabContentViewChanged(); |
updateNtpAnimationState(); |
- updateVisualsForToolbarState(); |
+ updateVisualsForToolbarState(mIsInTabSwitcherMode); |
} |
@Override |
protected void onTabOrModelChanged() { |
super.onTabOrModelChanged(); |
updateNtpAnimationState(); |
- updateVisualsForToolbarState(); |
+ updateVisualsForToolbarState(mIsInTabSwitcherMode); |
if (mHasCheckedIfTabSwitcherCalloutIsNecessary) { |
dismissTabSwitcherCallout(); |
@@ -1916,7 +1867,7 @@ |
if (initialColor == finalColor) return; |
boolean shouldUseOpaque = ColorUtils.shouldUseOpaqueTextboxBackground(finalColor); |
- final int initialAlpha = mLocationBarBackgroundAlpha; |
+ final int initialAlpha = mUrlBackgroundAlpha; |
final int finalAlpha = |
shouldUseOpaque ? 255 : LOCATION_BAR_TRANSPARENT_BACKGROUND_ALPHA; |
final boolean shouldAnimateAlpha = initialAlpha != finalAlpha; |
@@ -1928,7 +1879,7 @@ |
public void onAnimationUpdate(ValueAnimator animation) { |
float fraction = animation.getAnimatedFraction(); |
if (shouldAnimateAlpha) { |
- mLocationBarBackgroundAlpha = |
+ mUrlBackgroundAlpha = |
(int) (MathUtils.interpolate(initialAlpha, finalAlpha, fraction)); |
} |
updateToolbarBackground( |
@@ -1939,7 +1890,7 @@ |
@Override |
public void onAnimationEnd(Animator animation) { |
mBrandColorTransitionActive = false; |
- updateVisualsForToolbarState(); |
+ updateVisualsForToolbarState(mIsInTabSwitcherMode); |
} |
}); |
mBrandColorTransitionAnimation.start(); |
@@ -1985,7 +1936,7 @@ |
post(new Runnable() { |
@Override |
public void run() { |
- updateVisualsForToolbarState(); |
+ updateVisualsForToolbarState(mIsInTabSwitcherMode); |
updateNtpAnimationState(); |
} |
}); |
@@ -2007,8 +1958,8 @@ |
return ntp != null && ntp.isLocationBarShownInNTP(); |
} |
- private void updateShadowVisibility() { |
- boolean shouldDrawShadow = !mIsInTabSwitcherMode && !isTabSwitcherAnimationRunning(); |
+ private void updateShadowVisibility(boolean isInTabSwitcherMode) { |
+ boolean shouldDrawShadow = !isInTabSwitcherMode && !isTabSwitcherAnimationRunning(); |
int shadowVisibility = shouldDrawShadow ? View.VISIBLE : View.INVISIBLE; |
if (mToolbarShadow.getVisibility() != shadowVisibility) { |
@@ -2025,10 +1976,10 @@ |
return VisualState.NORMAL; |
} |
- private void updateVisualsForToolbarState() { |
+ private void updateVisualsForToolbarState(boolean isInTabSwitcherMode) { |
final boolean isIncognito = isIncognito(); |
- VisualState newVisualState = computeVisualState(mIsInTabSwitcherMode); |
+ VisualState newVisualState = computeVisualState(isInTabSwitcherMode); |
// If we are navigating to or from a brand color, allow the transition animation |
// to run to completion as it will handle the triggering this path again and committing |
@@ -2073,9 +2024,8 @@ |
mVisualState = newVisualState; |
- updateOverlayDrawables(); |
- updateShadowVisibility(); |
- updateUrlExpansionAnimation(); |
+ updateOverlayDrawables(isInTabSwitcherMode); |
+ updateShadowVisibility(isInTabSwitcherMode); |
if (!visualStateChanged) { |
if (mVisualState == VisualState.NEW_TAB_NORMAL) { |
updateNtpTransitionAnimation(); |
@@ -2085,27 +2035,26 @@ |
mUseLightToolbarDrawables = false; |
mUnfocusedLocationBarUsesTransparentBg = false; |
- mLocationBarBackgroundAlpha = 255; |
+ mUrlBackgroundAlpha = 255; |
updateToolbarBackground(mVisualState); |
getProgressBar().setThemeColor(themeColorForProgressBar, isIncognito()); |
- if (mIsInTabSwitcherMode) { |
+ if (isInTabSwitcherMode) { |
mUseLightToolbarDrawables = true; |
- mLocationBarBackgroundAlpha = LOCATION_BAR_TRANSPARENT_BACKGROUND_ALPHA; |
+ mUrlBackgroundAlpha = LOCATION_BAR_TRANSPARENT_BACKGROUND_ALPHA; |
getProgressBar().setBackgroundColor(mProgressBackBackgroundColorWhite); |
getProgressBar().setForegroundColor(ApiCompatibilityUtils.getColor(getResources(), |
R.color.progress_bar_foreground_white)); |
} else if (isIncognito()) { |
mUseLightToolbarDrawables = true; |
- mLocationBarBackgroundAlpha = LOCATION_BAR_TRANSPARENT_BACKGROUND_ALPHA; |
+ mUrlBackgroundAlpha = LOCATION_BAR_TRANSPARENT_BACKGROUND_ALPHA; |
} else if (mVisualState == VisualState.BRAND_COLOR) { |
mUseLightToolbarDrawables = |
ColorUtils.shouldUseLightForegroundOnBackground(currentPrimaryColor); |
mUnfocusedLocationBarUsesTransparentBg = |
!ColorUtils.shouldUseOpaqueTextboxBackground(currentPrimaryColor); |
- mLocationBarBackgroundAlpha = mUnfocusedLocationBarUsesTransparentBg |
- ? LOCATION_BAR_TRANSPARENT_BACKGROUND_ALPHA |
- : 255; |
+ mUrlBackgroundAlpha = mUnfocusedLocationBarUsesTransparentBg |
+ ? LOCATION_BAR_TRANSPARENT_BACKGROUND_ALPHA : 255; |
} |
if (mToggleTabStackButton != null) { |
@@ -2120,7 +2069,7 @@ |
if (shouldShowMenuButton()) { |
mMenuButton.setTint(mUseLightToolbarDrawables ? mLightModeTint : mDarkModeTint); |
- if (mShowMenuBadge && !mIsInTabSwitcherMode) { |
+ if (mShowMenuBadge && !isInTabSwitcherMode) { |
setAppMenuUpdateBadgeDrawable(mUseLightToolbarDrawables); |
} |
} |
@@ -2128,25 +2077,25 @@ |
if (isReturnButtonVisible()) mReturnButton.setTint(tint); |
if (mIsHomeButtonEnabled) mHomeButton.setTint(tint); |
- mLocationBar.updateVisualsForState(); |
+ mPhoneLocationBar.updateVisualsForState(); |
// Remove the side padding for incognito to ensure the badge icon aligns correctly with the |
// background of the location bar. |
if (isIncognito) { |
- mLocationBar.setPadding( |
- 0, mLocationBarBackgroundPadding.top, 0, mLocationBarBackgroundPadding.bottom); |
+ mPhoneLocationBar.setPadding( |
+ 0, mUrlBackgroundPadding.top, 0, mUrlBackgroundPadding.bottom); |
} else { |
- mLocationBar.setPadding( |
- mLocationBarBackgroundPadding.left, mLocationBarBackgroundPadding.top, |
- mLocationBarBackgroundPadding.right, mLocationBarBackgroundPadding.bottom); |
+ mPhoneLocationBar.setPadding( |
+ mUrlBackgroundPadding.left, mUrlBackgroundPadding.top, |
+ mUrlBackgroundPadding.right, mUrlBackgroundPadding.bottom); |
} |
// We update the alpha before comparing the visual state as we need to change |
// its value when entering and exiting TabSwitcher mode. |
- if (isLocationBarShownInNTP() && !mIsInTabSwitcherMode) { |
+ if (isLocationBarShownInNTP() && !isInTabSwitcherMode) { |
updateNtpTransitionAnimation(); |
} |
- if (mIsInTabSwitcherMode) mNewTabButton.setIsIncognito(isIncognito); |
+ if (isInTabSwitcherMode) mNewTabButton.setIsIncognito(isIncognito); |
CharSequence newTabContentDescription = getResources().getText( |
isIncognito ? R.string.accessibility_toolbar_btn_new_incognito_tab : |
@@ -2161,7 +2110,7 @@ |
@Override |
public LocationBar getLocationBar() { |
- return mLocationBar; |
+ return mPhoneLocationBar; |
} |
@Override |
@@ -2185,7 +2134,7 @@ |
setAppMenuUpdateBadgeToVisible(true); |
} |
- mLocationBar.showAppMenuUpdateBadge(true); |
+ mPhoneLocationBar.showAppMenuUpdateBadge(true); |
} |
@Override |
@@ -2198,7 +2147,7 @@ |
mTabSwitcherAnimationMenuBadgeLightDrawable = null; |
} |
- mLocationBar.removeAppMenuUpdateBadge(animate); |
+ mPhoneLocationBar.removeAppMenuUpdateBadge(animate); |
} |
private void setTabSwitcherAnimationMenuDrawable() { |