Merge "Refresh call shortcut when returning to the dialer" into klp-dev
diff --git a/res/drawable-hdpi/no_favorites_banner.png b/res/drawable-hdpi/no_favorites_banner.png
index 5ab45ab..a4b09c0 100644
--- a/res/drawable-hdpi/no_favorites_banner.png
+++ b/res/drawable-hdpi/no_favorites_banner.png
Binary files differ
diff --git a/res/drawable-mdpi/no_favorites_banner.png b/res/drawable-mdpi/no_favorites_banner.png
index 808d573..ac080b9 100644
--- a/res/drawable-mdpi/no_favorites_banner.png
+++ b/res/drawable-mdpi/no_favorites_banner.png
Binary files differ
diff --git a/res/drawable-xhdpi/no_favorites_banner.png b/res/drawable-xhdpi/no_favorites_banner.png
index da71882..bae4e99 100644
--- a/res/drawable-xhdpi/no_favorites_banner.png
+++ b/res/drawable-xhdpi/no_favorites_banner.png
Binary files differ
diff --git a/res/drawable-xxhdpi/no_favorites_banner.png b/res/drawable-xxhdpi/no_favorites_banner.png
index 518e8ef..0e2a4fa 100644
--- a/res/drawable-xxhdpi/no_favorites_banner.png
+++ b/res/drawable-xxhdpi/no_favorites_banner.png
Binary files differ
diff --git a/res/layout/phone_no_favorites.xml b/res/layout/phone_no_favorites.xml
index e0635de..cc9b1ff 100644
--- a/res/layout/phone_no_favorites.xml
+++ b/res/layout/phone_no_favorites.xml
@@ -33,19 +33,14 @@
         android:paddingBottom="16dp"
         android:src="@drawable/no_favorites_banner" />
 
-    <FrameLayout
-        android:id="@+id/show_all_contact_button_in_nofav_frame"
+    <include
+        android:id="@+id/show_all_contact_button_in_nofav"
+        layout="@layout/show_all_contact_button"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:background="@color/background_dialer_list_items">
-
-        <include
-            android:id="@+id/show_all_contact_button_in_nofav"
-            layout="@layout/show_all_contact_button" />
-    </FrameLayout>
+        android:layout_alignParentStart="true"/>
 
     <TextView
         android:id="@+id/title"
@@ -54,7 +49,7 @@
         android:layout_gravity="center"
         android:gravity="center"
         android:layout_below="@id/nofavorite_image"
-        android:layout_above="@id/show_all_contact_button_in_nofav_frame"
+        android:layout_above="@id/show_all_contact_button_in_nofav"
         android:layout_alignParentLeft="true"
         android:layout_alignParentStart="true"
         android:text="@string/no_favorites"
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 3c3d41f..439ccc2 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -68,8 +68,6 @@
     <!-- Undo dialogue color -->
     <color name="undo_dialogue_text_color">#4d4d4d</color>
 
-    <!-- Background color for no favorites state -->
-    <color name="nofavorite_background_color">#ffffff</color>
     <!-- Text color for no favorites message -->
-    <color name="nofavorite_text_color">#a9a9a9</color>
+    <color name="nofavorite_text_color">#777777</color>
 </resources>
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 3e65916..a4702c6 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -29,8 +29,6 @@
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.provider.CallLog.Calls;
@@ -168,21 +166,6 @@
 
     private DialerDatabaseHelper mDialerDatabaseHelper;
 
-    private static final int EVENT_DELAYED_HIDE_SEARCH = 1;
-
-    // Wait this much time (in ms) before hiding the search fragment after clicking on
-    // a search result to dial, to avoid jank
-    private static final int CLEAR_SEARCH_DELAY = 500;
-
-    final Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            if (msg.what == EVENT_DELAYED_HIDE_SEARCH) {
-                hideDialpadAndSearchUi();
-            }
-        }
-    };
-
     private class OverflowPopupMenu extends PopupMenu {
         public OverflowPopupMenu(Context context, View anchor) {
             super(context, anchor);
@@ -209,16 +192,14 @@
                     // CallLog screen (search UI will be automatically exited).
                     PhoneNumberInteraction.startInteractionForPhoneCall(
                         DialtactsActivity.this, dataUri, getCallOrigin());
-                    mHandler.sendEmptyMessageDelayed(EVENT_DELAYED_HIDE_SEARCH,
-                            CLEAR_SEARCH_DELAY);
+                    hideDialpadAndSearchUi();
                 }
 
                 @Override
                 public void onCallNumberDirectly(String phoneNumber) {
                     Intent intent = CallUtil.getCallIntent(phoneNumber, getCallOrigin());
                     startActivity(intent);
-                    mHandler.sendEmptyMessageDelayed(EVENT_DELAYED_HIDE_SEARCH,
-                            CLEAR_SEARCH_DELAY);
+                    hideDialpadAndSearchUi();
                 }
 
                 @Override
@@ -858,6 +839,10 @@
      * Hides the search fragment
      */
     private void exitSearchUi() {
+        // See related bug in enterSearchUI();
+        if (getFragmentManager().isDestroyed()) {
+            return;
+        }
         // Go all the way back to the favorites fragment, regardless of how many times we
         // transitioned between search fragments
         final BackStackEntry entry = getFragmentManager().getBackStackEntryAt(0);
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index b2493cf..86540ef 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -534,6 +534,8 @@
         } else if (PhoneNumberUtilsWrapper.canPlaceCallsTo(number, numberPresentation)) {
             // Sets the primary action to call the number.
             views.primaryActionView.setTag(IntentProvider.getReturnCallIntentProvider(number));
+        } else {
+            views.primaryActionView.setTag(null);
         }
 
         // Store away the voicemail information so we can play it directly.
diff --git a/src/com/android/dialer/list/PhoneFavoriteFragment.java b/src/com/android/dialer/list/PhoneFavoriteFragment.java
index 73fa6df..eca4d97 100644
--- a/src/com/android/dialer/list/PhoneFavoriteFragment.java
+++ b/src/com/android/dialer/list/PhoneFavoriteFragment.java
@@ -314,43 +314,7 @@
         final int newVisibility = visible ? View.VISIBLE : View.GONE;
 
         if (previousVisibility != newVisibility) {
-            Integer colorFrom = visible ?
-                    getResources().getColor(R.color.background_dialer_light) :
-                    getResources().getColor(R.color.nofavorite_background_color);
-            Integer colorTo = visible ?
-                    getResources().getColor(R.color.nofavorite_background_color) :
-                    getResources().getColor(R.color.background_dialer_light);
-            ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(),
-                    colorFrom, colorTo);
-            colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
-                @Override
-                public void onAnimationUpdate(ValueAnimator animator) {
-                    mParentView.setBackgroundColor((Integer)animator.getAnimatedValue());
-                }
-            });
-            colorAnimation.addListener(new Animator.AnimatorListener() {
-                @Override
-                public void onAnimationStart(Animator animator) {
-                    if (!visible) {
-                        mEmptyView.setVisibility(View.GONE);
-                    }
-                }
-
-                @Override
-                public void onAnimationEnd(Animator animator) {
-                    if (visible) {
-                        mEmptyView.setVisibility(View.VISIBLE);
-                    }
-                }
-
-                @Override
-                public void onAnimationCancel(Animator animator) {}
-
-                @Override
-                public void onAnimationRepeat(Animator animator) {}
-            });
-
-            colorAnimation.start();
+            mEmptyView.setVisibility(newVisibility);
         }
     }
 
diff --git a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
index 939a1ea..ae9414a 100644
--- a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
+++ b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
@@ -803,7 +803,7 @@
                     contactTile.setPaddingRelative(0, 0,
                             childIndex >= mColumnCount - 1 ? 0 : mPaddingInPixels, 0);
                     entryIndex = getFirstContactEntryIndexForPosition(mPosition) + childIndex;
-                    SwipeHelper.setSwipeable(contactTile, true);
+                    SwipeHelper.setSwipeable(contactTile, false);
                     break;
                 case ViewTypes.FREQUENT:
                     contactTile.setHorizontalDividerVisibility(