aboutsummaryrefslogtreecommitdiff
path: root/common/src/com/android/tv/common/ui/setup/animation/FadeAndShortSlide.java
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/com/android/tv/common/ui/setup/animation/FadeAndShortSlide.java')
-rw-r--r--common/src/com/android/tv/common/ui/setup/animation/FadeAndShortSlide.java127
1 files changed, 69 insertions, 58 deletions
diff --git a/common/src/com/android/tv/common/ui/setup/animation/FadeAndShortSlide.java b/common/src/com/android/tv/common/ui/setup/animation/FadeAndShortSlide.java
index e1a8e60c..60ffb70f 100644
--- a/common/src/com/android/tv/common/ui/setup/animation/FadeAndShortSlide.java
+++ b/common/src/com/android/tv/common/ui/setup/animation/FadeAndShortSlide.java
@@ -29,15 +29,12 @@ import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-/**
- * Execute horizontal slide of 1/4 width and fade (to workaround bug 23718734)
- */
+/** Execute horizontal slide of 1/4 width and fade (to workaround bug 23718734) */
public class FadeAndShortSlide extends Visibility {
private static final TimeInterpolator APPEAR_INTERPOLATOR = new DecelerateInterpolator();
private static final TimeInterpolator DISAPPEAR_INTERPOLATOR = new AccelerateInterpolator();
@@ -48,39 +45,45 @@ public class FadeAndShortSlide extends Visibility {
private static final int DEFAULT_DISTANCE = 200;
- private static abstract class CalculateSlide {
+ private abstract static class CalculateSlide {
/** Returns the translation value for view when it goes out of the scene */
- public abstract float getGoneX(ViewGroup sceneRoot, View view, int[] position,
- int distance);
+ public abstract float getGoneX(
+ ViewGroup sceneRoot, View view, int[] position, int distance);
}
- private static final CalculateSlide sCalculateStart = new CalculateSlide() {
- @Override
- public float getGoneX(ViewGroup sceneRoot, View view, int[] position, int distance) {
- final boolean isRtl = sceneRoot.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
- final float x;
- if (isRtl) {
- x = view.getTranslationX() + distance;
- } else {
- x = view.getTranslationX() - distance;
- }
- return x;
- }
- };
-
- private static final CalculateSlide sCalculateEnd = new CalculateSlide() {
- @Override
- public float getGoneX(ViewGroup sceneRoot, View view, int[] position, int distance) {
- final boolean isRtl = sceneRoot.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
- final float x;
- if (isRtl) {
- x = view.getTranslationX() - distance;
- } else {
- x = view.getTranslationX() + distance;
- }
- return x;
- }
- };
+ private static final CalculateSlide sCalculateStart =
+ new CalculateSlide() {
+ @Override
+ public float getGoneX(
+ ViewGroup sceneRoot, View view, int[] position, int distance) {
+ final boolean isRtl =
+ sceneRoot.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
+ final float x;
+ if (isRtl) {
+ x = view.getTranslationX() + distance;
+ } else {
+ x = view.getTranslationX() - distance;
+ }
+ return x;
+ }
+ };
+
+ private static final CalculateSlide sCalculateEnd =
+ new CalculateSlide() {
+ @Override
+ public float getGoneX(
+ ViewGroup sceneRoot, View view, int[] position, int distance) {
+ final boolean isRtl =
+ sceneRoot.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
+ final float x;
+ if (isRtl) {
+ x = view.getTranslationX() - distance;
+ } else {
+ x = view.getTranslationX() + distance;
+ }
+ return x;
+ }
+ };
private static final ViewPositionComparator sViewPositionComparator =
new ViewPositionComparator();
@@ -131,9 +134,10 @@ public class FadeAndShortSlide extends Visibility {
getTransitionTargets((ViewGroup) parentForDelay, transitionTargets);
sViewPositionComparator.mParentForDelay = parentForDelay;
sViewPositionComparator.mIsLtr = view.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR;
- sViewPositionComparator.mToLeft = sViewPositionComparator.mIsLtr
- ? mSlideEdge == (appear ? Gravity.END : Gravity.START)
- : mSlideEdge == (appear ? Gravity.START : Gravity.END);
+ sViewPositionComparator.mToLeft =
+ sViewPositionComparator.mIsLtr
+ ? mSlideEdge == (appear ? Gravity.END : Gravity.START)
+ : mSlideEdge == (appear ? Gravity.START : Gravity.END);
Collections.sort(transitionTargets, sViewPositionComparator);
return transitionTargets.indexOf(view);
}
@@ -180,8 +184,8 @@ public class FadeAndShortSlide extends Visibility {
captureValues(transitionValues);
int delayIndex = getDelayOrder(transitionValues.view, false);
if (delayIndex > 0) {
- transitionValues.values.put(PROPNAME_DELAY,
- delayIndex * SetupAnimationHelper.DELAY_BETWEEN_SIBLINGS_MS);
+ transitionValues.values.put(
+ PROPNAME_DELAY, delayIndex * SetupAnimationHelper.DELAY_BETWEEN_SIBLINGS_MS);
}
}
@@ -192,8 +196,8 @@ public class FadeAndShortSlide extends Visibility {
captureValues(transitionValues);
int delayIndex = getDelayOrder(transitionValues.view, true);
if (delayIndex > 0) {
- transitionValues.values.put(PROPNAME_DELAY,
- delayIndex * SetupAnimationHelper.DELAY_BETWEEN_SIBLINGS_MS);
+ transitionValues.values.put(
+ PROPNAME_DELAY, delayIndex * SetupAnimationHelper.DELAY_BETWEEN_SIBLINGS_MS);
}
}
@@ -212,7 +216,10 @@ public class FadeAndShortSlide extends Visibility {
}
@Override
- public Animator onAppear(ViewGroup sceneRoot, View view, TransitionValues startValues,
+ public Animator onAppear(
+ ViewGroup sceneRoot,
+ View view,
+ TransitionValues startValues,
TransitionValues endValues) {
if (endValues == null) {
return null;
@@ -221,15 +228,16 @@ public class FadeAndShortSlide extends Visibility {
int left = position[0];
float endX = view.getTranslationX();
float startX = mSlideCalculator.getGoneX(sceneRoot, view, position, mDistance);
- final Animator slideAnimator = TranslationAnimationCreator.createAnimation(view, endValues,
- left, startX, endX, APPEAR_INTERPOLATOR, this);
+ final Animator slideAnimator =
+ TranslationAnimationCreator.createAnimation(
+ view, endValues, left, startX, endX, APPEAR_INTERPOLATOR, this);
if (slideAnimator == null) {
return null;
}
mFade.setInterpolator(APPEAR_INTERPOLATOR);
final AnimatorSet set = new AnimatorSet();
set.play(slideAnimator).with(mFade.onAppear(sceneRoot, view, startValues, endValues));
- Long delay = (Long ) endValues.values.get(PROPNAME_DELAY);
+ Long delay = (Long) endValues.values.get(PROPNAME_DELAY);
if (delay != null) {
set.setStartDelay(delay);
}
@@ -237,7 +245,10 @@ public class FadeAndShortSlide extends Visibility {
}
@Override
- public Animator onDisappear(ViewGroup sceneRoot, final View view, TransitionValues startValues,
+ public Animator onDisappear(
+ ViewGroup sceneRoot,
+ final View view,
+ TransitionValues startValues,
TransitionValues endValues) {
if (startValues == null) {
return null;
@@ -246,8 +257,9 @@ public class FadeAndShortSlide extends Visibility {
int left = position[0];
float startX = view.getTranslationX();
float endX = mSlideCalculator.getGoneX(sceneRoot, view, position, mDistance);
- final Animator slideAnimator = TranslationAnimationCreator.createAnimation(view,
- startValues, left, startX, endX, DISAPPEAR_INTERPOLATOR, this);
+ final Animator slideAnimator =
+ TranslationAnimationCreator.createAnimation(
+ view, startValues, left, startX, endX, DISAPPEAR_INTERPOLATOR, this);
if (slideAnimator == null) { // slideAnimator is null if startX == endX
return null;
}
@@ -257,13 +269,14 @@ public class FadeAndShortSlide extends Visibility {
if (fadeAnimator == null) {
return null;
}
- fadeAnimator.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animator) {
- fadeAnimator.removeListener(this);
- view.setAlpha(0.0f);
- }
- });
+ fadeAnimator.addListener(
+ new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animator) {
+ fadeAnimator.removeListener(this);
+ view.setAlpha(0.0f);
+ }
+ });
final AnimatorSet set = new AnimatorSet();
set.play(slideAnimator).with(fadeAnimator);
@@ -300,9 +313,7 @@ public class FadeAndShortSlide extends Visibility {
return super.setDuration(scaledDuration);
}
- /**
- * Sets the moving distance in pixel.
- */
+ /** Sets the moving distance in pixel. */
public void setDistance(int distance) {
mDistance = distance;
}