Merge "Set dialer's dialpad touch tint color in styles." into lmp-preview-dev
diff --git a/res/anim/slide_in.xml b/res/anim/slide_in.xml
index 56318e4..b0eed37 100644
--- a/res/anim/slide_in.xml
+++ b/res/anim/slide_in.xml
@@ -15,6 +15,6 @@
 -->
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@interpolator/ease_in_interpolator"
-    android:duration="666"
+    android:duration="532"
     android:fromYDelta="67%p"
     android:toYDelta="0" />
\ No newline at end of file
diff --git a/res/anim/slide_out.xml b/res/anim/slide_out.xml
index 1cd39a7..231555e 100644
--- a/res/anim/slide_out.xml
+++ b/res/anim/slide_out.xml
@@ -15,6 +15,6 @@
 -->
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@interpolator/ease_out_interpolator"
-    android:duration="429"
+    android:duration="257"
     android:fromYDelta="0"
     android:toYDelta="80%p" />
\ No newline at end of file
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index a593c14..82b7838 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -64,6 +64,7 @@
 
 import com.android.contacts.common.CallUtil;
 import com.android.contacts.common.activity.TransactionSafeActivity;
+import com.android.contacts.common.animation.AnimationListenerAdapter;
 import com.android.contacts.common.dialog.ClearFrequentsDialog;
 import com.android.contacts.common.interactions.ImportExportDialogFragment;
 import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
@@ -126,6 +127,7 @@
     private static final String KEY_IN_DIALPAD_SEARCH_UI = "in_dialpad_search_ui";
     private static final String KEY_SEARCH_QUERY = "search_query";
     private static final String KEY_FIRST_LAUNCH = "first_launch";
+    private static final String KEY_IS_DIALPAD_SHOWN = "is_dialpad_shown";
 
     private static final String TAG_DIALPAD_FRAGMENT = "dialpad";
     private static final String TAG_REGULAR_SEARCH_FRAGMENT = "search";
@@ -171,6 +173,7 @@
     private boolean mInRegularSearch;
     private boolean mClearSearchOnPause;
     private boolean mIsDialpadShown;
+    private boolean mShowDialpadOnResume;
 
     /**
      * The position of the currently selected tab in the attached {@link ListsFragment}.
@@ -367,6 +370,7 @@
             mInRegularSearch = savedInstanceState.getBoolean(KEY_IN_REGULAR_SEARCH_UI);
             mInDialpadSearch = savedInstanceState.getBoolean(KEY_IN_DIALPAD_SEARCH_UI);
             mFirstLaunch = savedInstanceState.getBoolean(KEY_FIRST_LAUNCH);
+            mShowDialpadOnResume = savedInstanceState.getBoolean(KEY_IS_DIALPAD_SHOWN);
             mActionBarController.restoreInstanceState(savedInstanceState);
         }
 
@@ -409,6 +413,9 @@
         } else if (!phoneIsInUse() && mInCallDialpadUp) {
             hideDialpadFragment(false, true);
             mInCallDialpadUp = false;
+        } else if (mShowDialpadOnResume) {
+            showDialpadFragment(false);
+            mShowDialpadOnResume = false;
         }
         mFirstLaunch = false;
         prepareVoiceSearchButton();
@@ -431,6 +438,7 @@
         outState.putBoolean(KEY_IN_REGULAR_SEARCH_UI, mInRegularSearch);
         outState.putBoolean(KEY_IN_DIALPAD_SEARCH_UI, mInDialpadSearch);
         outState.putBoolean(KEY_FIRST_LAUNCH, mFirstLaunch);
+        outState.putBoolean(KEY_IS_DIALPAD_SHOWN, mIsDialpadShown);
         mActionBarController.saveInstanceState(outState);
     }
 
@@ -438,9 +446,11 @@
     public void onAttachFragment(Fragment fragment) {
         if (fragment instanceof DialpadFragment) {
             mDialpadFragment = (DialpadFragment) fragment;
-            final FragmentTransaction transaction = getFragmentManager().beginTransaction();
-            transaction.hide(mDialpadFragment);
-            transaction.commit();
+            if (!mShowDialpadOnResume) {
+                final FragmentTransaction transaction = getFragmentManager().beginTransaction();
+                transaction.hide(mDialpadFragment);
+                transaction.commit();
+            }
         } else if (fragment instanceof SmartDialSearchFragment) {
             mSmartDialSearchFragment = (SmartDialSearchFragment) fragment;
             mSmartDialSearchFragment.setOnPhoneNumberPickerActionListener(this);
@@ -613,7 +623,7 @@
         updateFloatingActionButton();
         if (animate) {
             Animation slideOut = AnimationUtils.loadAnimation(this, R.anim.slide_out);
-            slideOut.setAnimationListener(new ActivityAnimationListener() {
+            slideOut.setAnimationListener(new AnimationListenerAdapter() {
                 @Override
                 public void onAnimationEnd(Animation animation) {
                     commitDialpadFragmentHide();
@@ -1104,23 +1114,6 @@
         mFloatingActionButtonContainer.setLayoutParams(params);
     }
 
-    /**
-     * Convenience class which implements AnimationListener interface as null-op methods.
-     */
-    private class ActivityAnimationListener implements AnimationListener {
-        @Override
-        public void onAnimationStart(Animation animation) {
-        }
-
-        @Override
-        public void onAnimationEnd(Animation animation) {
-        }
-
-        @Override
-        public void onAnimationRepeat(Animation animation) {
-        }
-    }
-
     @Override
     public boolean isActionBarShowing() {
         return mActionBarController.isActionBarShowing();
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index de00550..ad86e24 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -649,6 +649,11 @@
 
                         if (!isExpand) {
                             viewHolder.actionsView.setVisibility(View.GONE);
+                        } else {
+                            // This seems like it should be unnecessary, but without this, after
+                            // navigating out of the activity and then back, the action view alpha
+                            // is defaulting to the value (0) at the start of the expand animation.
+                            viewHolder.actionsView.setAlpha(1);
                         }
                     }