Commit 66c9a252 authored by bttk's avatar bttk Committed by Chromium LUCI CQ

[ToolbarMVC] Move populateFadeAnimations to LocationBarCoordinatorPhone

getOffsetOfFirstVisibleFocusedView is moved as well

Change-Id: I96bc2a476fab2cd16372915ee0141a28236eeff4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2622842Reviewed-by: default avatarPatrick Noland <pnoland@chromium.org>
Reviewed-by: default avatarFilip Gorski <fgorski@chromium.org>
Commit-Queue: bttk <bttk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#842585}
parent 0d150c2c
...@@ -5,10 +5,12 @@ ...@@ -5,10 +5,12 @@
package org.chromium.chrome.browser.omnibox; package org.chromium.chrome.browser.omnibox;
import android.animation.Animator; import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.view.View; import android.view.View;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator;
import org.chromium.ui.interpolators.BakedBezierInterpolator;
import java.util.List; import java.util.List;
...@@ -32,11 +34,19 @@ public class LocationBarCoordinatorPhone implements LocationBarCoordinator.SubCo ...@@ -32,11 +34,19 @@ public class LocationBarCoordinatorPhone implements LocationBarCoordinator.SubCo
} }
/** /**
* Returns width of child views before the first view that would be visible when location * Returns the total width of child views before the first view that would be visible when
* bar is focused. The first visible, focused view should be either url bar or status icon. * location bar is focused. The first visible, focused view should be either url bar or status
* icon.
*/ */
public int getOffsetOfFirstVisibleFocusedView() { public int getOffsetOfFirstVisibleFocusedView() {
return mLocationBarPhone.getOffsetOfFirstVisibleFocusedView(); int visibleWidth = 0;
for (int i = 0; i < mLocationBarPhone.getChildCount(); i++) {
View child = mLocationBarPhone.getChildAt(i);
if (child == mLocationBarPhone.getFirstVisibleFocusedView()) break;
if (child.getVisibility() == View.GONE) continue;
visibleWidth += child.getMeasuredWidth();
}
return visibleWidth;
} }
/** /**
...@@ -49,7 +59,15 @@ public class LocationBarCoordinatorPhone implements LocationBarCoordinator.SubCo ...@@ -49,7 +59,15 @@ public class LocationBarCoordinatorPhone implements LocationBarCoordinator.SubCo
*/ */
public void populateFadeAnimations( public void populateFadeAnimations(
List<Animator> animators, long startDelayMs, long durationMs, float targetAlpha) { List<Animator> animators, long startDelayMs, long durationMs, float targetAlpha) {
mLocationBarPhone.populateFadeAnimations(animators, startDelayMs, durationMs, targetAlpha); for (int i = 0; i < mLocationBarPhone.getChildCount(); i++) {
View child = mLocationBarPhone.getChildAt(i);
if (child == mLocationBarPhone.getFirstVisibleFocusedView()) break;
Animator animator = ObjectAnimator.ofFloat(child, View.ALPHA, targetAlpha);
animator.setStartDelay(startDelayMs);
animator.setDuration(durationMs);
animator.setInterpolator(BakedBezierInterpolator.TRANSFORM_CURVE);
animators.add(animator);
}
} }
/** /**
......
...@@ -4,8 +4,6 @@ ...@@ -4,8 +4,6 @@
package org.chromium.chrome.browser.omnibox; package org.chromium.chrome.browser.omnibox;
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.content.Context; import android.content.Context;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Rect; import android.graphics.Rect;
...@@ -13,12 +11,8 @@ import android.util.AttributeSet; ...@@ -13,12 +11,8 @@ import android.util.AttributeSet;
import android.view.TouchDelegate; import android.view.TouchDelegate;
import android.view.View; import android.view.View;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import org.chromium.base.TraceEvent; import org.chromium.base.TraceEvent;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.ui.interpolators.BakedBezierInterpolator;
import java.util.List;
/** /**
* A location bar implementation specific for smaller/phone screens. * A location bar implementation specific for smaller/phone screens.
...@@ -206,38 +200,11 @@ class LocationBarPhone extends LocationBarLayout { ...@@ -206,38 +200,11 @@ class LocationBarPhone extends LocationBarLayout {
} }
/** /**
* @return Width of child views before the first view that would be visible when location bar is * Returns the first child view that would be visible when location bar is focused. The first
* focused. The first visible, focused view should be either url bar or status icon. * visible, focused view should be either url bar or status icon.
*/
public int getOffsetOfFirstVisibleFocusedView() {
int visibleWidth = 0;
for (int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
if (child == mFirstVisibleFocusedView) break;
if (child.getVisibility() == GONE) continue;
visibleWidth += child.getMeasuredWidth();
}
return visibleWidth;
}
/**
* Populates fade animators of status icon for location bar focus change animation.
* @param animators The target list to add animators to.
* @param startDelayMs Start delay of fade animation in milliseconds.
* @param durationMs Duration of fade animation in milliseconds.
* @param targetAlpha Target alpha value.
*/ */
public void populateFadeAnimations( /* package */ View getFirstVisibleFocusedView() {
List<Animator> animators, long startDelayMs, long durationMs, float targetAlpha) { return mFirstVisibleFocusedView;
for (int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
if (child == mFirstVisibleFocusedView) break;
Animator animator = ObjectAnimator.ofFloat(child, ALPHA, targetAlpha);
animator.setStartDelay(startDelayMs);
animator.setDuration(durationMs);
animator.setInterpolator(BakedBezierInterpolator.TRANSFORM_CURVE);
animators.add(animator);
}
} }
/** /**
......
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