Commit 7d149522 authored by Brandon Wylie's avatar Brandon Wylie Committed by Commit Bot

Move onUrlAnimationFinished from LocationBarLayout to LocationBarPhone

Bug: 1059898
Change-Id: I22482839c28491a00d7f473e924de0710e8c94db
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2127741
Commit-Queue: Brandon Wylie <wylieb@chromium.org>
Reviewed-by: default avatarEnder <ender@google.com>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#755116}
parent 2a103d18
...@@ -1191,7 +1191,6 @@ public class LocationBarLayout extends FrameLayout ...@@ -1191,7 +1191,6 @@ public class LocationBarLayout extends FrameLayout
*/ */
protected void finishUrlFocusChange(boolean hasFocus) { protected void finishUrlFocusChange(boolean hasFocus) {
setKeyboardVisibilityInternal(true); setKeyboardVisibilityInternal(true);
mStatusViewCoordinator.onUrlAnimationFinished(hasFocus);
setUrlFocusChangeInProgress(false); setUrlFocusChangeInProgress(false);
updateShouldAnimateIconChanges(); updateShouldAnimateIconChanges();
} }
......
...@@ -307,6 +307,7 @@ public class LocationBarPhone extends LocationBarLayout { ...@@ -307,6 +307,7 @@ public class LocationBarPhone extends LocationBarLayout {
mUrlActionContainer.setVisibility(GONE); mUrlActionContainer.setVisibility(GONE);
} }
updateUrlBarPaddingForSearchEngineIcon(); updateUrlBarPaddingForSearchEngineIcon();
mStatusViewCoordinator.onUrlAnimationFinished(hasFocus);
} }
@Override @Override
......
...@@ -77,6 +77,7 @@ class StatusMediator { ...@@ -77,6 +77,7 @@ class StatusMediator {
private boolean mIsSearchEngineStateSetup; private boolean mIsSearchEngineStateSetup;
private boolean mIsSearchEngineGoogle; private boolean mIsSearchEngineGoogle;
private boolean mShouldCancelCustomFavicon; private boolean mShouldCancelCustomFavicon;
private boolean mIsTablet;
private int mUrlMinWidth; private int mUrlMinWidth;
private int mSeparatorMinWidth; private int mSeparatorMinWidth;
...@@ -111,7 +112,7 @@ class StatusMediator { ...@@ -111,7 +112,7 @@ class StatusMediator {
private final float mTextOffsetAdjustedScale; private final float mTextOffsetAdjustedScale;
StatusMediator(PropertyModel model, Resources resources, Context context, StatusMediator(PropertyModel model, Resources resources, Context context,
UrlBarEditingTextStateProvider urlBarEditingTextStateProvider) { UrlBarEditingTextStateProvider urlBarEditingTextStateProvider, boolean isTablet) {
mModel = model; mModel = model;
mDelegate = new StatusMediatorDelegate(); mDelegate = new StatusMediatorDelegate();
updateColorTheme(); updateColorTheme();
...@@ -128,6 +129,8 @@ class StatusMediator { ...@@ -128,6 +129,8 @@ class StatusMediator {
- resources.getDimensionPixelSize( - resources.getDimensionPixelSize(
R.dimen.sei_location_bar_icon_end_padding)); R.dimen.sei_location_bar_icon_end_padding));
mTextOffsetAdjustedScale = mTextOffsetThreshold == 1 ? 1 : (1 - mTextOffsetThreshold); mTextOffsetAdjustedScale = mTextOffsetThreshold == 1 ? 1 : (1 - mTextOffsetThreshold);
mIsTablet = isTablet;
} }
/** /**
...@@ -262,7 +265,12 @@ class StatusMediator { ...@@ -262,7 +265,12 @@ class StatusMediator {
if (!mUrlHasFocus) updateLocationBarIconForUrlBarAutocompleteText(""); if (!mUrlHasFocus) updateLocationBarIconForUrlBarAutocompleteText("");
} }
// Extra logic to support extra NTP use cases which show the status icon when animating and when
// focused, but hide it when unfocused.
void setUrlAnimationFinished(boolean urlHasFocus) { void setUrlAnimationFinished(boolean urlHasFocus) {
// On tablets, the status icon should always be shown so the following logic doesn't apply.
assert !mIsTablet : "This logic shouldn't be called on tablets";
if (!mDelegate.shouldShowSearchEngineLogo(mToolbarCommonPropertiesModel.isIncognito())) { if (!mDelegate.shouldShowSearchEngineLogo(mToolbarCommonPropertiesModel.isIncognito())) {
return; return;
} }
...@@ -286,6 +294,9 @@ class StatusMediator { ...@@ -286,6 +294,9 @@ class StatusMediator {
*/ */
void setUrlFocusChangePercent(float percent) { void setUrlFocusChangePercent(float percent) {
mUrlFocusPercent = percent; mUrlFocusPercent = percent;
// On tablets, the status icon should always be shown so the following logic doesn't apply.
assert !mIsTablet : "This logic shouldn't be called on tablets";
if (!mDelegate.shouldShowSearchEngineLogo(mToolbarCommonPropertiesModel.isIncognito())) { if (!mDelegate.shouldShowSearchEngineLogo(mToolbarCommonPropertiesModel.isIncognito())) {
return; return;
} }
......
...@@ -19,7 +19,6 @@ import org.chromium.chrome.browser.page_info.PageInfoController; ...@@ -19,7 +19,6 @@ import org.chromium.chrome.browser.page_info.PageInfoController;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabImpl; import org.chromium.chrome.browser.tab.TabImpl;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.modelutil.PropertyModelChangeProcessor; import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
...@@ -50,7 +49,7 @@ public class StatusViewCoordinator implements View.OnClickListener, UrlTextChang ...@@ -50,7 +49,7 @@ public class StatusViewCoordinator implements View.OnClickListener, UrlTextChang
PropertyModelChangeProcessor.create(mModel, mStatusView, new StatusViewBinder()); PropertyModelChangeProcessor.create(mModel, mStatusView, new StatusViewBinder());
mMediator = new StatusMediator(mModel, mStatusView.getResources(), mStatusView.getContext(), mMediator = new StatusMediator(mModel, mStatusView.getResources(), mStatusView.getContext(),
urlBarEditingTextStateProvider); urlBarEditingTextStateProvider, isTablet);
Resources res = mStatusView.getResources(); Resources res = mStatusView.getResources();
mMediator.setUrlMinWidth(res.getDimensionPixelSize(R.dimen.location_bar_min_url_width) mMediator.setUrlMinWidth(res.getDimensionPixelSize(R.dimen.location_bar_min_url_width)
...@@ -255,7 +254,7 @@ public class StatusViewCoordinator implements View.OnClickListener, UrlTextChang ...@@ -255,7 +254,7 @@ public class StatusViewCoordinator implements View.OnClickListener, UrlTextChang
**/ **/
private void reconcileVisualState(boolean showStatusIconWhenFocused) { private void reconcileVisualState(boolean showStatusIconWhenFocused) {
// No reconciliation is needed on tablet because the status icon is always shown. // No reconciliation is needed on tablet because the status icon is always shown.
if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mStatusView.getContext())) return; if (mIsTablet) return;
// State requirements: // State requirements:
// - The ToolbarDataProvider and views are not null. // - The ToolbarDataProvider and views are not null.
......
...@@ -72,8 +72,8 @@ public final class StatusMediatorUnitTest { ...@@ -72,8 +72,8 @@ public final class StatusMediatorUnitTest {
mResources = mContext.getResources(); mResources = mContext.getResources();
mModel = new PropertyModel(StatusProperties.ALL_KEYS); mModel = new PropertyModel(StatusProperties.ALL_KEYS);
mMediator = mMediator = new StatusMediator(mModel, mResources, mContext,
new StatusMediator(mModel, mResources, mContext, mUrlBarEditingTextStateProvider); mUrlBarEditingTextStateProvider, /* isTablet */ false);
mMediator.setToolbarCommonPropertiesModel(mToolbarCommonPropertiesModel); mMediator.setToolbarCommonPropertiesModel(mToolbarCommonPropertiesModel);
mMediator.setDelegateForTesting(mDelegate); mMediator.setDelegateForTesting(mDelegate);
mBitmap = Bitmap.createBitmap(10, 10, Bitmap.Config.ARGB_8888); mBitmap = Bitmap.createBitmap(10, 10, Bitmap.Config.ARGB_8888);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment