Merge "Fixed the coordinates translation" into klp-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 82734b6..99602f6 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -271,7 +271,8 @@
         </activity>
 
         <service android:name="com.android.incallui.CallHandlerService"
-                 android:process="com.android.incallui">
+                 android:process="com.android.incallui"
+                 android:permission="android.permission.BIND_CALL_SERVICE">
             <intent-filter>
                 <action android:name="com.android.services.telephony.common.ICallHandlerService" />
             </intent-filter>
diff --git a/res/drawable/bottom_border_background_pressed.xml b/res/drawable/bottom_border_background_pressed.xml
new file mode 100644
index 0000000..0924914
--- /dev/null
+++ b/res/drawable/bottom_border_background_pressed.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item android:drawable="@drawable/bottom_border_background" />
+    <item android:drawable="@*android:drawable/list_selector_background_transition_holo_light" />
+</layer-list>
\ No newline at end of file
diff --git a/res/drawable/contact_list_item_background.xml b/res/drawable/contact_list_item_background.xml
new file mode 100644
index 0000000..5637f4d
--- /dev/null
+++ b/res/drawable/contact_list_item_background.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_pressed="true" android:drawable="@drawable/bottom_border_background_pressed"  />
+    <item android:drawable="@drawable/bottom_border_background" />
+</selector>
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 4680038..4c747c9 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -639,12 +639,15 @@
             return;
         }
 
-        if (mDialpadFragment != null && (phoneIsInUse() || isDialIntent(intent))) {
-            mDialpadFragment.setStartedFromNewIntent(true);
-            if (!mDialpadFragment.isVisible()) {
-                mInCallDialpadUp = true;
+        if (mDialpadFragment != null) {
+            final boolean phoneIsInUse = phoneIsInUse();
+            if (phoneIsInUse || isDialIntent(intent)) {
+                mDialpadFragment.setStartedFromNewIntent(true);
+                if (phoneIsInUse && !mDialpadFragment.isVisible()) {
+                    mInCallDialpadUp = true;
+                }
+                showDialpadFragment(false);
             }
-            showDialpadFragment(false);
         }
     }
 
diff --git a/src/com/android/dialer/list/PhoneFavoriteFragment.java b/src/com/android/dialer/list/PhoneFavoriteFragment.java
index beeb320..84bd4b4 100644
--- a/src/com/android/dialer/list/PhoneFavoriteFragment.java
+++ b/src/com/android/dialer/list/PhoneFavoriteFragment.java
@@ -454,7 +454,31 @@
                         child.animate().alpha(1.0f)
                                 .setDuration(mAnimationDuration)
                                 .start();
-                        break;
+                    } else {
+                        Integer startTop = mItemIdTopMap.get(itemId);
+                        final int top = child.getTop();
+                        if (DEBUG) {
+                            Log.d(TAG, "Found itemId: " + itemId + " for listview child " + i +
+                                    " Top: " + top);
+                        }
+                        int delta = 0;
+                        if (startTop != null) {
+                            if (startTop != top) {
+                                delta = startTop - top;
+                            }
+                        } else if (!mItemIdLeftMap.containsKey(itemId)) {
+                            // Animate new views along with the others. The catch is that they did
+                            // not exist in the start state, so we must calculate their starting
+                            // position based on neighboring views.
+                            int childHeight = child.getHeight() + mListView.getDividerHeight();
+                            startTop = top + (i > 0 ? childHeight : -childHeight);
+                            delta = startTop - top;
+                        }
+
+                        if (delta != 0) {
+                            child.setTranslationY(delta);
+                            child.animate().setDuration(mAnimationDuration).translationY(0);
+                        }
                     }
                 }
                 mItemIdTopMap.clear();
diff --git a/src/com/android/dialer/list/PhoneFavoriteRegularRowView.java b/src/com/android/dialer/list/PhoneFavoriteRegularRowView.java
index efe7bdd..b4ad784 100644
--- a/src/com/android/dialer/list/PhoneFavoriteRegularRowView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteRegularRowView.java
@@ -56,7 +56,7 @@
         rowPaddingBottom = resources.getDimensionPixelSize(
                 R.dimen.favorites_row_bottom_padding);
 
-        favoriteContactCard.setBackgroundResource(R.drawable.bottom_border_background);
+        favoriteContactCard.setBackgroundResource(R.drawable.contact_list_item_background);
 
         favoriteContactCard.setPaddingRelative(rowPaddingStart, rowPaddingTop, rowPaddingEnd,
                 rowPaddingBottom);