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(); |