| Index: chrome/android/java/src/org/chromium/chrome/browser/firstrun/ImageCarousel.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ImageCarousel.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ImageCarousel.java
|
| index df5a61f7a456b7fccc045f36258de5f03fb01d21..499bac28b4c96a459c76b4de479442ada3172857 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ImageCarousel.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ImageCarousel.java
|
| @@ -151,6 +151,7 @@ public class ImageCarousel extends FrameLayout implements GestureDetector.OnGest
|
| private float mPosition = 0f;
|
|
|
| private ImageCarouselPositionChangeListener mListener;
|
| + private ImageView mCheckmark;
|
| private int mLastPosition = 0;
|
| private boolean mNeedsPositionUpdates = true;
|
|
|
| @@ -221,24 +222,33 @@ public class ImageCarousel extends FrameLayout implements GestureDetector.OnGest
|
| }
|
|
|
| /**
|
| - * Sets the ImageCarousel to signed in mode that disables scrolling, animates away the
|
| - * background images, and displays a checkmark next to the account image that was chosen.
|
| + * Sets whether the ImageCarousel is in signed in mode. This mode disables scrolling, animates
|
| + * away the background images, and displays a checkmark next to the chosen account image.
|
| + * @param isSignedIn Whether the ImageCarousel should in signed in mode or not.
|
| */
|
| - public void setSignedInMode() {
|
| - mScrollingDisabled = true;
|
| - mAccountSelected = true;
|
| + public void setSignedInMode(boolean isSignedIn) {
|
| + if (isSignedIn == mAccountSelected) return;
|
| +
|
| + mScrollingDisabled = isSignedIn;
|
| + mAccountSelected = isSignedIn;
|
| setPosition(getCenterPosition());
|
|
|
| - ImageView checkmark = new ImageView(getContext());
|
| - checkmark.setImageResource(R.drawable.verify_checkmark);
|
| - setLayoutParamsForCheckmark(checkmark);
|
| - addView(checkmark);
|
| + if (mCheckmark == null) {
|
| + mCheckmark = new ImageView(getContext());
|
| + mCheckmark.setImageResource(R.drawable.verify_checkmark);
|
| + setLayoutParamsForCheckmark(mCheckmark);
|
| + addView(mCheckmark);
|
| + }
|
|
|
| if (mFadeInOutAnimator != null) mFadeInOutAnimator.cancel();
|
| AnimatorSet animatorSet = new AnimatorSet();
|
| - animatorSet.playTogether(
|
| - ObjectAnimator.ofFloat(this, BACKGROUND_IMAGE_ALPHA, 0),
|
| - ObjectAnimator.ofFloat(checkmark, View.ALPHA, 0.0f, 1.0f));
|
| + if (isSignedIn) {
|
| + animatorSet.playTogether(ObjectAnimator.ofFloat(this, BACKGROUND_IMAGE_ALPHA, 0),
|
| + ObjectAnimator.ofFloat(mCheckmark, View.ALPHA, 0.0f, 1.0f));
|
| + } else {
|
| + animatorSet.playTogether(ObjectAnimator.ofFloat(this, BACKGROUND_IMAGE_ALPHA, 1),
|
| + ObjectAnimator.ofFloat(mCheckmark, View.ALPHA, 1.0f, 0.0f));
|
| + }
|
| mFadeInOutAnimator = animatorSet;
|
| mFadeInOutAnimator.setDuration(ACCOUNT_SIGNED_IN_ANIMATION_DURATION_MS);
|
| mFadeInOutAnimator.start();
|
|
|