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