Merge "Initialize the RecyclerView as INVISIBLE." into ub-calculator-euler
diff --git a/src/com/android/calculator2/DragController.java b/src/com/android/calculator2/DragController.java
index 4cc755e..6fb1837 100644
--- a/src/com/android/calculator2/DragController.java
+++ b/src/com/android/calculator2/DragController.java
@@ -86,6 +86,9 @@
     public void animateViews(float yFraction, RecyclerView recyclerView, int itemCount) {
         final HistoryAdapter.ViewHolder vh = (HistoryAdapter.ViewHolder)
                 recyclerView.findViewHolderForAdapterPosition(0);
+        if (yFraction > 0) {
+            recyclerView.setVisibility(View.VISIBLE);
+        }
         if (vh != null && !EvaluatorStateUtils.isDisplayEmpty(mEvaluator)) {
             final CalculatorFormula formula = vh.getFormula();
             final CalculatorResult result = vh.getResult();
@@ -154,10 +157,10 @@
     }
 
     /**
-     * Reset all initialized values whenever the History fragment is closed because the
-     * DisplayState may change.
+     * Reset all initialized values and set recyclerview to INVISIBLE to avoid flickering.
      */
-    public void resetAnimationInitialized() {
+    public void initializeAnimation(RecyclerView recyclerView) {
+        recyclerView.setVisibility(View.INVISIBLE);
         mAnimationInitialized = false;
     }
 
diff --git a/src/com/android/calculator2/HistoryFragment.java b/src/com/android/calculator2/HistoryFragment.java
index 1d13a98..b8682ce 100644
--- a/src/com/android/calculator2/HistoryFragment.java
+++ b/src/com/android/calculator2/HistoryFragment.java
@@ -51,8 +51,6 @@
                 public void onClosed() {
                     // TODO: only cancel historical evaluations
                     mEvaluator.cancelAll(true);
-
-                    mDragController.resetAnimationInitialized();
                 }
 
                 @Override
@@ -168,10 +166,14 @@
         }
 
         mAdapter.notifyDataSetChanged();
+    }
 
-        // Initialize the current expression element to dimensions that match the display to
-        // avoid flickering and scrolling when elements expand on drag start.
-        mDragController.animateViews(1.0f, mRecyclerView, mAdapter.getItemCount());
+    @Override
+    public void onStart() {
+        super.onStart();
+
+        // The orientation may have changed.
+        mDragController.initializeAnimation(mRecyclerView);
     }
 
     @Override