Updated dialer animation in landscape.

Caching animations in constructor.
Dialer now flows in and out from/to the right.
Moved animation timing constants to constants file.

Change-Id: I287caa081c6576b347594d30ccce2b6d6526db1f
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index e516a53..f2f49c1 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -26,6 +26,7 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.net.Uri;
@@ -161,6 +162,31 @@
     private SmartDialSearchFragment mSmartDialSearchFragment;
 
     /**
+     * Animation that slides in.
+     */
+    private Animation mSlideIn;
+
+    /**
+     * Animation that slides out.
+     */
+    private Animation mSlideOut;
+
+    /**
+     * Listener for after slide out animation completes on dialer fragment.
+     */
+    AnimationListenerAdapter mSlideOutListener = new AnimationListenerAdapter() {
+        @Override
+        public void onAnimationEnd(Animation animation) {
+            commitDialpadFragmentHide();
+        }
+    };
+
+    /**
+     * Set to true if the device is in landscape orientation.
+     */
+    private boolean mIsLandscape;
+
+    /**
      * Fragment containing the speed dial list, recents list, and all contacts list.
      */
     private ListsFragment mListsFragment;
@@ -382,6 +408,15 @@
             mShowDialpadOnResume = savedInstanceState.getBoolean(KEY_IS_DIALPAD_SHOWN);
             mActionBarController.restoreInstanceState(savedInstanceState);
         }
+        mIsLandscape = getResources().getConfiguration().orientation ==
+                Configuration.ORIENTATION_LANDSCAPE;
+
+        mSlideIn = AnimationUtils.loadAnimation(this,
+                mIsLandscape ? R.anim.slide_in_right : R.anim.slide_in);
+        mSlideOut = AnimationUtils.loadAnimation(this,
+                mIsLandscape ? R.anim.slide_out_right : R.anim.slide_out);
+
+        mSlideOut.setAnimationListener(mSlideOutListener);
 
         parentLayout = (RelativeLayout) findViewById(R.id.dialtacts_mainlayout);
         parentLayout.getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
@@ -601,8 +636,7 @@
     public void onDialpadShown() {
         updateFloatingActionButton();
         if (mDialpadFragment.getAnimate()) {
-            Animation slideIn = AnimationUtils.loadAnimation(this, R.anim.slide_in);
-            mDialpadFragment.getView().startAnimation(slideIn);
+            mDialpadFragment.getView().startAnimation(mSlideIn);
         } else {
             mDialpadFragment.setYFraction(0);
         }
@@ -631,14 +665,7 @@
         updateSearchFragmentPosition();
         updateFloatingActionButton();
         if (animate) {
-            Animation slideOut = AnimationUtils.loadAnimation(this, R.anim.slide_out);
-            slideOut.setAnimationListener(new AnimationListenerAdapter() {
-                @Override
-                public void onAnimationEnd(Animation animation) {
-                    commitDialpadFragmentHide();
-                }
-            });
-            mDialpadFragment.getView().startAnimation(slideOut);
+            mDialpadFragment.getView().startAnimation(mSlideOut);
         } else {
             commitDialpadFragmentHide();
         }