Animate text colors for drag.
Fixes: 33108158
Change-Id: Idfdae761b4a968990afad9c30f57e4efb9795417
diff --git a/src/com/android/calculator2/DragController.java b/src/com/android/calculator2/DragController.java
index e195463..1c31767 100644
--- a/src/com/android/calculator2/DragController.java
+++ b/src/com/android/calculator2/DragController.java
@@ -16,6 +16,7 @@
package com.android.calculator2;
+import android.animation.ArgbEvaluator;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;
@@ -27,6 +28,8 @@
private static final String TAG = "DragController";
+ private static final ArgbEvaluator mColorEvaluator = new ArgbEvaluator();
+
// References to views from the Calculator Display.
private CalculatorFormula mDisplayFormula;
private CalculatorResult mDisplayResult;
@@ -42,6 +45,12 @@
private int mDisplayHeight;
+ private int mFormulaStartColor;
+ private int mFormulaEndColor;
+
+ private int mResultStartColor;
+ private int mResultEndColor;
+
private boolean mAnimationInitialized;
private AnimationController mAnimationController;
@@ -78,7 +87,7 @@
mToolbar = toolbar;
}
- public void animateViews(float yFraction, RecyclerView recyclerView, int itemCount) {
+ public void animateViews(float yFraction, RecyclerView recyclerView) {
final HistoryAdapter.ViewHolder vh = (HistoryAdapter.ViewHolder)
recyclerView.findViewHolderForAdapterPosition(0);
if (yFraction > 0) {
@@ -92,6 +101,8 @@
if (!mAnimationInitialized) {
mAnimationController.initializeScales(formula, result);
+ mAnimationController.initializeColorAnimators(formula, result);
+
mAnimationController.initializeFormulaTranslationX(formula);
mAnimationController.initializeFormulaTranslationY(formula, result);
@@ -122,6 +133,12 @@
result.setTranslationX(mAnimationController.getResultTranslationX(yFraction));
result.setTranslationY(mAnimationController.getResultTranslationY(yFraction));
+ formula.setTextColor((int) mColorEvaluator.evaluate(yFraction, mFormulaStartColor,
+ mFormulaEndColor));
+
+ result.setTextColor((int) mColorEvaluator.evaluate(yFraction, mResultStartColor,
+ mResultEndColor));
+
date.setTranslationY(mAnimationController.getDateTranslationY(yFraction));
}
} else if (EvaluatorStateUtils.isDisplayEmpty(mEvaluator)) {
@@ -165,6 +182,8 @@
void initializeDisplayHeight();
+ void initializeColorAnimators(AlignedTextView formula, CalculatorResult result);
+
void initializeScales(AlignedTextView formula, CalculatorResult result);
void initializeFormulaTranslationX(AlignedTextView formula);
@@ -205,6 +224,14 @@
// no-op
}
+ public void initializeColorAnimators(AlignedTextView formula, CalculatorResult result) {
+ mFormulaStartColor = mDisplayFormula.getCurrentTextColor();
+ mFormulaEndColor = formula.getCurrentTextColor();
+
+ mResultStartColor = mDisplayResult.getCurrentTextColor();
+ mResultEndColor = result.getCurrentTextColor();
+ }
+
public void initializeScales(AlignedTextView formula, CalculatorResult result) {
// Calculate the scale for the text
mFormulaScale = (mDisplayFormula.getTextSize() * 1.0f) / formula.getTextSize();
diff --git a/src/com/android/calculator2/HistoryFragment.java b/src/com/android/calculator2/HistoryFragment.java
index e216400..3692a0f 100644
--- a/src/com/android/calculator2/HistoryFragment.java
+++ b/src/com/android/calculator2/HistoryFragment.java
@@ -44,7 +44,7 @@
@Override
public void whileDragging(float yFraction) {
- mDragController.animateViews(yFraction, mRecyclerView, mAdapter.getItemCount());
+ mDragController.animateViews(yFraction, mRecyclerView);
}
@Override