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();
}