Snapshot display empty state once on creation of HistoryFragment.

Bug: 34698125
Test: Pasting while dragging history down no longer causes crashes.

Remove EvaluatorStateUtils since we now only check the display state once.

Change-Id: I22d0f3f0c967abcd8a8f70dd4cc157247bea8bed
diff --git a/src/com/android/calculator2/DragController.java b/src/com/android/calculator2/DragController.java
index 8810e7d..1716cc9 100644
--- a/src/com/android/calculator2/DragController.java
+++ b/src/com/android/calculator2/DragController.java
@@ -57,6 +57,7 @@
     private boolean mAnimationInitialized;
 
     private boolean mOneLine;
+    private boolean mIsDisplayEmpty;
 
     private AnimationController mAnimationController;
 
@@ -66,9 +67,10 @@
         mEvaluator = evaluator;
     }
 
-    public void initializeController(boolean isResult, boolean oneLine) {
+    public void initializeController(boolean isResult, boolean oneLine, boolean isDisplayEmpty) {
         mOneLine = oneLine;
-        if (EvaluatorStateUtils.isDisplayEmpty(mEvaluator)) {
+        mIsDisplayEmpty = isDisplayEmpty;
+        if (mIsDisplayEmpty) {
             // Empty display
             mAnimationController = new EmptyAnimationController();
         } else if (isResult) {
@@ -107,7 +109,8 @@
         if (yFraction > 0 && vh != null) {
             recyclerView.setVisibility(View.VISIBLE);
         }
-        if (vh != null && !EvaluatorStateUtils.isDisplayEmpty(mEvaluator)) {
+        if (vh != null && !mIsDisplayEmpty
+                && vh.getItemViewType() == HistoryAdapter.HISTORY_VIEW_TYPE) {
             final AlignedTextView formula = vh.getFormula();
             final CalculatorResult result = vh.getResult();
             final TextView date = vh.getDate();
@@ -157,7 +160,7 @@
 
             date.setTranslationY(mAnimationController.getDateTranslationY(yFraction));
             divider.setTranslationY(mAnimationController.getDateTranslationY(yFraction));
-        } else if (EvaluatorStateUtils.isDisplayEmpty(mEvaluator)) {
+        } else if (mIsDisplayEmpty) {
             // There is no current expression but we still need to collect information
             // to translate the other viewholders.
             if (!mAnimationInitialized) {
@@ -186,9 +189,9 @@
     /**
      * Reset all initialized values.
      */
-    public void initializeAnimation(boolean isResult, boolean oneLine) {
+    public void initializeAnimation(boolean isResult, boolean oneLine, boolean isDisplayEmpty) {
         mAnimationInitialized = false;
-        initializeController(isResult, oneLine);
+        initializeController(isResult, oneLine, isDisplayEmpty);
     }
 
     public interface AnimateTextInterface {