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
*/
protected void finishUrlFocusChange(boolean hasFocus) {
setKeyboardVisibilityInternal(true);
mStatusViewCoordinator.onUrlAnimationFinished(hasFocus);
setUrlFocusChangeInProgress(false);
updateShouldAnimateIconChanges();
}
......
......@@ -307,6 +307,7 @@ public class LocationBarPhone extends LocationBarLayout {
mUrlActionContainer.setVisibility(GONE);
}
updateUrlBarPaddingForSearchEngineIcon();
mStatusViewCoordinator.onUrlAnimationFinished(hasFocus);
}
@Override
......
......@@ -77,6 +77,7 @@ class StatusMediator {
private boolean mIsSearchEngineStateSetup;
private boolean mIsSearchEngineGoogle;
private boolean mShouldCancelCustomFavicon;
private boolean mIsTablet;
private int mUrlMinWidth;
private int mSeparatorMinWidth;
......@@ -111,7 +112,7 @@ class StatusMediator {
private final float mTextOffsetAdjustedScale;
StatusMediator(PropertyModel model, Resources resources, Context context,
UrlBarEditingTextStateProvider urlBarEditingTextStateProvider) {
UrlBarEditingTextStateProvider urlBarEditingTextStateProvider, boolean isTablet) {
mModel = model;
mDelegate = new StatusMediatorDelegate();
updateColorTheme();
......@@ -128,6 +129,8 @@ class StatusMediator {
- resources.getDimensionPixelSize(
R.dimen.sei_location_bar_icon_end_padding));
mTextOffsetAdjustedScale = mTextOffsetThreshold == 1 ? 1 : (1 - mTextOffsetThreshold);
mIsTablet = isTablet;
}
/**
......@@ -262,7 +265,12 @@ class StatusMediator {
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) {
// 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())) {
return;
}
......@@ -286,6 +294,9 @@ class StatusMediator {
*/
void setUrlFocusChangePercent(float 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())) {
return;
}
......
......@@ -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.TabImpl;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
......@@ -50,7 +49,7 @@ public class StatusViewCoordinator implements View.OnClickListener, UrlTextChang
PropertyModelChangeProcessor.create(mModel, mStatusView, new StatusViewBinder());
mMediator = new StatusMediator(mModel, mStatusView.getResources(), mStatusView.getContext(),
urlBarEditingTextStateProvider);
urlBarEditingTextStateProvider, isTablet);
Resources res = mStatusView.getResources();
mMediator.setUrlMinWidth(res.getDimensionPixelSize(R.dimen.location_bar_min_url_width)
......@@ -255,7 +254,7 @@ public class StatusViewCoordinator implements View.OnClickListener, UrlTextChang
**/
private void reconcileVisualState(boolean showStatusIconWhenFocused) {
// No reconciliation is needed on tablet because the status icon is always shown.
if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mStatusView.getContext())) return;
if (mIsTablet) return;
// State requirements:
// - The ToolbarDataProvider and views are not null.
......
......@@ -72,8 +72,8 @@ public final class StatusMediatorUnitTest {
mResources = mContext.getResources();
mModel = new PropertyModel(StatusProperties.ALL_KEYS);
mMediator =
new StatusMediator(mModel, mResources, mContext, mUrlBarEditingTextStateProvider);
mMediator = new StatusMediator(mModel, mResources, mContext,
mUrlBarEditingTextStateProvider, /* isTablet */ false);
mMediator.setToolbarCommonPropertiesModel(mToolbarCommonPropertiesModel);
mMediator.setDelegateForTesting(mDelegate);
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