am 1b4fd74d: Adopt new ValueAnimator#setCurrentFraction(float) API
* commit '1b4fd74d2aace67a8cf7689697b758c53eb37cf7':
Adopt new ValueAnimator#setCurrentFraction(float) API
diff --git a/src/com/android/deskclock/AnimatorUtils.java b/src/com/android/deskclock/AnimatorUtils.java
index ffedcab..fe90a7d 100644
--- a/src/com/android/deskclock/AnimatorUtils.java
+++ b/src/com/android/deskclock/AnimatorUtils.java
@@ -81,39 +81,11 @@
public static final TypeEvaluator ARGB_EVALUATOR = new ArgbEvaluator();
- private static Method sAnimateValue;
- private static boolean sTryAnimateValue = true;
-
- public static void setAnimatedFraction(ValueAnimator animator, float fraction) {
- if (sTryAnimateValue) {
- // try to set the animated fraction directly so that it isn't affected by the
- // internal animator scale or time (b/17938711)
- try {
- if (sAnimateValue == null) {
- sAnimateValue = ValueAnimator.class
- .getDeclaredMethod("animateValue", float.class);
- sAnimateValue.setAccessible(true);
- }
-
- sAnimateValue.invoke(animator, fraction);
- return;
- } catch (NoSuchMethodException|InvocationTargetException|IllegalAccessException e) {
- // something went wrong, don't try that again
- LogUtils.e("Unable to use animateValue directly", e);
- sTryAnimateValue = false;
- }
- }
-
- // if that doesn't work then just fall back to setting the current play time
- animator.setCurrentPlayTime(Math.round(fraction * animator.getDuration()));
- }
-
public static void start(ValueAnimator... animators) {
for (ValueAnimator animator : animators) {
final float fraction = animator.getAnimatedFraction();
if (fraction < 1.0f) {
animator.start();
- setAnimatedFraction(animator, fraction);
}
}
}
@@ -123,7 +95,6 @@
final float fraction = animator.getAnimatedFraction();
if (fraction > 0.0f) {
animator.reverse();
- setAnimatedFraction(animator, 1.0f - fraction);
}
}
}
diff --git a/src/com/android/deskclock/alarms/AlarmActivity.java b/src/com/android/deskclock/alarms/AlarmActivity.java
index 5639d4a..753d5d9 100644
--- a/src/com/android/deskclock/alarms/AlarmActivity.java
+++ b/src/com/android/deskclock/alarms/AlarmActivity.java
@@ -381,9 +381,9 @@
private void setAnimatedFractions(float snoozeFraction, float dismissFraction) {
final float alarmFraction = Math.max(snoozeFraction, dismissFraction);
- AnimatorUtils.setAnimatedFraction(mAlarmAnimator, alarmFraction);
- AnimatorUtils.setAnimatedFraction(mSnoozeAnimator, snoozeFraction);
- AnimatorUtils.setAnimatedFraction(mDismissAnimator, dismissFraction);
+ mAlarmAnimator.setCurrentFraction(alarmFraction);
+ mSnoozeAnimator.setCurrentFraction(snoozeFraction);
+ mDismissAnimator.setCurrentFraction(dismissFraction);
}
private float getFraction(float x0, float x1, float x) {