diff --git a/Android.mk b/Android.mk
index 838ddae..206f004 100644
--- a/Android.mk
+++ b/Android.mk
@@ -27,7 +27,6 @@
     android-support-v13 \
     android-support-v4 \
     android-ex-variablespeed \
-    google-common \
     libphonenumber \
     libgeocoding
 
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0f3285e..6879f3a 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -15,7 +15,8 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.dialer">
+    package="com.android.dialer"
+    coreApp="true">
 
     <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
@@ -67,7 +68,7 @@
              dialpad screen. -->
         <activity android:name=".DialtactsActivity"
             android:label="@string/launcherDialer"
-            android:theme="@style/DialtactsTheme"
+            android:theme="@style/DialtactsActivityTheme"
             android:launchMode="singleTask"
             android:clearTaskOnLaunch="true"
             android:icon="@mipmap/ic_launcher_phone"
@@ -125,7 +126,7 @@
 
         <activity android:name="com.android.dialer.calllog.CallLogActivity"
             android:label="@string/call_log_activity_title"
-            android:theme="@style/DialtactsThemeWithActionBarOverlay"
+            android:theme="@style/DialtactsThemeWithoutActionBarOverlay"
             android:screenOrientation="portrait"
             android:icon="@mipmap/ic_launcher_phone">
             <intent-filter>
@@ -136,12 +137,6 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="com.android.dialer.list.AllContactsActivity"
-            android:label="@string/show_all_contacts_title"
-            android:theme="@style/DialtactsThemeWithActionBarOverlay"
-            android:screenOrientation="portrait">
-        </activity>
-
         <activity android:name="com.android.dialer.CallDetailActivity"
                   android:label="@string/callDetailTitle"
                   android:theme="@style/CallDetailActivityTheme"
diff --git a/res/anim/slide_in.xml b/res/anim/slide_in.xml
index 31502a9..b2ebf7d 100644
--- a/res/anim/slide_in.xml
+++ b/res/anim/slide_in.xml
@@ -13,11 +13,10 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<objectAnimator
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:interpolator="@android:anim/decelerate_interpolator"
+<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
+    android:interpolator="@android:interpolator/fast_out_slow_in"
     android:valueFrom="0.67"
     android:valueTo="0"
     android:valueType="floatType"
     android:propertyName="yFraction"
-    android:duration="200" />
\ No newline at end of file
+    android:duration="666" />
\ No newline at end of file
diff --git a/res/anim/slide_out.xml b/res/anim/slide_out.xml
index e037009..d3b92e3 100644
--- a/res/anim/slide_out.xml
+++ b/res/anim/slide_out.xml
@@ -13,11 +13,10 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<objectAnimator
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:interpolator="@android:anim/decelerate_interpolator"
+<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
+    android:interpolator="@android:interpolator/fast_out_slow_in"
     android:valueFrom="0"
-    android:valueTo="0.67"
+    android:valueTo="0.8"
     android:valueType="floatType"
     android:propertyName="yFraction"
-    android:duration="200" />
\ No newline at end of file
+    android:duration="429" />
\ No newline at end of file
diff --git a/res/color/tab_text_color.xml b/res/color/tab_text_color.xml
new file mode 100644
index 0000000..5ef1fe3
--- /dev/null
+++ b/res/color/tab_text_color.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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:color="@color/actionbar_text_color" android:state_selected="true"/>
+    <item android:color="@color/actionbar_unselected_text_color" />
+</selector>
\ No newline at end of file
diff --git a/res/drawable-hdpi/dialer_recent_card_bg.9.png b/res/drawable-hdpi/dialer_recent_card_bg.9.png
deleted file mode 100644
index 2bfdbcb..0000000
--- a/res/drawable-hdpi/dialer_recent_card_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/divider.9.png b/res/drawable-hdpi/divider.9.png
new file mode 100644
index 0000000..88e5d91
--- /dev/null
+++ b/res/drawable-hdpi/divider.9.png
Binary files differ
diff --git a/res/drawable-hdpi/fab_ic_call.png b/res/drawable-hdpi/fab_ic_call.png
new file mode 100644
index 0000000..548a391
--- /dev/null
+++ b/res/drawable-hdpi/fab_ic_call.png
Binary files differ
diff --git a/res/drawable-hdpi/fab_ic_dial.png b/res/drawable-hdpi/fab_ic_dial.png
new file mode 100644
index 0000000..a856632
--- /dev/null
+++ b/res/drawable-hdpi/fab_ic_dial.png
Binary files differ
diff --git a/res/drawable-hdpi/fab_teal_background.png b/res/drawable-hdpi/fab_teal_background.png
new file mode 100644
index 0000000..88e8495
--- /dev/null
+++ b/res/drawable-hdpi/fab_teal_background.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_back_arrow.png b/res/drawable-hdpi/ic_back_arrow.png
new file mode 100644
index 0000000..aad4f36
--- /dev/null
+++ b/res/drawable-hdpi/ic_back_arrow.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_call_arrow.png b/res/drawable-hdpi/ic_call_arrow.png
new file mode 100644
index 0000000..14a33e3
--- /dev/null
+++ b/res/drawable-hdpi/ic_call_arrow.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_call_incoming_holo_dark.png b/res/drawable-hdpi/ic_call_incoming_holo_dark.png
deleted file mode 100644
index 8351f48..0000000
--- a/res/drawable-hdpi/ic_call_incoming_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_call_missed_holo_dark.png b/res/drawable-hdpi/ic_call_missed_holo_dark.png
deleted file mode 100644
index 7c17c30..0000000
--- a/res/drawable-hdpi/ic_call_missed_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_call_outgoing_holo_dark.png b/res/drawable-hdpi/ic_call_outgoing_holo_dark.png
deleted file mode 100644
index 3b9e0f8..0000000
--- a/res/drawable-hdpi/ic_call_outgoing_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_contact_info.png b/res/drawable-hdpi/ic_contact_info.png
deleted file mode 100644
index 9c23000..0000000
--- a/res/drawable-hdpi/ic_contact_info.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_contacts_tiles.9.png b/res/drawable-hdpi/ic_contacts_tiles.9.png
new file mode 100644
index 0000000..572fdb8
--- /dev/null
+++ b/res/drawable-hdpi/ic_contacts_tiles.9.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_dial_action_call.png b/res/drawable-hdpi/ic_dial_action_call.png
deleted file mode 100644
index ed08eb8..0000000
--- a/res/drawable-hdpi/ic_dial_action_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_dial_action_delete.png b/res/drawable-hdpi/ic_dial_action_delete.png
deleted file mode 100644
index 0bf8563..0000000
--- a/res/drawable-hdpi/ic_dial_action_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_dial_action_vm.png b/res/drawable-hdpi/ic_dial_action_vm.png
deleted file mode 100644
index f424304..0000000
--- a/res/drawable-hdpi/ic_dial_action_vm.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_dialpad_dk.png b/res/drawable-hdpi/ic_menu_dialpad_dk.png
deleted file mode 100644
index 55f5477..0000000
--- a/res/drawable-hdpi/ic_menu_dialpad_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_overflow_lt.png b/res/drawable-hdpi/ic_menu_overflow_lt.png
index 2561b8c..57db353 100644
--- a/res/drawable-hdpi/ic_menu_overflow_lt.png
+++ b/res/drawable-hdpi/ic_menu_overflow_lt.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_overflow_menu.png b/res/drawable-hdpi/ic_overflow_menu.png
new file mode 100644
index 0000000..0170057
--- /dev/null
+++ b/res/drawable-hdpi/ic_overflow_menu.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_remove.png b/res/drawable-hdpi/ic_remove.png
new file mode 100644
index 0000000..1ee6adf
--- /dev/null
+++ b/res/drawable-hdpi/ic_remove.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_remove_highlight.png b/res/drawable-hdpi/ic_remove_highlight.png
new file mode 100644
index 0000000..435ee36
--- /dev/null
+++ b/res/drawable-hdpi/ic_remove_highlight.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_star.png b/res/drawable-hdpi/ic_star.png
new file mode 100644
index 0000000..62e1f8a
--- /dev/null
+++ b/res/drawable-hdpi/ic_star.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_star_marked_as_fav.png b/res/drawable-hdpi/ic_star_marked_as_fav.png
deleted file mode 100644
index 8a138c4..0000000
--- a/res/drawable-hdpi/ic_star_marked_as_fav.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_tile_for_recents_and_contact_tile.9.png b/res/drawable-hdpi/ic_tile_for_recents_and_contact_tile.9.png
new file mode 100644
index 0000000..b5f50de
--- /dev/null
+++ b/res/drawable-hdpi/ic_tile_for_recents_and_contact_tile.9.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_voice_search.png b/res/drawable-hdpi/ic_voice_search.png
index 6caf4a4..9631d3e 100644
--- a/res/drawable-hdpi/ic_voice_search.png
+++ b/res/drawable-hdpi/ic_voice_search.png
Binary files differ
diff --git a/res/drawable-hdpi/overflow_thumbnail.png b/res/drawable-hdpi/overflow_thumbnail.png
new file mode 100644
index 0000000..57db353
--- /dev/null
+++ b/res/drawable-hdpi/overflow_thumbnail.png
Binary files differ
diff --git a/res/drawable-hdpi/search_bg.9.png b/res/drawable-hdpi/search_bg.9.png
new file mode 100644
index 0000000..81c47be
--- /dev/null
+++ b/res/drawable-hdpi/search_bg.9.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_dial_action_call.png b/res/drawable-ldrtl-hdpi/ic_dial_action_call.png
deleted file mode 100644
index 34c78ff..0000000
--- a/res/drawable-ldrtl-hdpi/ic_dial_action_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_dial_action_call.png b/res/drawable-ldrtl-mdpi/ic_dial_action_call.png
deleted file mode 100644
index d1f00f1..0000000
--- a/res/drawable-ldrtl-mdpi/ic_dial_action_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_dial_action_call.png b/res/drawable-ldrtl-xhdpi/ic_dial_action_call.png
deleted file mode 100644
index e0d2688..0000000
--- a/res/drawable-ldrtl-xhdpi/ic_dial_action_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/dialer_recent_card_bg.9.png b/res/drawable-mdpi/dialer_recent_card_bg.9.png
deleted file mode 100644
index dff6a0b..0000000
--- a/res/drawable-mdpi/dialer_recent_card_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/divider.9.png b/res/drawable-mdpi/divider.9.png
new file mode 100644
index 0000000..88e5d91
--- /dev/null
+++ b/res/drawable-mdpi/divider.9.png
Binary files differ
diff --git a/res/drawable-mdpi/fab_ic_call.png b/res/drawable-mdpi/fab_ic_call.png
new file mode 100644
index 0000000..ff7b345
--- /dev/null
+++ b/res/drawable-mdpi/fab_ic_call.png
Binary files differ
diff --git a/res/drawable-mdpi/fab_ic_dial.png b/res/drawable-mdpi/fab_ic_dial.png
new file mode 100644
index 0000000..3a23245
--- /dev/null
+++ b/res/drawable-mdpi/fab_ic_dial.png
Binary files differ
diff --git a/res/drawable-mdpi/fab_teal_background.png b/res/drawable-mdpi/fab_teal_background.png
new file mode 100644
index 0000000..3a37b27
--- /dev/null
+++ b/res/drawable-mdpi/fab_teal_background.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_back_arrow.png b/res/drawable-mdpi/ic_back_arrow.png
new file mode 100644
index 0000000..56eb887
--- /dev/null
+++ b/res/drawable-mdpi/ic_back_arrow.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_call_arrow.png b/res/drawable-mdpi/ic_call_arrow.png
new file mode 100644
index 0000000..169cf29
--- /dev/null
+++ b/res/drawable-mdpi/ic_call_arrow.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_call_incoming_holo_dark.png b/res/drawable-mdpi/ic_call_incoming_holo_dark.png
deleted file mode 100644
index 8dcb350..0000000
--- a/res/drawable-mdpi/ic_call_incoming_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_call_missed_holo_dark.png b/res/drawable-mdpi/ic_call_missed_holo_dark.png
deleted file mode 100644
index af030cf..0000000
--- a/res/drawable-mdpi/ic_call_missed_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_call_outgoing_holo_dark.png b/res/drawable-mdpi/ic_call_outgoing_holo_dark.png
deleted file mode 100644
index 38a01b7..0000000
--- a/res/drawable-mdpi/ic_call_outgoing_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_contact_info.png b/res/drawable-mdpi/ic_contact_info.png
deleted file mode 100644
index 5d35ec5..0000000
--- a/res/drawable-mdpi/ic_contact_info.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_contacts_tiles.9.png b/res/drawable-mdpi/ic_contacts_tiles.9.png
new file mode 100644
index 0000000..343053a
--- /dev/null
+++ b/res/drawable-mdpi/ic_contacts_tiles.9.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_dial_action_call.png b/res/drawable-mdpi/ic_dial_action_call.png
deleted file mode 100644
index 59a68f2..0000000
--- a/res/drawable-mdpi/ic_dial_action_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_dial_action_delete.png b/res/drawable-mdpi/ic_dial_action_delete.png
deleted file mode 100644
index 98341e9..0000000
--- a/res/drawable-mdpi/ic_dial_action_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_dial_action_vm.png b/res/drawable-mdpi/ic_dial_action_vm.png
deleted file mode 100644
index fbcf378..0000000
--- a/res/drawable-mdpi/ic_dial_action_vm.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_dialpad_lt.png b/res/drawable-mdpi/ic_menu_dialpad_lt.png
new file mode 100644
index 0000000..14674ed
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_dialpad_lt.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_overflow_lt.png b/res/drawable-mdpi/ic_menu_overflow_lt.png
index 7dc68c9..c699374 100644
--- a/res/drawable-mdpi/ic_menu_overflow_lt.png
+++ b/res/drawable-mdpi/ic_menu_overflow_lt.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_overflow_menu.png b/res/drawable-mdpi/ic_overflow_menu.png
new file mode 100644
index 0000000..0170057
--- /dev/null
+++ b/res/drawable-mdpi/ic_overflow_menu.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_remove.png b/res/drawable-mdpi/ic_remove.png
new file mode 100644
index 0000000..2c134ea
--- /dev/null
+++ b/res/drawable-mdpi/ic_remove.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_remove_highlight.png b/res/drawable-mdpi/ic_remove_highlight.png
new file mode 100644
index 0000000..6a961cb
--- /dev/null
+++ b/res/drawable-mdpi/ic_remove_highlight.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_star.png b/res/drawable-mdpi/ic_star.png
new file mode 100644
index 0000000..d2af0ba
--- /dev/null
+++ b/res/drawable-mdpi/ic_star.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_star_marked_as_fav.png b/res/drawable-mdpi/ic_star_marked_as_fav.png
deleted file mode 100644
index ee1b5ec..0000000
--- a/res/drawable-mdpi/ic_star_marked_as_fav.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_tile_for_recents_and_contact_tile.9.png b/res/drawable-mdpi/ic_tile_for_recents_and_contact_tile.9.png
new file mode 100644
index 0000000..e43b3ef
--- /dev/null
+++ b/res/drawable-mdpi/ic_tile_for_recents_and_contact_tile.9.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_voice_search.png b/res/drawable-mdpi/ic_voice_search.png
index e290f92..af58538 100644
--- a/res/drawable-mdpi/ic_voice_search.png
+++ b/res/drawable-mdpi/ic_voice_search.png
Binary files differ
diff --git a/res/drawable-mdpi/overflow_thumbnail.png b/res/drawable-mdpi/overflow_thumbnail.png
new file mode 100644
index 0000000..c699374
--- /dev/null
+++ b/res/drawable-mdpi/overflow_thumbnail.png
Binary files differ
diff --git a/res/drawable-mdpi/search_bg.9.png b/res/drawable-mdpi/search_bg.9.png
new file mode 100644
index 0000000..879aeaa
--- /dev/null
+++ b/res/drawable-mdpi/search_bg.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/dialer_recent_card_bg.9.png b/res/drawable-xhdpi/dialer_recent_card_bg.9.png
deleted file mode 100644
index 05d254d..0000000
--- a/res/drawable-xhdpi/dialer_recent_card_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/divider.9.png b/res/drawable-xhdpi/divider.9.png
new file mode 100644
index 0000000..88e5d91
--- /dev/null
+++ b/res/drawable-xhdpi/divider.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/fab_ic_call.png b/res/drawable-xhdpi/fab_ic_call.png
new file mode 100644
index 0000000..2bff65e
--- /dev/null
+++ b/res/drawable-xhdpi/fab_ic_call.png
Binary files differ
diff --git a/res/drawable-xhdpi/fab_ic_dial.png b/res/drawable-xhdpi/fab_ic_dial.png
new file mode 100644
index 0000000..3694017
--- /dev/null
+++ b/res/drawable-xhdpi/fab_ic_dial.png
Binary files differ
diff --git a/res/drawable-xhdpi/fab_teal_background.png b/res/drawable-xhdpi/fab_teal_background.png
new file mode 100644
index 0000000..b2ed8cd
--- /dev/null
+++ b/res/drawable-xhdpi/fab_teal_background.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_back_arrow.png b/res/drawable-xhdpi/ic_back_arrow.png
new file mode 100644
index 0000000..9d46e3d
--- /dev/null
+++ b/res/drawable-xhdpi/ic_back_arrow.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_call_arrow.png b/res/drawable-xhdpi/ic_call_arrow.png
new file mode 100644
index 0000000..6f13660
--- /dev/null
+++ b/res/drawable-xhdpi/ic_call_arrow.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_call_incoming_holo_dark.png b/res/drawable-xhdpi/ic_call_incoming_holo_dark.png
deleted file mode 100644
index 8eb5f3d..0000000
--- a/res/drawable-xhdpi/ic_call_incoming_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_call_missed_holo_dark.png b/res/drawable-xhdpi/ic_call_missed_holo_dark.png
deleted file mode 100644
index 6d09a4e..0000000
--- a/res/drawable-xhdpi/ic_call_missed_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_call_outgoing_holo_dark.png b/res/drawable-xhdpi/ic_call_outgoing_holo_dark.png
deleted file mode 100644
index 6360504..0000000
--- a/res/drawable-xhdpi/ic_call_outgoing_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_contact_info.png b/res/drawable-xhdpi/ic_contact_info.png
deleted file mode 100644
index 88d367b..0000000
--- a/res/drawable-xhdpi/ic_contact_info.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_contacts_tiles.9.png b/res/drawable-xhdpi/ic_contacts_tiles.9.png
new file mode 100644
index 0000000..5a56587
--- /dev/null
+++ b/res/drawable-xhdpi/ic_contacts_tiles.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dial_action_call.png b/res/drawable-xhdpi/ic_dial_action_call.png
deleted file mode 100644
index 0bd9803..0000000
--- a/res/drawable-xhdpi/ic_dial_action_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dial_action_delete.png b/res/drawable-xhdpi/ic_dial_action_delete.png
deleted file mode 100644
index 989e8b1..0000000
--- a/res/drawable-xhdpi/ic_dial_action_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dial_action_vm.png b/res/drawable-xhdpi/ic_dial_action_vm.png
deleted file mode 100644
index 2919bbd..0000000
--- a/res/drawable-xhdpi/ic_dial_action_vm.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_dialpad_lt.png b/res/drawable-xhdpi/ic_menu_dialpad_lt.png
new file mode 100644
index 0000000..345cf1a
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_dialpad_lt.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_overflow_lt.png b/res/drawable-xhdpi/ic_menu_overflow_lt.png
index 95e436c..e538b98 100644
--- a/res/drawable-xhdpi/ic_menu_overflow_lt.png
+++ b/res/drawable-xhdpi/ic_menu_overflow_lt.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_overflow_menu.png b/res/drawable-xhdpi/ic_overflow_menu.png
new file mode 100644
index 0000000..7773841
--- /dev/null
+++ b/res/drawable-xhdpi/ic_overflow_menu.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_remove.png b/res/drawable-xhdpi/ic_remove.png
new file mode 100644
index 0000000..be81592
--- /dev/null
+++ b/res/drawable-xhdpi/ic_remove.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_remove_highlight.png b/res/drawable-xhdpi/ic_remove_highlight.png
new file mode 100644
index 0000000..57949e3
--- /dev/null
+++ b/res/drawable-xhdpi/ic_remove_highlight.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_star.png b/res/drawable-xhdpi/ic_star.png
new file mode 100644
index 0000000..2071f42
--- /dev/null
+++ b/res/drawable-xhdpi/ic_star.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_star_marked_as_fav.png b/res/drawable-xhdpi/ic_star_marked_as_fav.png
deleted file mode 100644
index 372747a..0000000
--- a/res/drawable-xhdpi/ic_star_marked_as_fav.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_tile_for_recents_and_contact_tile.9.png b/res/drawable-xhdpi/ic_tile_for_recents_and_contact_tile.9.png
new file mode 100644
index 0000000..ebfe897
--- /dev/null
+++ b/res/drawable-xhdpi/ic_tile_for_recents_and_contact_tile.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_voice_search.png b/res/drawable-xhdpi/ic_voice_search.png
index 6147581..6e5d811 100644
--- a/res/drawable-xhdpi/ic_voice_search.png
+++ b/res/drawable-xhdpi/ic_voice_search.png
Binary files differ
diff --git a/res/drawable-xhdpi/overflow_thumbnail.png b/res/drawable-xhdpi/overflow_thumbnail.png
new file mode 100644
index 0000000..e538b98
--- /dev/null
+++ b/res/drawable-xhdpi/overflow_thumbnail.png
Binary files differ
diff --git a/res/drawable-xhdpi/search_bg.9.png b/res/drawable-xhdpi/search_bg.9.png
new file mode 100644
index 0000000..9d2d9ae
--- /dev/null
+++ b/res/drawable-xhdpi/search_bg.9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/dialer_recent_card_bg.9.png b/res/drawable-xxhdpi/dialer_recent_card_bg.9.png
deleted file mode 100644
index 87d95f0..0000000
--- a/res/drawable-xxhdpi/dialer_recent_card_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/divider.9.png b/res/drawable-xxhdpi/divider.9.png
new file mode 100644
index 0000000..88e5d91
--- /dev/null
+++ b/res/drawable-xxhdpi/divider.9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/fab_ic_call.png b/res/drawable-xxhdpi/fab_ic_call.png
new file mode 100644
index 0000000..a756b95
--- /dev/null
+++ b/res/drawable-xxhdpi/fab_ic_call.png
Binary files differ
diff --git a/res/drawable-xxhdpi/fab_ic_dial.png b/res/drawable-xxhdpi/fab_ic_dial.png
new file mode 100644
index 0000000..8f1f21e
--- /dev/null
+++ b/res/drawable-xxhdpi/fab_ic_dial.png
Binary files differ
diff --git a/res/drawable-xxhdpi/fab_teal_background.png b/res/drawable-xxhdpi/fab_teal_background.png
new file mode 100644
index 0000000..6bb4d20
--- /dev/null
+++ b/res/drawable-xxhdpi/fab_teal_background.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_back_arrow.png b/res/drawable-xxhdpi/ic_back_arrow.png
new file mode 100644
index 0000000..66b6e35
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_back_arrow.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_call_arrow.png b/res/drawable-xxhdpi/ic_call_arrow.png
new file mode 100644
index 0000000..0364ee0
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_call_arrow.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_call_incoming_holo_dark.png b/res/drawable-xxhdpi/ic_call_incoming_holo_dark.png
deleted file mode 100644
index 1276917..0000000
--- a/res/drawable-xxhdpi/ic_call_incoming_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_call_missed_holo_dark.png b/res/drawable-xxhdpi/ic_call_missed_holo_dark.png
deleted file mode 100644
index 8919fd3..0000000
--- a/res/drawable-xxhdpi/ic_call_missed_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png b/res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png
deleted file mode 100644
index 192bbf6..0000000
--- a/res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_contact_info.png b/res/drawable-xxhdpi/ic_contact_info.png
deleted file mode 100644
index e5d2939..0000000
--- a/res/drawable-xxhdpi/ic_contact_info.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_contacts_tiles.9.png b/res/drawable-xxhdpi/ic_contacts_tiles.9.png
new file mode 100644
index 0000000..4e6872d
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_contacts_tiles.9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_dial_action_call.png b/res/drawable-xxhdpi/ic_dial_action_call.png
deleted file mode 100644
index 12a5c07..0000000
--- a/res/drawable-xxhdpi/ic_dial_action_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_dial_action_delete.png b/res/drawable-xxhdpi/ic_dial_action_delete.png
deleted file mode 100644
index a7ff1b1..0000000
--- a/res/drawable-xxhdpi/ic_dial_action_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_dial_action_vm.png b/res/drawable-xxhdpi/ic_dial_action_vm.png
deleted file mode 100644
index acac8d8..0000000
--- a/res/drawable-xxhdpi/ic_dial_action_vm.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_dialpad_lt.png b/res/drawable-xxhdpi/ic_menu_dialpad_lt.png
new file mode 100644
index 0000000..45c1ab2
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_dialpad_lt.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_overflow_lt.png b/res/drawable-xxhdpi/ic_menu_overflow_lt.png
index b9f0c3d..7f3f733 100644
--- a/res/drawable-xxhdpi/ic_menu_overflow_lt.png
+++ b/res/drawable-xxhdpi/ic_menu_overflow_lt.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_overflow_menu.png b/res/drawable-xxhdpi/ic_overflow_menu.png
new file mode 100644
index 0000000..7773841
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_overflow_menu.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_remove.png b/res/drawable-xxhdpi/ic_remove.png
new file mode 100644
index 0000000..2722f23
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_remove.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_remove_highlight.png b/res/drawable-xxhdpi/ic_remove_highlight.png
new file mode 100644
index 0000000..23ee8f6
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_remove_highlight.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_star.png b/res/drawable-xxhdpi/ic_star.png
new file mode 100644
index 0000000..f3c8304
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_star.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_star_marked_as_fav.png b/res/drawable-xxhdpi/ic_star_marked_as_fav.png
deleted file mode 100644
index 3eeff4c..0000000
--- a/res/drawable-xxhdpi/ic_star_marked_as_fav.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_tile_for_recents_and_contact_tile.9.png b/res/drawable-xxhdpi/ic_tile_for_recents_and_contact_tile.9.png
new file mode 100644
index 0000000..0a99cdb
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_tile_for_recents_and_contact_tile.9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_voice_search.png b/res/drawable-xxhdpi/ic_voice_search.png
index 4c17d2b..4e72f69 100644
--- a/res/drawable-xxhdpi/ic_voice_search.png
+++ b/res/drawable-xxhdpi/ic_voice_search.png
Binary files differ
diff --git a/res/drawable-xxhdpi/overflow_thumbnail.png b/res/drawable-xxhdpi/overflow_thumbnail.png
new file mode 100644
index 0000000..7f3f733
--- /dev/null
+++ b/res/drawable-xxhdpi/overflow_thumbnail.png
Binary files differ
diff --git a/res/drawable-xxhdpi/search_bg.9.png b/res/drawable-xxhdpi/search_bg.9.png
new file mode 100644
index 0000000..2f4f4b6
--- /dev/null
+++ b/res/drawable-xxhdpi/search_bg.9.png
Binary files differ
diff --git a/res/drawable/action_bar_tab.xml b/res/drawable/action_bar_tab.xml
index 35df053..8a3ea7a 100644
--- a/res/drawable/action_bar_tab.xml
+++ b/res/drawable/action_bar_tab.xml
@@ -14,13 +14,25 @@
      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:drawable="@drawable/tab_selected_pressed" android:state_pressed="true" android:state_selected="true"/>
-    <item android:drawable="@drawable/tab_selected_focused" android:state_focused="true" android:state_selected="true"/>
-    <item android:drawable="@drawable/tab_selected" android:state_selected="true"/>
-    <item android:drawable="@drawable/tab_unselected_pressed" android:state_pressed="true"/>
-    <item android:drawable="@drawable/tab_unselected_focused" android:state_focused="true"/>
-
-</selector>
\ No newline at end of file
+<touch-feedback  xmlns:android="http://schemas.android.com/apk/res/android"
+    android:tint="@color/tab_pressed_color">
+    <item>
+        <selector>
+            <item android:drawable="@drawable/tab_selected"
+                    android:state_focused="false"
+                    android:state_pressed="false"
+                    android:state_selected="true" />
+            <item android:drawable="@drawable/tab_selected_focused"
+                    android:state_focused="true"
+                    android:state_pressed="false"
+                    android:state_selected="true" />
+            <item android:drawable="@drawable/tab_unselected_focused"
+                    android:state_focused="true"
+                    android:state_pressed="false"
+                    android:state_selected="false" />
+            <item android:drawable="@drawable/tab_selected"
+                    android:state_selected="true" />
+            <item android:drawable="@color/tab_default_color" />
+        </selector>
+    </item>
+</touch-feedback>
\ No newline at end of file
diff --git a/res/drawable/action_button_background.xml b/res/drawable/action_button_background.xml
new file mode 100644
index 0000000..895bda1
--- /dev/null
+++ b/res/drawable/action_button_background.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2014 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.
+-->
+<touch-feedback xmlns:android="http://schemas.android.com/apk/res/android"
+                android:tint="?android:attr/colorButtonPressed"
+                android:pinned="true">
+    <!-- Transparent background constrains the touch feedback ripple to the button, but also allows
+         touch feedback ripples in the parent to show under the button. -->
+    <item>
+        <shape android:shape="rectangle"  >
+            <solid android:color="@android:color/transparent" />
+        </shape>
+    </item>
+</touch-feedback>
diff --git a/res/drawable/background_all_contacts.xml b/res/drawable/background_all_contacts.xml
new file mode 100644
index 0000000..c14886a
--- /dev/null
+++ b/res/drawable/background_all_contacts.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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="false">
+        <shape android:shape="rectangle" >
+            <solid android:color="@color/all_contacts_button_color" />
+        </shape>
+    </item>
+
+    <item android:state_pressed="true">
+        <shape android:shape="rectangle" >
+            <solid android:color="@color/all_contacts_button_pressed_color" />
+        </shape>
+    </item>
+</selector>
\ No newline at end of file
diff --git a/res/drawable/btn_call.xml b/res/drawable/btn_call.xml
deleted file mode 100644
index ae2f6c0..0000000
--- a/res/drawable/btn_call.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!-- Background resource for call button in the various dialpads.
-     Almost a copy from framework's item_background_holo_dark.xml, but has different pressed effect
-  -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <item android:state_window_focused="false" android:drawable="@android:color/transparent" />
-
-    <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
-    <item android:state_focused="true"  android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_disabled_holo_dark" />
-    <item android:state_focused="true"  android:state_enabled="false"                              android:drawable="@drawable/list_selector_disabled_holo_dark" />
-    <item android:state_focused="true"                                                             android:drawable="@drawable/list_focused_holo" />
-    <item                                                                                          android:drawable="@android:color/transparent" />
-</selector>
diff --git a/res/drawable/call_history_actionbar_background.xml b/res/drawable/call_history_actionbar_background.xml
deleted file mode 100644
index f781f27..0000000
--- a/res/drawable/call_history_actionbar_background.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?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>
-        <shape android:shape="rectangle">
-            <solid android:color="#c6c6c6" />
-        </shape>
-    </item>
-    <item android:bottom="1dip">
-        <shape android:shape="rectangle">
-            <solid android:color="@color/actionbar_background_color" />
-        </shape>
-    </item>
-</layer-list>
\ No newline at end of file
diff --git a/res/drawable/tab_unselected_pressed.xml b/res/drawable/call_log_background.xml
similarity index 69%
rename from res/drawable/tab_unselected_pressed.xml
rename to res/drawable/call_log_background.xml
index 2362b65..92299f0 100644
--- a/res/drawable/tab_unselected_pressed.xml
+++ b/res/drawable/call_log_background.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-     Copyright (C) 2013 The Android Open Source Project
+     Copyright (C) 2014 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.
@@ -14,13 +14,6 @@
      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>
-        <shape android:shape="rectangle" >
-            <solid android:color="#4dffffff" />
-        </shape>
-    </item>
-
-</layer-list>
\ No newline at end of file
+<touch-feedback xmlns:android="http://schemas.android.com/apk/res/android"
+                android:tint="?android:attr/colorButtonPressed"
+                android:pinned="false" />
diff --git a/res/drawable/tab_unselected_pressed.xml b/res/drawable/floating_action_button.xml
similarity index 68%
copy from res/drawable/tab_unselected_pressed.xml
copy to res/drawable/floating_action_button.xml
index 2362b65..ea95490 100644
--- a/res/drawable/tab_unselected_pressed.xml
+++ b/res/drawable/floating_action_button.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-     Copyright (C) 2013 The Android Open Source Project
+     Copyright (C) 2014 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.
@@ -15,12 +15,8 @@
      limitations under the License.
 -->
 
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="#4dffffff" />
-        </shape>
-    </item>
-
-</layer-list>
\ No newline at end of file
+<touch-feedback xmlns:android="http://schemas.android.com/apk/res/android"
+    android:tint="@color/dialer_accent_color"
+    android:pinned="true">
+    <item android:drawable="@drawable/fab_teal_background" />
+</touch-feedback>
diff --git a/res/drawable/ic_phone_plus_wifi.png b/res/drawable/ic_phone_plus_wifi.png
deleted file mode 100644
index 5cd75ab..0000000
--- a/res/drawable/ic_phone_plus_wifi.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_wifi_call.png b/res/drawable/ic_wifi_call.png
deleted file mode 100644
index 886cbd7..0000000
--- a/res/drawable/ic_wifi_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/tab_unselected_pressed.xml b/res/drawable/shadow_fade_up.xml
similarity index 66%
copy from res/drawable/tab_unselected_pressed.xml
copy to res/drawable/shadow_fade_up.xml
index 2362b65..e961c86 100644
--- a/res/drawable/tab_unselected_pressed.xml
+++ b/res/drawable/shadow_fade_up.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2013 The Android Open Source Project
+<!-- Copyright (C) 2012 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.
@@ -15,12 +14,11 @@
      limitations under the License.
 -->
 
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="#4dffffff" />
-        </shape>
-    </item>
-
-</layer-list>
\ No newline at end of file
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle" >
+    <gradient
+        android:type="linear"
+        android:startColor="#1a000000"
+        android:endColor="@null"
+        android:angle="90"/>
+</shape>
\ No newline at end of file
diff --git a/res/drawable/tab_selected.xml b/res/drawable/tab_selected.xml
deleted file mode 100644
index 25d76fc..0000000
--- a/res/drawable/tab_selected.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?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>
-        <shape android:shape="rectangle" >
-            <solid android:color="#7d7d7d" />
-        </shape>
-    </item>
-    <item android:bottom="6dp">
-        <shape android:shape="rectangle" >
-            <solid android:color="@color/actionbar_background_color" />
-        </shape>
-    </item>
-
-</layer-list>
\ No newline at end of file
diff --git a/res/drawable/tab_selected_focused.xml b/res/drawable/tab_selected_focused.xml
deleted file mode 100644
index 8efd7b3..0000000
--- a/res/drawable/tab_selected_focused.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?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>
-        <shape android:shape="rectangle" >
-            <solid android:color="#7d7d7d" />
-        </shape>
-    </item>
-    <item android:bottom="6dp">
-        <shape android:shape="rectangle" >
-            <solid android:color="@color/actionbar_background_color" />
-        </shape>
-    </item>
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="#27ffffff" />
-        </shape>
-    </item>
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="#00000000" />
-
-            <stroke
-                android:width="2dp"
-                android:color="#27ffffff" />
-        </shape>
-    </item>
-
-</layer-list>
\ No newline at end of file
diff --git a/res/drawable/tab_selected_pressed.xml b/res/drawable/tab_selected_pressed.xml
deleted file mode 100644
index a38344e..0000000
--- a/res/drawable/tab_selected_pressed.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?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>
-        <shape android:shape="rectangle" >
-            <solid android:color="#7d7d7d" />
-        </shape>
-    </item>
-    <item android:bottom="6dp">
-        <shape android:shape="rectangle" >
-            <solid android:color="@color/actionbar_background_color" />
-        </shape>
-    </item>
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="#4dffffff" />
-        </shape>
-    </item>
-
-</layer-list>
\ No newline at end of file
diff --git a/res/drawable/tab_unselected_focused.xml b/res/drawable/tab_unselected_focused.xml
deleted file mode 100644
index 2aceb63..0000000
--- a/res/drawable/tab_unselected_focused.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?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>
-        <shape android:shape="rectangle" >
-            <solid android:color="#27ffffff" />
-        </shape>
-    </item>
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="#00000000" />
-
-            <stroke
-                android:width="2dp"
-                android:color="#27ffffff" />
-        </shape>
-    </item>
-
-</layer-list>
\ No newline at end of file
diff --git a/res/layout/all_contacts_activity.xml b/res/layout/all_contacts_activity.xml
index a913027..50cba1e 100644
--- a/res/layout/all_contacts_activity.xml
+++ b/res/layout/all_contacts_activity.xml
@@ -17,7 +17,6 @@
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:layout_marginTop="?android:attr/actionBarSize"
     android:id="@+id/all_contacts_frame">
     <fragment android:name="com.android.dialer.list.AllContactsFragment"
               android:id="@+id/all_contacts_fragment"
diff --git a/res/layout/call_log_activity.xml b/res/layout/call_log_activity.xml
index f9806e8..dfdf210 100644
--- a/res/layout/call_log_activity.xml
+++ b/res/layout/call_log_activity.xml
@@ -14,14 +14,22 @@
      limitations under the License.
 -->
 
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:layout_marginTop="?android:attr/actionBarSize"
-    android:id="@+id/calllog_frame">
+    android:id="@+id/calllog_frame"
+    android:orientation="vertical">
+    <com.android.dialer.list.ViewPagerTabs
+        android:id="@+id/viewpager_header"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/tab_height"
+        android:textAllCaps="true"
+        android:orientation="horizontal"
+        android:layout_gravity="top"
+        style="@style/DialtactsActionBarTabTextStyle" />
     <android.support.v4.view.ViewPager
         android:id="@+id/call_log_pager"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_marginTop="?android:attr/actionBarSize" />
-</FrameLayout>
+        android:layout_height="0dp"
+        android:layout_weight="1"/>
+</LinearLayout>
diff --git a/res/layout/call_log_fragment.xml b/res/layout/call_log_fragment.xml
index e58e160..b4714a3 100644
--- a/res/layout/call_log_fragment.xml
+++ b/res/layout/call_log_fragment.xml
@@ -20,7 +20,8 @@
     android:layout_height="match_parent"
     android:orientation="vertical"
     android:divider="?android:attr/dividerHorizontal"
-    android:showDividers="end">
+    android:showDividers="end"
+    android:background="@color/background_dialer_list_items">
 
     <FrameLayout
         android:id="@+id/voicemail_status"
@@ -66,7 +67,7 @@
             android:fadingEdge="none"
             android:scrollbarStyle="outsideOverlay"
             android:divider="@null"
-        />
+            android:nestedScrollingEnabled="true" />
         <TextView android:id="@android:id/empty"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
diff --git a/res/layout/call_log_list_item.xml b/res/layout/call_log_list_item.xml
index 1d368f6..6068bd8 100644
--- a/res/layout/call_log_list_item.xml
+++ b/res/layout/call_log_list_item.xml
@@ -21,7 +21,6 @@
     android:layout_height="wrap_content"
     android:id="@+id/call_log_list_item"
     android:orientation="vertical"
-    android:background="@drawable/bottom_border_background"
 >
     <!--
         This layout may represent either a call log item or one of the
@@ -34,19 +33,29 @@
         @id/call_log_item gone
     -->
 
+    <!-- Linear layout to separate the primary area containing the contact badge and caller
+         information and the secondary action (call details / play voicemail). -->
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:baselineAligned="false"
+        android:orientation="vertical"
+        android:gravity="center_vertical"
+        >
+
+        <!-- Primary area containing the contact badge and caller information -->
         <LinearLayout
             android:id="@+id/primary_action_view"
+            android:background="@drawable/call_log_background"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_centerVertical="true"
             android:padding="@dimen/call_log_outer_margin"
             android:orientation="horizontal"
             android:gravity="center_vertical"
-            android:background="?android:attr/selectableItemBackground"
             android:focusable="true"
-            android:nextFocusRight="@+id/secondary_action_icon"
+            android:nextFocusRight="@+id/call_back_action"
             android:nextFocusLeft="@+id/quick_contact_photo"
-        >
+            >
             <QuickContactBadge
                 android:id="@+id/quick_contact_photo"
                 android:layout_width="@dimen/call_log_list_contact_photo_size"
@@ -54,7 +63,7 @@
                 android:nextFocusRight="@id/primary_action_view"
                 android:layout_alignParentStart="true"
                 android:focusable="true"
-            />
+                />
             <LinearLayout
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
@@ -62,38 +71,33 @@
                 android:orientation="vertical"
                 android:gravity="center_vertical"
                 android:layout_marginStart="@dimen/call_log_inner_margin"
-            >
+                >
                 <TextView
                     android:id="@+id/name"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginEnd="@dimen/call_log_icon_margin"
                     android:textColor="?attr/call_log_primary_text_color"
-                    android:textSize="16sp"
+                    android:textSize="@dimen/call_log_primary_text_size"
                     android:singleLine="true"
-                />
-                <LinearLayout
+                    />
+                <TextView
+                    android:id="@+id/voicemail_transcription"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:orientation="horizontal"
-                >
-                    <TextView
-                        android:id="@+id/label"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_marginEnd="@dimen/call_log_icon_margin"
-                        android:textColor="?attr/call_log_secondary_text_color"
-                        android:textSize="12sp"
-                        android:singleLine="true"
-                        android:ellipsize="marquee"
-                        />
-                    </LinearLayout>
+                    android:layout_marginEnd="@dimen/call_log_icon_margin"
+                    android:textColor="?attr/call_log_secondary_text_color"
+                    android:textSize="@dimen/call_log_secondary_text_size"
+                    android:singleLine="true"
+                    android:ellipsize="marquee"
+                    android:visibility="gone"
+                    />
                 <LinearLayout
                     android:id="@+id/call_type"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:orientation="horizontal"
-                >
+                    >
                     <view
                         class="com.android.dialer.calllog.CallTypeIconsView"
                         android:id="@+id/call_type_icons"
@@ -101,33 +105,28 @@
                         android:layout_height="wrap_content"
                         android:layout_marginEnd="@dimen/call_log_icon_margin"
                         android:layout_gravity="center_vertical"
-                    />
+                        />
                     <TextView
-                        android:id="@+id/call_count_and_date"
+                        android:id="@+id/call_location_and_date"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_marginEnd="@dimen/call_log_icon_margin"
                         android:layout_gravity="center_vertical"
                         android:textColor="?attr/call_log_secondary_text_color"
-                        android:textSize="12sp"
+                        android:textSize="@dimen/call_log_secondary_text_size"
                         android:singleLine="true"
-                    />
+                        />
                 </LinearLayout>
             </LinearLayout>
-            <ImageButton
-                android:id="@+id/secondary_action_icon"
-                android:layout_width="@dimen/call_log_call_action_width"
-                android:layout_height="match_parent"
-                android:paddingStart="@dimen/call_log_inner_margin"
-                android:paddingTop="@dimen/call_log_inner_margin"
-                android:paddingBottom="@dimen/call_log_inner_margin"
-                android:paddingEnd="@dimen/call_log_inner_margin"
-                android:scaleType="center"
-                android:background="?android:attr/selectableItemBackground"
-                android:nextFocusLeft="@id/primary_action_view"
-            />
         </LinearLayout>
 
+        <!-- Viewstub with additional expandable actions for a call log entry -->
+        <ViewStub android:id="@+id/call_log_entry_actions_stub"
+                  android:inflatedId="@+id/call_log_entry_actions"
+                  android:layout="@layout/call_log_list_item_actions"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"/>
+    </LinearLayout>
     <TextView
         android:id="@+id/call_log_header"
         style="@style/ContactListSeparatorTextViewStyle"
diff --git a/res/layout/call_log_list_item_actions.xml b/res/layout/call_log_list_item_actions.xml
new file mode 100644
index 0000000..eb4aea2
--- /dev/null
+++ b/res/layout/call_log_list_item_actions.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content"
+             android:id="@+id/call_log_action_container">
+    <LinearLayout
+        android:id="@+id/call_log_entry_actions_ll"
+        android:gravity="center_vertical"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/call_log_action_height"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/call_log_actions_left_padding"
+        android:visibility="visible"
+        android:importantForAccessibility="1"
+        >
+        <TextView
+            android:id="@+id/call_back_action"
+            android:background="@drawable/action_button_background"
+            android:fontFamily="sans-serif-medium"
+            android:gravity="center"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:paddingLeft="@dimen/call_log_action_horizontal_padding"
+            android:paddingRight="@dimen/call_log_action_horizontal_padding"
+            android:text="@string/call_log_action_call_back"
+            android:textColor="@color/call_log_action_text"
+            android:textSize="@dimen/call_log_secondary_text_size"
+            android:nextFocusLeft="@+id/primary_action_view"
+            android:nextFocusRight="@+id/voicemail_action"
+            android:focusable="true"/>
+        <TextView
+            android:id="@+id/voicemail_action"
+            android:background="@drawable/action_button_background"
+            android:fontFamily="sans-serif-medium"
+            android:gravity="center"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:paddingLeft="@dimen/call_log_action_horizontal_padding"
+            android:paddingRight="@dimen/call_log_action_horizontal_padding"
+            android:text="@string/call_log_action_voicemail"
+            android:textColor="@color/call_log_action_text"
+            android:textSize="@dimen/call_log_secondary_text_size"
+            android:nextFocusLeft="@+id/call_back_action"
+            android:nextFocusRight="@+id/delete_action"
+            android:focusable="true"/>
+        <TextView
+            android:id="@+id/delete_action"
+            android:background="@drawable/action_button_background"
+            android:fontFamily="sans-serif-medium"
+            android:gravity="center"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:paddingLeft="@dimen/call_log_action_horizontal_padding"
+            android:paddingRight="@dimen/call_log_action_horizontal_padding"
+            android:text="@string/call_log_action_delete"
+            android:textColor="@color/call_log_action_delete_text"
+            android:textSize="@dimen/call_log_secondary_text_size"
+            android:nextFocusLeft="@+id/voicemail_action"
+            android:nextFocusRight="@+id/primary_action_view"
+            android:focusable="true"/>
+    </LinearLayout>
+</FrameLayout>
diff --git a/res/layout/dialpad.xml b/res/layout/dialpad.xml
deleted file mode 100644
index 4fc3e83..0000000
--- a/res/layout/dialpad.xml
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2006 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.
--->
-
-<!-- Dialpad in the Phone app. -->
-<TableLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/dialpad"
-    android:layout_width="match_parent"
-    android:layout_height="0px"
-    android:layout_weight="@integer/dialpad_layout_weight_dialpad"
-    android:layout_gravity="center_horizontal"
-    android:layout_marginTop="@dimen/dialpad_vertical_margin"
-    android:paddingStart="5dip"
-    android:paddingEnd="5dip"
-    android:paddingBottom="10dip"
-    android:stretchColumns="0,1,2"
-    android:layoutDirection="ltr" >
-
-    <TableRow
-        android:layout_height="0px"
-        android:layout_weight="1">
-        <com.android.dialer.dialpad.DialpadKeyButton
-            xmlns:android="http://schemas.android.com/apk/res/android"
-            android:id="@+id/one"
-            style="@style/DialtactsDialpadButtonStyle"
-            android:clickable="true"
-            android:focusable="true" >
-            <LinearLayout
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center" >
-                <TextView
-                    android:id="@+id/dialpad_key_number"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:textColor="@color/dialpad_primary_text_color"
-                    android:textSize="@dimen/dialpad_key_numbers_size"
-                    android:fontFamily="sans-serif-light"/>
-                <ImageView
-                    android:id="@+id/dialpad_key_voicemail"
-                    android:layout_width="@dimen/dialpad_key_letters_width"
-                    android:layout_height="wrap_content"
-                    android:src="@drawable/ic_dial_action_vm"
-                    android:paddingLeft="11dp"
-                    android:scaleType="fitStart"
-                    android:baselineAlignBottom="true" />
-            </LinearLayout>
-        </com.android.dialer.dialpad.DialpadKeyButton>
-        <include layout="@layout/dialpad_key" android:id="@+id/two"/>
-        <include layout="@layout/dialpad_key" android:id="@+id/three"/>
-    </TableRow>
-
-    <TableRow
-        android:layout_height="0px"
-        android:layout_weight="1">
-        <include layout="@layout/dialpad_key" android:id="@+id/four"/>
-        <include layout="@layout/dialpad_key" android:id="@+id/five"/>
-        <include layout="@layout/dialpad_key" android:id="@+id/six"/>
-    </TableRow>
-
-    <TableRow
-        android:layout_height="0px"
-        android:layout_weight="1">
-        <include layout="@layout/dialpad_key" android:id="@+id/seven"/>
-        <include layout="@layout/dialpad_key" android:id="@+id/eight"/>
-        <include layout="@layout/dialpad_key" android:id="@+id/nine"/>
-    </TableRow>
-
-    <TableRow
-        android:layout_height="0px"
-        android:layout_weight="1">
-        <com.android.dialer.dialpad.DialpadKeyButton
-            xmlns:android="http://schemas.android.com/apk/res/android"
-            android:id="@+id/star"
-            style="@style/DialtactsDialpadButtonStyle"
-            android:clickable="true"
-            android:focusable="true" >
-            <TextView
-                android:id="@id/dialpad_key_number"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textColor="@color/dialpad_secondary_text_color"
-                android:textSize="@dimen/dialpad_key_special_characters_size"
-                android:fontFamily="sans-serif-light"
-                android:paddingRight="@dimen/dialpad_key_letters_width"
-                android:layout_gravity="center" />
-        </com.android.dialer.dialpad.DialpadKeyButton>
-        <include layout="@layout/dialpad_key" android:id="@+id/zero"/>
-        <com.android.dialer.dialpad.DialpadKeyButton
-            xmlns:android="http://schemas.android.com/apk/res/android"
-            android:id="@+id/pound"
-            style="@style/DialtactsDialpadButtonStyle"
-            android:clickable="true"
-            android:focusable="true" >
-            <TextView
-                android:id="@id/dialpad_key_number"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textColor="@color/dialpad_secondary_text_color"
-                android:textSize="@dimen/dialpad_key_special_characters_size"
-                android:fontFamily="sans-serif-light"
-                android:paddingRight="@dimen/dialpad_key_letters_width"
-                android:layout_gravity="center" />
-        </com.android.dialer.dialpad.DialpadKeyButton>
-    </TableRow>
-</TableLayout>
diff --git a/res/layout/dialpad_chooser_list_item.xml b/res/layout/dialpad_chooser_list_item.xml
index 5ba88ca..9a49036 100644
--- a/res/layout/dialpad_chooser_list_item.xml
+++ b/res/layout/dialpad_chooser_list_item.xml
@@ -27,7 +27,7 @@
 
     <TextView android:id="@+id/text"
         android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textColor="@color/dialpad_text_color"
+        android:textColor="@color/dialpad_primary_text_color"
         android:layout_gravity="center_vertical"
         android:layout_width="0dip"
         android:layout_weight="1"
diff --git a/res/layout/dialpad_fragment.xml b/res/layout/dialpad_fragment.xml
index e673cea..b2312ad 100644
--- a/res/layout/dialpad_fragment.xml
+++ b/res/layout/dialpad_fragment.xml
@@ -16,113 +16,28 @@
 <view class="com.android.dialer.dialpad.DialpadFragment$DialpadSlidingLinearLayout"
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
+    android:layout_height="wrap_content"
     android:orientation="vertical" >
     <!-- spacer view -->
     <View
         android:id="@+id/spacer"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_weight="1" />
-    <view class="com.android.dialer.dialpad.DialpadFragment$HoverIgnoringLinearLayout"
-        android:id="@+id/top"
+        android:layout_weight="1"
+        android:background="#00000000" />
+    <!-- Dialpad shadow -->
+    <View
         android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="2"
-        android:orientation="vertical"
-        android:paddingStart="@dimen/dialpad_horizontal_margin"
-        android:paddingEnd="@dimen/dialpad_horizontal_margin"
-        android:layoutDirection="ltr"
-        android:background="@color/background_dialpad" >
-
-
-        <!-- Text field and possibly soft menu button above the keypad where
-             the digits are displayed. -->
-        <LinearLayout
-            android:id="@+id/digits_container"
-            android:layout_width="match_parent"
-            android:layout_height="0px"
-            android:layout_weight="@integer/dialpad_layout_weight_digits"
-            android:layout_marginTop="@dimen/dialpad_vertical_margin"
-            android:gravity="center" >
-
-            <com.android.dialer.dialpad.DigitsEditText
-                android:id="@+id/digits"
-                android:layout_width="0dip"
-                android:layout_weight="1"
-                android:layout_height="match_parent"
-                android:paddingLeft="10dp"
-                android:gravity="center"
-                android:scrollHorizontally="true"
-                android:singleLine="true"
-                android:textAppearance="@style/DialtactsDigitsTextAppearance"
-                android:textColor="@color/dialpad_text_color"
-                android:textCursorDrawable="@null"
-                android:fontFamily="sans-serif-light"
-                android:nextFocusRight="@+id/overflow_menu"
-                android:background="@android:color/transparent" />
-
-            <ImageButton
-                android:id="@+id/deleteButton"
-                android:layout_width="56dip"
-                android:layout_height="match_parent"
-                android:layout_gravity="center_vertical"
-                android:gravity="center"
-                android:state_enabled="false"
-                android:background="?android:attr/selectableItemBackground"
-                android:contentDescription="@string/description_delete_button"
-                android:src="@drawable/ic_dial_action_delete" />
-        </LinearLayout>
-
-        <!-- Keypad section -->
-        <include layout="@layout/dialpad" />
-
-        <View style="@style/DialpadHorizontalSeparator"/>
-
-        <LinearLayout
-            android:id="@+id/dialButtonContainer"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/fake_action_bar_height"
-            android:layout_gravity="center_horizontal"
-            android:background="@color/dialpad_primary_text_color"
-            android:layoutDirection="locale">
-            <ImageButton
-                android:id="@+id/call_history_on_dialpad_button"
-                android:layout_height="match_parent"
-                android:layout_width="@dimen/fake_menu_button_min_width"
-                android:layout_gravity="bottom|start"
-                android:background="@drawable/btn_call"
-                android:contentDescription="@string/action_menu_call_history_description"
-                android:src="@drawable/ic_menu_history_lt"/>
-            <ImageButton
-                android:id="@+id/dialButton"
-                android:layout_width="0dp"
-                android:layout_weight="1"
-                android:layout_height="match_parent"
-                android:layout_gravity="center"
-                android:state_enabled="false"
-                android:background="@drawable/btn_call"
-                android:contentDescription="@string/description_dial_button"
-                android:src="@drawable/ic_dial_action_call" />
-            <ImageButton
-                android:id="@+id/overflow_menu_on_dialpad"
-                android:layout_height="match_parent"
-                android:layout_width="@dimen/fake_menu_button_min_width"
-                android:layout_gravity="bottom|end"
-                android:background="@drawable/btn_call"
-                android:src="@drawable/ic_menu_overflow_lt"
-                android:contentDescription="@string/action_menu_overflow_description" />
-        </LinearLayout>
-
-        <!-- "Dialpad chooser" UI, shown only when the user brings up the
+        android:layout_height="10dp"
+        android:background="@drawable/shadow_fade_up" />
+    <include layout="@layout/dialpad_view" />
+    <!-- "Dialpad chooser" UI, shown only when the user brings up the
              Dialer while a call is already in progress.
              When this UI is visible, the other Dialer elements
              (the textfield/button and the dialpad) are hidden. -->
-        <ListView android:id="@+id/dialpadChooser"
+    <ListView android:id="@+id/dialpadChooser"
             android:layout_width="match_parent"
-            android:layout_height="1dip"
-            android:layout_weight="1"
-        />
-
-    </view>
+            android:layout_height="wrap_content"
+            android:background="@color/background_dialer_light"
+            android:visibility="gone" />
 </view>
diff --git a/res/layout/dialpad_key.xml b/res/layout/dialpad_key.xml
deleted file mode 100644
index c104f8a..0000000
--- a/res/layout/dialpad_key.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?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.
--->
-
-<!-- A layout representing a single key in the dialpad -->
-<com.android.dialer.dialpad.DialpadKeyButton
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/DialtactsDialpadButtonStyle"
-    android:clickable="true"
-    android:focusable="true" >
-    <LinearLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center">
-      <TextView
-          android:id="@+id/dialpad_key_number"
-          android:layout_width="wrap_content"
-          android:layout_height="wrap_content"
-          android:textColor="@color/dialpad_primary_text_color"
-          android:textSize="@dimen/dialpad_key_numbers_size"
-          android:fontFamily="sans-serif-light"
-          />
-      <TextView
-          android:id="@+id/dialpad_key_letters"
-          android:layout_width="@dimen/dialpad_key_letters_width"
-          android:layout_height="wrap_content"
-          android:textColor="@color/dialpad_secondary_text_color"
-          android:textSize="@dimen/dialpad_key_letters_size"
-          android:paddingLeft="11dp"
-          android:fontFamily="sans-serif-light"
-          />
-    </LinearLayout>
-</com.android.dialer.dialpad.DialpadKeyButton>
\ No newline at end of file
diff --git a/res/layout/dialtacts_activity.xml b/res/layout/dialtacts_activity.xml
index e2c3853..e0049b5 100644
--- a/res/layout/dialtacts_activity.xml
+++ b/res/layout/dialtacts_activity.xml
@@ -13,113 +13,98 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<FrameLayout
+<RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/dialtacts_mainlayout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:orientation="vertical"
     android:focusable="true"
     android:focusableInTouchMode="true"
     android:clipChildren="false"
-    android:id="@+id/dialtacts_container"
+    android:animateLayoutChanges="true"
+    android:background="@color/background_dialer_light"
     >
-    <!-- Overlapping dialpad fragment is inserted here -->
-    <LinearLayout
+    <RelativeLayout
+        android:id="@+id/dialtacts_container"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:clipChildren="false"
-        android:orientation="vertical" >
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:id="@+id/search_view_container"
-            android:orientation="vertical"
-            >
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:orientation="horizontal"
-                android:paddingLeft="16dp"
-                android:paddingRight="23dp"
-                android:background="@color/searchbox_background_color"
-                android:gravity="center_vertical">
-                <EditText
-                    android:id="@+id/search_view"
-                    android:layout_width="0dp"
-                    android:layout_height="56dp"
-                    android:layout_weight="1"
-                    android:textSize="@dimen/search_text_size"
-                    android:inputType="textFilter"/>
-                <ImageView
-                    android:id="@+id/search_close_button"
-                    android:layout_height="40dp"
-                    android:layout_width="40dp"
-                    android:padding="6dp"
-                    android:src="@drawable/ic_close_dk"
-                    android:clickable="true"
-                    android:background="?android:attr/selectableItemBackground"
-                    android:visibility="gone" />
-                <ImageView
-                    android:id="@+id/voice_search_button"
-                    android:layout_height="40dp"
-                    android:layout_width="40dp"
-                    android:padding="3dp"
-                    android:src="@drawable/ic_voice_search"
-                    android:clickable="true"
-                    android:contentDescription="@string/description_start_voice_search"
-                    android:background="?android:attr/selectableItemBackground" />
-            </LinearLayout>
-            <View
-                android:id="@+id/searchbox_divider"
-                android:layout_height="1dp"
-                android:layout_width="match_parent"
-                android:background="@color/background_dialer_light" />
-        </LinearLayout>
+        android:clipChildren="false">
+        <!-- The main contacts grid -->
         <FrameLayout
-            android:layout_height="0dp"
-            android:layout_weight="1"
+            android:layout_height="match_parent"
             android:layout_width="match_parent"
             android:id="@+id/dialtacts_frame"
-            android:clipChildren="false">
+            android:clipChildren="false"
+            >
         </FrameLayout>
-        <View
-            android:layout_height="2dp"
-            android:layout_width="match_parent"
-            android:background="#33999999"
-        />
+        <!-- Search entry box and remove view -->
         <FrameLayout
-            android:layout_height="@dimen/fake_action_bar_height"
             android:layout_width="match_parent"
-            android:id="@+id/fake_action_bar"
-            android:background="@color/actionbar_background_color">
-            <ImageButton
-                android:id="@+id/call_history_button"
-                android:layout_width="@dimen/fake_menu_button_min_width"
-                android:layout_height="match_parent"
-                android:layout_gravity="bottom|start"
-                android:background="?android:attr/selectableItemBackground"
-                android:contentDescription="@string/action_menu_call_history_description"
-                android:src="@drawable/ic_menu_history_dk"/>
-            <ImageButton
-                android:id="@+id/dialpad_button"
-                android:layout_width="@dimen/fake_menu_button_min_width"
-                android:layout_height="match_parent"
-                android:layout_gravity="bottom|center"
-                android:background="?android:attr/selectableItemBackground"
-                android:contentDescription="@string/action_menu_dialpad_button"
-                android:src="@drawable/ic_menu_dialpad_dk"/>
-            <ImageButton
-                 android:id="@+id/overflow_menu"
-                 android:layout_width="@dimen/fake_menu_button_min_width"
-                 android:layout_height="match_parent"
-                 android:layout_gravity="bottom|end"
-                 android:src="@drawable/ic_menu_overflow_dk"
-                 android:contentDescription="@string/action_menu_overflow_description"
-                 android:background="?android:attr/selectableItemBackground"/>
+            android:layout_height="wrap_content"
+            android:layout_alignParentTop="true"
+            android:id="@+id/search_and_remove_view_container"
+            android:visibility="gone"
+            >
         </FrameLayout>
-        <View
-            android:id="@+id/dialtacts_bottom_padding"
+    </RelativeLayout>
+    <com.android.dialer.list.RemoveView
+        android:layout_width="match_parent"
+        android:layout_height="56dp"
+        android:id="@+id/remove_view"
+        android:layout_alignParentTop="true"
+        >
+        <LinearLayout
+            android:id="@+id/remove_view_container"
+            android:layout_height="match_parent"
             android:layout_width="match_parent"
-            android:layout_height="?android:attr/actionBarSize"
-            android:visibility="gone" />
-    </LinearLayout>
-</FrameLayout>
+            android:gravity="center"
+            android:orientation="horizontal"
+            android:visibility="gone" >
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:id="@+id/remove_view_icon"
+                android:src="@drawable/ic_remove"
+                android:contentDescription="@string/remove_contact"
+                />
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:id="@+id/remove_view_text"
+                android:textSize="@dimen/remove_text_size"
+                android:textColor="@color/remove_text_color"
+                android:text="@string/remove_contact"
+                />
+        </LinearLayout>
+    </com.android.dialer.list.RemoveView >
+    <FrameLayout
+        android:id="@+id/floating_action_button_container"
+        android:layout_width="@dimen/floating_action_button_width"
+        android:layout_height="@dimen/floating_action_button_height"
+        android:layout_marginRight="@dimen/floating_action_button_margin_right"
+        android:layout_marginBottom="@dimen/floating_action_button_margin_bottom"
+        android:layout_centerHorizontal="true"
+        android:layout_alignParentBottom="true">
+
+        <ImageButton
+            android:id="@+id/floating_action_button"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@drawable/floating_action_button"
+            android:contentDescription="@string/action_menu_dialpad_button"
+            android:src="@drawable/fab_ic_dial"/>
+
+    </FrameLayout>
+    <!-- Host container for the contact tile drag shadow -->
+    <FrameLayout
+        android:layout_height="match_parent"
+        android:layout_width="match_parent">
+        <ImageView
+            android:id="@+id/contact_tile_drag_shadow_overlay"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:visibility="gone"
+            android:importantForAccessibility="no" />
+    </FrameLayout>
+</RelativeLayout>
diff --git a/res/layout/lists_fragment.xml b/res/layout/lists_fragment.xml
new file mode 100644
index 0000000..d75095a
--- /dev/null
+++ b/res/layout/lists_fragment.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<com.android.dialer.widget.OverlappingPaneLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:animateLayoutChanges="true"
+    android:id="@+id/lists_frame">
+    <ListView
+        android:id="@+id/shortcut_card_list"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingTop="?android:attr/actionBarSize"
+        android:background="@color/actionbar_background_color"
+        android:clipToPadding="false"
+        android:fadingEdge="none"
+        android:divider="@null" />
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+        <com.android.dialer.list.ViewPagerTabs
+            android:id="@+id/lists_pager_header"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/tab_height"
+            android:textAllCaps="true"
+            android:orientation="horizontal"
+            android:layout_gravity="top"
+            style="@style/DialtactsActionBarTabTextStyle" />
+        <android.support.v4.view.ViewPager
+            android:id="@+id/lists_pager"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1">
+        </android.support.v4.view.ViewPager>
+    </LinearLayout>
+</com.android.dialer.widget.OverlappingPaneLayout>
diff --git a/res/layout/phone_favorite_regular_row_view.xml b/res/layout/phone_favorite_regular_row_view.xml
deleted file mode 100644
index 012c9be..0000000
--- a/res/layout/phone_favorite_regular_row_view.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!-- Layout parameters are set programmatically. -->
-<view
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/contact_tile"
-    class="com.android.dialer.list.PhoneFavoriteRegularRowView">
-
-    <RelativeLayout
-        android:id="@+id/contact_favorite_card"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:focusable="true">
-
-        <com.android.contacts.common.widget.LayoutSuppressingQuickContactBadge
-            android:id="@+id/contact_tile_quick"
-            android:layout_width="64dip"
-            android:layout_height="64dip"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:nextFocusRight="@id/contact_tile"
-            android:scaleType="centerCrop"
-            android:focusable="true" />
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="8dip"
-            android:layout_marginStart="8dip"
-            android:layout_toRightOf="@id/contact_tile_quick"
-            android:layout_toEndOf="@id/contact_tile_quick"
-            android:layout_centerVertical="true"
-            android:orientation="vertical">
-            <TextView
-                android:id="@id/contact_tile_name"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:textSize="16sp"
-                android:textColor="@color/dialtacts_primary_text_color"/>
-                android:singleLine="true"
-                android:fadingEdge="horizontal"
-                android:fadingEdgeLength="3dip"
-                android:ellipsize="marquee"
-                android:textAlignment="viewStart" />
-            <TextView
-                android:id="@+id/contact_tile_phone_type"
-                android:layout_height="wrap_content"
-                android:layout_width="wrap_content"
-                android:textSize="12sp"
-                android:ellipsize="marquee"
-                android:singleLine="true"
-                android:textColor="@color/dialtacts_secondary_text_color" />
-        </LinearLayout>
-        <ImageView
-            android:id="@+id/contact_favorite_star"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignRight="@id/contact_tile_quick"
-            android:layout_alignEnd="@id/contact_tile_quick"
-            android:layout_alignBottom="@id/contact_tile_quick"
-            android:layout_marginRight="7dip"
-            android:layout_marginEnd="7dip"
-            android:layout_marginBottom="7dip"
-            android:src="@drawable/ic_star_marked_as_fav"
-            android:visibility="gone" />
-
-    </RelativeLayout>
-
-    <LinearLayout
-        android:id="@+id/favorite_remove_dialogue"
-        android:orientation="horizontal"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:gravity="center_vertical"
-        android:alpha="0.0"
-        android:visibility="gone">
-
-        <TextView
-            android:id="@+id/favorite_remove_dialogue_text"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:paddingStart="@dimen/favorites_row_undo_text_side_padding"
-            android:paddingEnd="@dimen/favorites_row_undo_text_side_padding"
-            android:text="@string/favorite_hidden"
-            android:ellipsize="marquee"
-            android:fontFamily="sans-serif"
-            android:textSize="14sp"
-            android:textColor="@color/undo_dialogue_text_color"
-            android:singleLine="true"
-            android:gravity="center_vertical"
-            android:textDirection="ltr" />
-
-        <View
-            android:id="@+id/undo_separator"
-            android:layout_width="1dip"
-            android:layout_height="match_parent"
-            android:background="@color/undo_dialogue_text_color"
-            android:layout_marginTop="16dp"
-            android:layout_marginBottom="16dp" />
-
-        <LinearLayout
-            android:id="@+id/favorite_remove_undo_button"
-            android:orientation="vertical"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:clickable="true"
-            android:paddingStart="30dp"
-            android:paddingEnd="30dp"
-            android:background="?android:attr/selectableItemBackground"
-            android:gravity="center_vertical">
-
-            <ImageView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:src="@drawable/ic_fav_undo_dk"/>
-
-            <TextView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:fontFamily="sans-serif-light"
-                android:textSize="13sp"
-                android:ellipsize="marquee"
-                android:singleLine="true"
-                android:text="@string/favorite_hidden_undo"
-                android:textColor="@color/undo_dialogue_text_color"
-                android:textAlignment="center"/>
-        </LinearLayout>
-    </LinearLayout>
-</view>
diff --git a/res/layout/phone_favorite_tile_view.xml b/res/layout/phone_favorite_tile_view.xml
index 8806d39..01d855b 100644
--- a/res/layout/phone_favorite_tile_view.xml
+++ b/res/layout/phone_favorite_tile_view.xml
@@ -15,17 +15,16 @@
 -->
 <view
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:paddingBottom="1dip"
-    android:paddingRight="1dip"
-    android:paddingEnd="1dip"
     android:id="@+id/contact_tile"
-    class="com.android.dialer.list.PhoneFavoriteSquareTileView" >
+    class="com.android.dialer.list.PhoneFavoriteSquareTileView"
+    android:paddingEnd="@dimen/contact_tile_divider_width">
 
     <RelativeLayout
         android:id="@+id/contact_favorite_card"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:focusable="true">
+        android:focusable="true"
+        android:background="@drawable/ic_contacts_tiles" >
 
         <com.android.contacts.common.widget.LayoutSuppressingImageView
             android:id="@+id/contact_tile_image"
@@ -37,45 +36,56 @@
             android:id="@+id/shadow_overlay"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:background="@drawable/shadow_contact_photo"/>
+            android:background="@drawable/shadow_contact_photo" />
 
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:paddingLeft="8dp"
-            android:paddingRight="@dimen/contact_tile_info_button_height_and_width"
-            android:paddingStart="8dp"
-            android:paddingEnd="@dimen/contact_tile_info_button_height_and_width"
-            android:paddingBottom="4dp"
+            android:paddingLeft="@dimen/contact_tile_text_side_padding"
+            android:paddingRight="@dimen/contact_tile_text_side_padding"
+            android:paddingStart="@dimen/contact_tile_text_side_padding"
+            android:paddingEnd="@dimen/contact_tile_text_side_padding"
+            android:paddingBottom="@dimen/contact_tile_text_bottom_padding"
             android:layout_alignParentBottom="true"
             android:orientation="vertical" >
-            <TextView
-                android:id="@+id/contact_tile_name"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:gravity="center_vertical"
-                android:textColor="@color/contact_tile_name_color"
-                android:fontFamily="sans-serif"
-                android:singleLine="true"
-                android:textSize="16sp"
-                android:fadingEdge="horizontal"
-                android:fadingEdgeLength="3dip"
-                android:ellipsize="marquee"
-                android:textAlignment="viewStart" />
-            <TextView
-                android:id="@+id/contact_tile_phone_type"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:gravity="center_vertical"
-                android:textColor="@color/contact_tile_name_color"
-                android:fontFamily="sans-serif"
-                android:singleLine="true"
-                android:textSize="12sp"
-                android:paddingBottom="2dp"
-                android:fadingEdge="horizontal"
-                android:fadingEdgeLength="3dip"
-                android:ellipsize="marquee"
-                android:textAlignment="viewStart" />
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:gravity="center_vertical">
+                    <TextView
+                        android:id="@+id/contact_tile_name"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textColor="@color/contact_tile_name_color"
+                        android:fontFamily="sans-serif"
+                        android:singleLine="true"
+                        android:textSize="15sp"
+                        android:fadingEdge="horizontal"
+                        android:fadingEdgeLength="3dip"
+                        android:ellipsize="marquee"
+                        android:textAlignment="viewStart" />
+                    <ImageView
+                        android:id="@+id/contact_star_icon"
+                        android:layout_width="@dimen/favorites_star_icon_size"
+                        android:layout_height="@dimen/favorites_star_icon_size"
+                        android:layout_marginStart="3dp"
+                        android:src="@drawable/ic_star"
+                        android:visibility="gone" />
+                </LinearLayout>
+                <TextView
+                    android:id="@+id/contact_tile_phone_type"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:gravity="center_vertical"
+                    android:textColor="@color/contact_tile_name_color"
+                    android:fontFamily="sans-serif"
+                    android:singleLine="true"
+                    android:textSize="11sp"
+                    android:fadingEdge="horizontal"
+                    android:fadingEdgeLength="3dip"
+                    android:ellipsize="marquee"
+                    android:textAlignment="viewStart" />
         </LinearLayout>
         <View
             android:id="@+id/contact_tile_push_state"
@@ -85,97 +95,23 @@
             android:nextFocusRight="@+id/contact_tile_secondary_button"
             android:background="?android:attr/selectableItemBackground" />
 
-        <ImageView
-            android:id="@+id/contact_favorite_star"
-            android:background="?android:attr/selectableItemBackground"
-            android:layout_height="@dimen/contact_tile_info_button_height_and_width"
-            android:layout_width="@dimen/contact_tile_info_button_height_and_width"
-            android:paddingLeft="8dp"
-            android:paddingRight="8dp"
-            android:paddingStart="8dp"
-            android:paddingEnd="8dp"
-            android:paddingTop="8dp"
-            android:paddingBottom="8dp"
-            android:layout_alignParentBottom="true"
-            android:layout_alignParentRight="true"
-            android:layout_alignParentEnd="true"
-            android:src="@drawable/ic_star_marked_as_fav"
-            android:scaleType="center"
-            android:visibility="gone" />
-
-
         <ImageButton
             android:id="@id/contact_tile_secondary_button"
-            android:src="@drawable/ic_contact_info"
+            android:src="@drawable/overflow_thumbnail"
             android:background="?android:attr/selectableItemBackground"
             android:layout_height="@dimen/contact_tile_info_button_height_and_width"
             android:layout_width="@dimen/contact_tile_info_button_height_and_width"
-            android:paddingLeft="8dp"
-            android:paddingRight="8dp"
-            android:paddingStart="8dp"
-            android:paddingEnd="8dp"
-            android:paddingTop="8dp"
-            android:paddingBottom="8dp"
-            android:layout_alignParentBottom="true"
+            android:paddingLeft="4dp"
+            android:paddingRight="4dp"
+            android:paddingStart="4dp"
+            android:paddingEnd="4dp"
+            android:paddingTop="4dp"
+            android:paddingBottom="4dp"
+            android:layout_alignParentTop="true"
             android:layout_alignParentRight="true"
             android:layout_alignParentEnd="true"
+            android:scaleType="center"
             android:contentDescription="@string/description_view_contact_detail" />
 
     </RelativeLayout>
-
-    <LinearLayout
-        android:id="@+id/favorite_remove_dialogue"
-        android:orientation="vertical"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:gravity="center_horizontal"
-        android:background="@color/background_dialer_light"
-        android:alpha="0.0"
-        android:visibility="gone">
-
-        <TextView
-            android:id="@+id/favorite_remove_dialogue_text"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/favorite_hidden"
-            android:ellipsize="marquee"
-            android:fontFamily="sans-serif"
-            android:textSize="14sp"
-            android:textColor="@color/undo_dialogue_text_color"
-            android:lines="2"
-            android:paddingTop="22dp"
-            android:textDirection="ltr"
-            android:textAlignment="center" />
-
-        <LinearLayout
-            android:id="@+id/favorite_remove_undo_button"
-            android:orientation="vertical"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_alignParentLeft="true"
-            android:background="?android:attr/selectableItemBackground"
-            android:clickable="true"
-            android:layout_weight="1"
-            android:layout_gravity="bottom">
-
-            <ImageView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:src="@drawable/ic_fav_undo_dk"/>
-
-            <TextView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:fontFamily="sans-serif"
-                android:textSize="13sp"
-                android:ellipsize="marquee"
-                android:singleLine="true"
-                android:text="@string/favorite_hidden_undo"
-                android:textColor="@color/undo_dialogue_text_color"
-                android:textAlignment="center"/>
-        </LinearLayout>
-
-    </LinearLayout>
 </view>
diff --git a/res/layout/phone_favorites_fragment.xml b/res/layout/phone_favorites_fragment.xml
index 363565a..0b657df 100644
--- a/res/layout/phone_favorites_fragment.xml
+++ b/res/layout/phone_favorites_fragment.xml
@@ -21,8 +21,7 @@
     android:layout_height="match_parent"
     android:divider="?android:attr/dividerHorizontal"
     android:showDividers="end"
-    android:clipChildren="false"
-    android:background="@color/background_dialer_light">
+    android:clipChildren="false">
 
     <FrameLayout
         android:id="@+id/contact_tile_frame"
@@ -30,22 +29,18 @@
         android:layout_height="match_parent"
         android:layout_alignParentTop="true"
         android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true">
-
+        android:paddingStart="@dimen/favorites_row_start_padding"
+        android:paddingEnd="@dimen/favorites_row_end_padding" >
         <com.android.dialer.list.PhoneFavoriteListView
             android:id="@+id/contact_tile_list"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:paddingTop="@dimen/contact_tile_list_padding_top"
+            android:paddingTop="@dimen/favorites_row_top_padding"
+            android:numColumns="@integer/contact_tile_column_count_in_favorites"
             android:clipToPadding="false"
             android:fadingEdge="none"
-            android:divider="@null" />
-
-        <ImageView
-            android:id="@+id/contact_tile_drag_shadow_overlay"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:visibility="gone"/>
+            android:divider="@null"
+            android:nestedScrollingEnabled="true" />
     </FrameLayout>
 
     <include
@@ -58,5 +53,4 @@
         android:layout_alignParentBottom="true"
         layout="@layout/phone_no_favorites"
         android:visibility="gone"/>
-
 </RelativeLayout>
diff --git a/res/layout/phone_favorites_menu.xml b/res/layout/phone_favorites_menu.xml
new file mode 100644
index 0000000..0f7aa21
--- /dev/null
+++ b/res/layout/phone_favorites_menu.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<!-- The phone favorites menu appears on the main dialer screen above the favorite callers area,
+     and provides access to the All Contacts list. This is 1dp tall as a temporary hack to hide
+     it because it is no longer being used. It should be removed from its parent adapter entirely
+     eventually. -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:id="@+id/phone_favorites_menu"
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:paddingLeft="@dimen/favorites_menu_padding_horizontal"
+                android:paddingRight="@dimen/favorites_menu_padding_horizontal"
+                android:paddingTop="@dimen/favorites_menu_padding_top"
+                android:paddingBottom="@dimen/favorites_menu_padding_bottom"
+                android:background="@color/favorites_menu_background_color"
+        >
+    <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/favorites_menu_speed_dial_height"
+            android:fontFamily="@string/favorites_menu_speed_dial_font_family"
+            android:text="@string/favorites_menu_speed_dial"
+            android:textSize="@dimen/favorites_menu_speed_dial_text_size"
+            android:textColor="@color/speed_dial_text_color"
+            android:layout_alignParentLeft="true"
+            android:layout_centerVertical="true"
+            android:gravity="center"
+        />
+    <Button
+            android:id="@+id/all_contacts_button"
+            android:fontFamily="@string/favorites_menu_all_contacts_font_family"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/favorites_menu_all_contacts_height"
+            android:paddingLeft="@dimen/favorites_menu_padding_horizontal"
+            android:paddingRight="@dimen/favorites_menu_padding_horizontal"
+            android:text="@string/favorites_menu_all_contacts"
+            android:textSize="@dimen/favorites_menu_all_contacts_text_size"
+            android:background="@drawable/background_all_contacts"
+            android:textColor="@color/all_contacts_button_text_color"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:gravity="center"
+        />
+</RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/phone_no_favorites.xml b/res/layout/phone_no_favorites.xml
index 1a0079f..b95afd1 100644
--- a/res/layout/phone_no_favorites.xml
+++ b/res/layout/phone_no_favorites.xml
@@ -18,7 +18,6 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="vertical"
     android:minHeight="?android:attr/listPreferredItemHeight">
 
     <include
@@ -33,23 +32,18 @@
     <LinearLayout
         android:id="@+id/nofavorite_frame"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_height="wrap_content"
         android:orientation="vertical"
-        android:layout_gravity="center"
         android:gravity="center"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:layout_alignParentTop="true"
-        android:layout_above="@id/show_all_contact_button_in_nofav">
-
+        android:layout_centerInParent="true">
         <ImageView
             android:id="@+id/nofavorite_image"
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
             android:gravity="center_horizontal"
             android:src="@drawable/no_favorites_banner"
-            android:layout_marginBottom="14dp"/>
-
+            android:layout_marginBottom="14dp"
+            android:contentDescription="@string/no_favorites"/>
         <TextView
             android:id="@+id/title"
             android:layout_width="match_parent"
diff --git a/res/layout/recents_list_footer.xml b/res/layout/recents_list_footer.xml
new file mode 100644
index 0000000..48c0f36
--- /dev/null
+++ b/res/layout/recents_list_footer.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<!-- Text field and possibly soft menu button above the keypad where
+     the digits are displayed. -->
+
+<TextView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/recents_list_footer"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingTop="20dp"
+    android:paddingBottom="20dp"
+    android:gravity="center"
+    android:textColor="@color/dialtacts_primary_text_color"
+    android:textSize="14sp"
+    android:text="@string/recents_footer_text"
+    android:background="?android:attr/selectableItemBackground" />
\ No newline at end of file
diff --git a/res/layout/search_edittext.xml b/res/layout/search_edittext.xml
new file mode 100644
index 0000000..236d2bf
--- /dev/null
+++ b/res/layout/search_edittext.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:id="@+id/search_view_container"
+    android:orientation="horizontal"
+    android:layout_marginTop="@dimen/search_top_margin"
+    android:layout_marginBottom="@dimen/search_bottom_margin"
+    android:layout_marginLeft="@dimen/search_margin_horizontal"
+    android:layout_marginRight="@dimen/search_margin_horizontal"
+    android:paddingLeft="@dimen/search_box_left_padding"
+    android:paddingRight="@dimen/search_box_right_padding"
+    android:background="@drawable/search_bg"
+    android:gravity="center_vertical"
+    >
+    <EditText
+        android:id="@+id/search_view"
+        android:layout_width="0dp"
+        android:layout_height="@dimen/search_box_icon_size"
+        android:layout_weight="1"
+        android:layout_marginLeft="@dimen/search_box_text_left_margin"
+        android:textSize="@dimen/search_text_size"
+        android:fontFamily="@string/search_font_family"
+        android:textColor="@color/searchbox_text_color"
+        android:textColorHint="@color/searchbox_hint_text_color"
+        android:hint="@string/dialer_hint_find_contact"
+        android:inputType="textFilter"/>
+    <ImageView
+        android:id="@+id/search_close_button"
+        android:layout_height="@dimen/search_box_icon_size"
+        android:layout_width="@dimen/search_box_icon_size"
+        android:padding="6dp"
+        android:src="@drawable/ic_close_dk"
+        android:clickable="true"
+        android:background="?android:attr/selectableItemBackground"
+        android:contentDescription="@string/description_clear_search"
+        android:visibility="gone" />
+    <ImageView
+        android:id="@+id/voice_search_button"
+        android:layout_height="@dimen/search_box_icon_size"
+        android:layout_width="@dimen/search_box_icon_size"
+        android:padding="@dimen/search_box_icon_padding"
+        android:src="@drawable/ic_voice_search"
+        android:clickable="true"
+        android:contentDescription="@string/description_start_voice_search"
+        android:background="?android:attr/selectableItemBackground" />
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/show_all_contacts_fragment.xml b/res/layout/show_all_contacts_fragment.xml
index ddc99e8..6b89847 100644
--- a/res/layout/show_all_contacts_fragment.xml
+++ b/res/layout/show_all_contacts_fragment.xml
@@ -43,7 +43,8 @@
             android:layout_marginStart="?attr/contact_browser_list_padding_left"
             android:layout_marginEnd="?attr/contact_browser_list_padding_right"
             android:fastScrollEnabled="true"
-            android:fadingEdge="none"/>
+            android:fadingEdge="none"
+            android:nestedScrollingEnabled="true" />
     </FrameLayout>
 
 </LinearLayout>
diff --git a/res/layout/tile_interactions_teaser_view.xml b/res/layout/tile_interactions_teaser_view.xml
index 4104446..8204cb1 100644
--- a/res/layout/tile_interactions_teaser_view.xml
+++ b/res/layout/tile_interactions_teaser_view.xml
@@ -18,7 +18,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/actionbar_background_color"
+    android:background="@color/background_dialer_list_items"
     android:paddingBottom="@dimen/favorites_row_bottom_padding"
     android:paddingTop="@dimen/favorites_row_top_padding">
 
diff --git a/res/layout/wifi_call_enable_completion.xml b/res/layout/wifi_call_enable_completion.xml
deleted file mode 100644
index dd63c3b..0000000
--- a/res/layout/wifi_call_enable_completion.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<LinearLayout
-        android:orientation="vertical"
-        android:id="@+id/call_log_list_item"
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-
-    <ImageView
-            android:layout_width="192dp"
-            android:layout_height="128dp"
-            android:paddingTop="32dp"
-            android:paddingBottom="32dp"
-            android:layout_gravity="center_horizontal"
-            android:src="@drawable/ic_phone_plus_wifi"/>
-
-    <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingLeft="64dp"
-            android:paddingRight="64dp"
-            android:textSize="12dp"
-            android:textColor="@color/dialtacts_secondary_text_color"
-            android:text="@string/wifi_setup_completed"/>
-
-    <LinearLayout
-            android:orientation="horizontal"
-            android:paddingTop="32dp"
-            android:paddingBottom="32dp"
-            android:layout_gravity="center_horizontal"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content">
-
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:paddingRight="16dp"
-                android:textSize="12dp"
-                android:textAllCaps="true"
-                android:textColor="@color/dialtacts_primary_text_color"
-                android:text="@string/wifi_setup_ok"/>
-
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:paddingRight="16dp"
-                android:textSize="12dp"
-                android:textAllCaps="true"
-                android:textColor="@color/dialtacts_primary_text_color"
-                android:text="@string/wifi_setup_settings_shortcut"/>
-
-    </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/wifi_call_enable_settings.xml b/res/layout/wifi_call_enable_settings.xml
deleted file mode 100644
index 565cb01..0000000
--- a/res/layout/wifi_call_enable_settings.xml
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<LinearLayout
-        android:orientation="vertical"
-        android:id="@+id/call_log_list_item"
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-
-    <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:padding="10dp"
-            android:textSize="16dp"
-            android:textColor="@color/foreground_wifi_highlight"
-            android:background="@color/background_wifi_highlight"
-            android:text="@string/wifi_when_connected_to_a_signal"/>
-
-    <View
-            android:layout_width="match_parent"
-            android:layout_height="1dp"
-            android:background="@color/wifi_dark_wifi_highlight"/>
-
-    <LinearLayout
-            android:padding="10dp"
-            android:orientation="horizontal"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-
-        <!-- TODO(ihab): Do this layout without using layout_weight -->
-
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:textSize="16dp"
-                android:textColor="@color/dialtacts_primary_text_color"
-                android:text="@string/wifi_always_use_wifi"/>
-
-        <RadioButton
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:id="@+id/wifi_always_use_wifi"/>
-
-    </LinearLayout>
-
-    <View
-            android:layout_width="match_parent"
-            android:layout_height="1dp"
-            android:layout_marginLeft="10dp"
-            android:layout_marginRight="10dp"
-            android:background="@color/wifi_list_separator"/>
-
-    <LinearLayout
-            android:padding="10dp"
-            android:orientation="horizontal"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-
-        <!-- TODO(ihab): Do this layout without using layout_weight -->
-
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:textSize="16dp"
-                android:textColor="@color/dialtacts_primary_text_color"
-                android:text="@string/wifi_ask_use_wifi"/>
-
-        <RadioButton
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:id="@+id/wifi_ask_use_wifi"/>
-
-    </LinearLayout>
-
-    <View
-            android:layout_width="match_parent"
-            android:layout_height="1dp"
-            android:layout_marginLeft="10dp"
-            android:layout_marginRight="10dp"
-            android:background="@color/wifi_list_separator"/>
-
-    <LinearLayout
-            android:padding="10dp"
-            android:orientation="horizontal"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-
-        <!-- TODO(ihab): Do this layout without using layout_weight -->
-
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:textSize="16dp"
-                android:textColor="@color/dialtacts_primary_text_color"
-                android:text="@string/wifi_never_use_wifi"/>
-
-        <RadioButton
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:checked="true"
-                android:id="@+id/wifi_never_use_wifi"/>
-
-    </LinearLayout>
-
-    <View
-            android:layout_width="match_parent"
-            android:layout_height="1dp"
-            android:background="@color/wifi_list_separator"/>
-
-    <LinearLayout
-            android:padding="10dp"
-            android:orientation="horizontal"
-            android:gravity="end"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textSize="16dp"
-                android:textColor="@color/dialtacts_primary_text_color"
-                android:text="@string/wifi_next_setup_screen"/>
-
-        <ImageView
-                android:layout_width="32dp"
-                android:layout_height="32dp"
-                android:paddingStart="8dp"
-                android:src="@drawable/ic_wifi_call"/>
-
-    </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/wifi_call_enable_teaser.xml b/res/layout/wifi_call_enable_teaser.xml
deleted file mode 100644
index fd70619..0000000
--- a/res/layout/wifi_call_enable_teaser.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<LinearLayout
-        android:orientation="horizontal"
-        android:id="@+id/call_log_list_item"
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-
-    <ImageView
-            android:layout_width="64dp"
-            android:layout_height="64dp"
-            android:padding="16dp"
-            android:src="@drawable/ic_wifi_call"
-            android:background="@color/background_wifi_highlight"/>
-
-    <LinearLayout
-        android:orientation="vertical"
-        android:layout_width="0dp"
-        android:layout_weight="1"
-        android:gravity="center_vertical"
-        android:padding="8dp"
-        android:layout_height="match_parent">
-
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textSize="16dp"
-                android:textColor="@color/dialtacts_primary_text_color"
-                android:text="@string/wifi_no_signal_no_problem"/>
-
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textSize="12dp"
-                android:textColor="@color/dialtacts_secondary_text_color"
-                android:text="@string/wifi_enable_google_wifi_calling"/>
-
-    </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/menu/dialpad_options.xml b/res/menu/dialpad_options.xml
index 0727dd5..c6b5dda 100644
--- a/res/menu/dialpad_options.xml
+++ b/res/menu/dialpad_options.xml
@@ -15,8 +15,8 @@
 -->
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
-        android:id="@+id/menu_add_contacts"
-        android:title="@string/recentCalls_addToContact"
+        android:id="@+id/menu_add_contact"
+        android:title="@string/add_contact"
         android:showAsAction="withText"
         android:orderInCategory="1" />
     <item
diff --git a/res/menu/dialtacts_options.xml b/res/menu/dialtacts_options.xml
index 7e84818..17f4d9f 100644
--- a/res/menu/dialtacts_options.xml
+++ b/res/menu/dialtacts_options.xml
@@ -14,6 +14,11 @@
      limitations under the License.
 -->
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item
+        android:id="@+id/menu_history"
+        android:icon="@drawable/ic_menu_history_lt"
+        android:title="@string/action_menu_call_history_description" />
     <item
         android:id="@+id/menu_import_export"
         android:title="@string/menu_import_export" />
@@ -24,9 +29,6 @@
         android:id="@+id/menu_add_contact"
         android:title="@string/menu_newContact"/>
     <item
-        android:id="@+id/menu_all_contacts"
-        android:title="@string/menu_allContacts"/>
-    <item
         android:id="@+id/menu_call_settings"
         android:title="@string/call_settings"
         android:orderInCategory="2" />
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 927136d..8804035 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"ster"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nul"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"huts"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"stemboodskap"</string>
     <string name="description_search_button" msgid="3660807558587384889">"soek"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"bel"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"terugvee"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"nommer om te skakel"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Oproepgeskiedenis"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Meer opsies"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Wys slegs misgeloop"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Wys net stemboodskappe"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Wys alle oproepe"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Voeg kontak by"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Voeg 2-sek.-pouse by"</string>
     <string name="add_wait" msgid="3360818652790319634">"Voeg wagtyd by"</string>
     <string name="call_settings" msgid="7666474782093693667">"Instellings"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Uitgaande oproep"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Gemiste oproep"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Stemboodskap"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Voeg kontak by"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Bekyk kontak <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Bel <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Kontakbesonderhede van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Oproepbesonderhede"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nuwe stemboodskap."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> oproepe."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Stuur teksboodskap aan <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Ongeluisterde stemboodskap"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Vee soektog uit"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Begin stemsoektog"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Onbekend"</string>
     <string name="voicemail" msgid="3851469869202611441">"Stemboodskap"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Laai tans van SIM-kaart af…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM-kaartkontakte"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Heraktiveer die Mense-program om hierdie kenmerk te gebruik."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Stemsoektog is nie beskikbaar nie."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Kan nie \'n foonoproep maak nie want die Foon-program is gedeaktiveer."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Geen geïnstalleerde aktiwiteit beskikbaar om gekose handeling te hanteer nie."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Voer \'n naam of foonnommer in"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Alles"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Gemis"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Geen onlangs gemiste oproepe nie."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Geen onlangse stemposse nie."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Wys alle kontakte"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Wys net gunstelinge"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Geskiedenis"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Alles"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Gemis"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Stemboodskap"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Spoedbel"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Onlangse kontakte"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontakte"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Alle kontakte"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alle kontakte"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Verwyder uit gunstelinge"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Ontdoen"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Voeg by kontakte"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Bekyk volledige oproepgeskiedenis"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nuwe gemiste oproepe"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Gunstelinge en kontakte \nwat jy gereeld bel, sal hier wys.\nSo, begin bel."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Tik prent om alle getalle te sien of druk en hou om te herorganiseer"</string>
-    <string name="description_dismiss" msgid="2146276780562549643">"Verwerp"</string>
+    <string name="description_dismiss" msgid="2146276780562549643">"Maak toe"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Verwyder"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Spoedbel"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALLE KONTAKTE"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"BEL TERUG"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"VEE UIT"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"LUISTER"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Het oproep vanaf <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g> gemis."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Het oproep vanaf <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g> geantwoord."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Oproep na <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Bel <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> terug"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Luister na stemboodskap vanaf <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Vee oproeprekord-inskrywing vir <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> uit"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Oproeprekord-inskrywing is uitgevee."</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 9b38a74..58fa24a 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -26,12 +26,12 @@
     <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ከመደወል በፊት ቁጥር አርትዕ"</string>
     <string name="recentCalls_addToContact" msgid="1429899535546487008">"ወደ ዕውቂያዎች አክል"</string>
     <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"ከጥሪ ማስታወሻ አስወግድ"</string>
-    <string name="recentCalls_deleteAll" msgid="6352364392762163704">"የጥሪ ማስታወሻ አጥራ"</string>
+    <string name="recentCalls_deleteAll" msgid="6352364392762163704">"የጥሪ ማስታወሻ አጽዳ"</string>
     <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"የድምፅ መልዕክት ሰርዝ"</string>
     <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"የድምፅ መልዕክት አጋራ"</string>
     <string name="recentCalls_empty" msgid="247053222448663107">"ምዝግብ ማስታወሻባዶ ነው..."</string>
-    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"የጥሪ ማስታወሻ አጥራ"</string>
-    <string name="clearCallLogConfirmation" msgid="5043563133171583152">"ሁሉም የጥሪ ማህደሮችህ ይሰረዛሉ፡፡"</string>
+    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"የጥሪ ማስታወሻ አጽዳ"</string>
+    <string name="clearCallLogConfirmation" msgid="5043563133171583152">"ሁሉም የጥሪ ማህደሮችዎ ይሰረዛሉ።"</string>
     <string name="clearCallLogProgress_title" msgid="8365943000154295771">"የጥሪ ምዝግብ ማስታወሻ በማጥራት ላይ…"</string>
   <plurals name="notification_voicemail_title">
     <item quantity="one" msgid="1746619685488504230">"የድምፅ መልዕክት"</item>
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"ኮከብ"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"ዜሮ"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"ፓውንድ"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"የድምፅ መልዕክት"</string>
     <string name="description_search_button" msgid="3660807558587384889">"ፍለጋ"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"ደውል"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"የኋሊት ደምሳሽ"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"ቁጥር ለመደወል"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"የስልክ ጥሪ ታሪክ"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"ተጨማሪ አማራጮች"</string>
@@ -89,8 +87,9 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"ያመለጡትን ብቻ አሳይ"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"የድምፅ መልዕክቶች ብቻ አሳይ"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"ሁሉንም ጥሪዎች አሳይ"</string>
+    <string name="add_contact" msgid="8875804371377471164">"እውቂያ አክል"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"2 ሴኮንድ ፋታ አክል"</string>
-    <string name="add_wait" msgid="3360818652790319634">"ጠብቅአክል"</string>
+    <string name="add_wait" msgid="3360818652790319634">"መጠበቅ አክል"</string>
     <string name="call_settings" msgid="7666474782093693667">"ቅንብሮች"</string>
     <string name="menu_newContact" msgid="1209922412763274638">"አዲስ ዕውቅያ"</string>
     <string name="menu_allContacts" msgid="6948308384034051670">"ሁሉም ዕውቂያዎች"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"ወጪ ጥሪ"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"ያመለጠ  ጥሪ"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"የድምፅ መልዕክት"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"እውቅያዎች አክል"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"ዕውቂያ <xliff:g id="NAME">%1$s</xliff:g> ዕይ"</string>
     <string name="description_call" msgid="3443678121983852666">"ጥሪ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"የ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> እውቂያ ዝርዝሮች"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"የጥሪ ዝርዝሮች"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"አዲስ የድምጽ መልዕክት።"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ጥሪዎች።"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"የፅሁፍ መልዕክት ወደ <xliff:g id="NAME">%1$s</xliff:g> ላክ"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"ያልተሰማ የድምፅመልዕክት"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"ፍለጋን አጽዳ"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"በድምፅ ፍለጋ ይጀምሩ"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"ደውል<xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"ያልታወቀ"</string>
     <string name="voicemail" msgid="3851469869202611441">"የድምፅ መልዕክት"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"ከSIM ካርድ ላይ በመጫን ላይ..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"የSIM ካርድ ዕውቂያዎች"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"ይህንን ባህሪ ለመጠቀም የሰዎች መተግበሪያውን ዳግም ያንቁት።"</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"የድምጽ ፍለጋ አይገኝም።"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"የስልክ መተግበሪያው ስለተሰናከለ የስልክ ጥሪ ማድረግ አይቻልም።"</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"የተመረጠውን ድርጊት ለማከናወን ምንም የተጫነ እንቅስቃሴ አይገኝም።"</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"ስም ወይም ስልክ ቁጥር ይተይቡ"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"ሁሉም"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"ያመለጡ"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"ምንም በቅርብ ጊዜ ያመለጡ ጥሪዎች የሉም።"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"ምንም የቅርብ ጊዜ የድምጽ መልዕክቶች የሉልም።"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"ሁሉንም ዕውቂያዎች አሳይ"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"ተወዳጆችን ብቻ አሳይ"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"ታሪክ"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"ሁሉም"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"ያመለጡ"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"የድምፅ መልዕክት"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"አቋራጭ መደወያ"</string>
+    <string name="tab_recents" msgid="929949073851377206">"የቅርብ ጊዜዎቹ"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"ዕውቂያዎች"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"ሁሉም እውቂያዎች"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ሁሉም እውቂያዎች"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"ከተወዳጆች ውስጥ ተወግዷል።"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"ቀልብስ"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"ለ<xliff:g id="NUMBER">%s</xliff:g> ደውል"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"ወደ ዕውቂያዎች አክል"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"ሙሉ የጥሪ ታሪኮችን ይመልከቱ"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> አዲስ ያልተመለሱ ጥሪዎች"</string>
     <string name="no_favorites" msgid="5212485868783382971">"ተወዳጆች እና አብዛኛውን ጊዜ\nየሚደውሉላቸው እውቂያዎች እዚህ ይታያሉ።\nስለዚህ መደወል ይጀምሩ።"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"ሁሉንም ቁጥሮች ለማየት ምስሉን መታ ያድርጉ ወይም ቅደም ተከተላቸውን ለማስተካከል ተጭነው ይያዙ"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"አሰናብት"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"አስወግድ"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"አቋራጭ መደወያ"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ሁሉም እውቂያዎች"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"መልሰህ ደውል"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ሰርዝ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"አዳምጥ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"የ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>፣ <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>፣ <xliff:g id="TIMEOFCALL">%3$s</xliff:g> ጥሪ አምልጠዎታል።"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"የ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>፣ <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>፣ <xliff:g id="TIMEOFCALL">%3$s</xliff:g> ጥሪ አንስተዋል።"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"ለ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>፣ <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>፣ <xliff:g id="TIMEOFCALL">%3$s</xliff:g> ይደውሉ።"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"ለ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> መልሰው ይደውሉ"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"የ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>ን የድምጽ መልዕክት ያዳምጡ"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"የ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> የጥሪ ምዝግብ ማስታወሻ ግቤት ይሰርዙ"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"የጥሪ ምዝግብ ማስታወሻ ግቤት ተሰርዟል።"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 9998c6f..cbabb89 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"نجمة"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"صفر"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"رنين"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"البريد الصوتي"</string>
     <string name="description_search_button" msgid="3660807558587384889">"بحث"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"طلب"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"الرقم الذي سيتم طلبه"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"سجل المكالمات"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"مزيد من الخيارات"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"عرض الفائت فقط"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"إظهار رسائل البريد الصوتي فقط"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"عرض جميع المكالمات"</string>
+    <string name="add_contact" msgid="8875804371377471164">"إضافة جهة اتصال"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"إضافة ثانيتين إيقاف مؤقت"</string>
     <string name="add_wait" msgid="3360818652790319634">"إضافة انتظار"</string>
     <string name="call_settings" msgid="7666474782093693667">"الإعدادات"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"مكالمة صادرة"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"مكالمة فائتة"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"البريد الصوتي"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"إضافة جهة اتصال"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"عرض جهة الاتصال <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"الاتصال بـ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"تفاصيل جهة الاتصال بـ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"تفاصيل المكالمة"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"بريد صوتي جديد"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> من المكالمات."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"إرسال رسالة نصية إلى <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"البريد الصوتي غير المسموع"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"محو البحث"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"بدء البحث الصوتي"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"الاتصال بالرقم <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"غير معروف"</string>
     <string name="voicemail" msgid="3851469869202611441">"البريد الصوتي"</string>
@@ -125,40 +127,50 @@
     <string name="dialerDialpadHintText" msgid="5824490365898349041">"طلب لإضافة مكالمة"</string>
     <string name="callDetailsDurationFormat" msgid="8157706382818184268">"عدد الدقائق:<xliff:g id="MINUTES">%s</xliff:g>، عددالثواني: <xliff:g id="SECONDS">%s</xliff:g>"</string>
     <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"لم يتم إرسال المكالمة"</string>
-    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"لإعداد البريد الصوتي، انتقل إلى القائمة &gt; الإعدادات."</string>
+    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"‏لإعداد البريد الصوتي، انتقل إلى القائمة &gt; الإعدادات."</string>
     <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"للاتصال بالبريد الصوتي، يجب أولاً إيقاف وضع الطائرة."</string>
     <string name="contact_list_loading" msgid="5488620820563977329">"جارٍ التحميل..."</string>
     <string name="imei" msgid="3045126336951684285">"IMEI"</string>
     <string name="meid" msgid="6210568493746275750">"MEID"</string>
-    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"جارٍ التحميل من بطاقة SIM…"</string>
-    <string name="simContacts_title" msgid="27341688347689769">"بطاقة SIM وجهات الاتصال"</string>
+    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"‏جارٍ التحميل من بطاقة SIM…"</string>
+    <string name="simContacts_title" msgid="27341688347689769">"‏بطاقة SIM وجهات الاتصال"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"أعد تمكين تطبيق الأشخاص لاستخدام هذه الميزة."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"لا تتوفر إمكانية البحث الصوتي."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"يتعذر إجراء مكالمة هاتفية نظرًا لأنه تم تعطيل تطبيق الهاتف."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"لا يتوفر نشاط مثبَّت للتعامل مع الإجراء المحدد."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"أدخل اسمًا أو رقم هاتف"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"الكل"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"فائتة"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"لا توجد مكالمات فائتة حديثة."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"لا توجد رسائل بريد صوتي حديثة."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"عرض جميع جهات الاتصال"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"عرض المفضلة فقط"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"السجل"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"٠"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"١"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"٢"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"٣"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"٤"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"٥"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"٦"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"٧"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"٨"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"٩"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"الكل"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"فائتة"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"البريد الصوتي"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"الاتصال السريع"</string>
+    <string name="tab_recents" msgid="929949073851377206">"الحديثة"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"جهات الاتصال"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"جميع جهات الاتصال"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"جميع جهات الاتصال"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"تمت إزالة جهة الاتصال من المفضلة"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"تراجع"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"الاتصال بالرقم <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"إضافة إلى جهات الاتصال"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"عرض سجل المكالمات بالكامل"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> من المكالمات الجديدة الفائتة"</string>
     <string name="no_favorites" msgid="5212485868783382971">"جهات الاتصال المفضلة وجهات الاتصال التي\nتتصل غالبًا بها ستظهر هنا.\nلذا عليك البدء في الاتصال."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"انقر على الصورة للاطلاع على كل الأرقام أو اضغط مع الاستمرار لإعادة الترتيب"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"تجاهل"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"إزالة"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"الاتصال السريع"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"جميع جهات الاتصال"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"معاودة الاتصال"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"حذف"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"استماع"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"مكالمة فائتة من <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>، <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>، <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"الرد على مكالمة من <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>، <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>، <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"اتصال بـ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>، <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>، <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"معاودة الاتصال بـ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"استماع إلى بريد صوتي من <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"حذف إدخال سجل المكالمات لـ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"تم حذف إدخال سجل المكالمات."</string>
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
deleted file mode 100644
index d659839..0000000
--- a/res/values-be/strings.xml
+++ /dev/null
@@ -1,197 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2012 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
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="8490255569343340580">"Тэлефон"</string>
-    <string name="launcherDialer" msgid="8636288196618486553">"Тэлефон"</string>
-    <string name="dialerIconLabel" msgid="6500826552823403796">"Тэлефон"</string>
-    <string name="recentCallsIconLabel" msgid="1419116422359067949">"Спіс"</string>
-    <string name="menu_sendTextMessage" msgid="6937343460284499306">"Адправiць тэкставае паведамленне"</string>
-    <string name="recentCalls_callNumber" msgid="1756372533999226126">"Выклікаць карыстальнiка <xliff:g id="NAME">%s</xliff:g>"</string>
-    <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Рэдагаваць нумар перад выклікам"</string>
-    <string name="recentCalls_addToContact" msgid="1429899535546487008">"Дадаць у кантакты"</string>
-    <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Выдаліць са спісу выклікаў"</string>
-    <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Ачысціць спіс выклікаў"</string>
-    <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Выдаліць галасавое паведамленне"</string>
-    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Адправiць галасавое паведамленне"</string>
-    <string name="recentCalls_empty" msgid="247053222448663107">"Спіс выклікаў пусты."</string>
-    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Ачысціць спіс выклікаў?"</string>
-    <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Усе вашы запісы выклікаў будуць выдалены."</string>
-    <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Выдаленне гiсторыi выклiкаў..."</string>
-  <plurals name="notification_voicemail_title">
-    <item quantity="one" msgid="1746619685488504230">"Галас. пошта"</item>
-    <item quantity="other" msgid="5513481419205061254">"Галасавых паведамленняў: <xliff:g id="COUNT">%1$d</xliff:g>"</item>
-  </plurals>
-    <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Прайграць"</string>
-    <string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
-    <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Новае паведамл. ад <xliff:g id="CALLER">%1$s</xliff:g>"</string>
-    <string name="voicemail_playback_error" msgid="1811242131549854624">"Немагчыма прайгр. пав. галасавой пошты"</string>
-    <string name="voicemail_buffering" msgid="738287747618697097">"Запiс у буфер..."</string>
-    <string name="voicemail_fetching_content" msgid="877911315738258780">"Атрыманне галасавой пошты..."</string>
-    <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Немагчыма атрымаць галасавую пошту."</string>
-    <string name="call_log_voicemail_header" msgid="3945407886667089173">"Толькi выклiкі з галасавой поштай"</string>
-    <string name="call_log_incoming_header" msgid="2787722299753674684">"Толькi ўваходныя выклiкi"</string>
-    <string name="call_log_outgoing_header" msgid="761009180766735769">"Толькi выходныя выклiкi"</string>
-    <string name="call_log_missed_header" msgid="8017148056610855956">"Толькі прапушчаныя выклiкi"</string>
-    <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Немагчыма падлучыцца да сервера галасавой пошты."</string>
-    <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Немагч. далучыцца да сервера гал. пошты. Нов. галас. павед. чак."</string>
-    <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Налада галасавой пошты."</string>
-    <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Аўдыё недаступнае."</string>
-    <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Стварыць"</string>
-    <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Выкл. гал. пошту"</string>
-    <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Самая нiзкая хуткасць"</string>
-    <string name="voicemail_speed_slower" msgid="1508601287347216244">"Нiзкая хуткасць"</string>
-    <string name="voicemail_speed_normal" msgid="9033988544627228892">"Звычайная хуткасць"</string>
-    <string name="voicemail_speed_faster" msgid="2019965121475935488">"Высокая хуткасць"</string>
-    <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Максімальная хуткасць"</string>
-    <string name="call_log_item_count_and_date" msgid="7641933305703520787">"( <xliff:g id="COUNT">%1$d</xliff:g> ) <xliff:g id="DATE">%2$s</xliff:g>"</string>
-    <string name="sms_disambig_title" msgid="5846266399240630846">"Выбар нумару"</string>
-    <string name="call_disambig_title" msgid="4392886850104795739">"Выбар нумару"</string>
-    <string name="make_primary" msgid="5829291915305113983">"Запомніць гэты выбар"</string>
-    <string name="description_image_button_one" msgid="1740638037139856139">"адзін"</string>
-    <string name="description_image_button_two" msgid="5882638439003731308">"два"</string>
-    <string name="description_image_button_three" msgid="8709731759376015180">"тры"</string>
-    <string name="description_image_button_four" msgid="3530239685642246130">"чатыры"</string>
-    <string name="description_image_button_five" msgid="1182465427501188413">"пяць"</string>
-    <string name="description_image_button_six" msgid="2093656269261415475">"шэсць"</string>
-    <string name="description_image_button_seven" msgid="2450357020447676481">"сем"</string>
-    <string name="description_image_button_eight" msgid="6969435115163287801">"восем"</string>
-    <string name="description_image_button_nine" msgid="7857248695662558323">"дзевяць"</string>
-    <string name="description_image_button_star" msgid="3365919907520767866">"зорка"</string>
-    <string name="description_image_button_zero" msgid="4133108949401820710">"нуль"</string>
-    <string name="description_image_button_pound" msgid="3039765597595889230">"Фунт"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"галасавая пошта"</string>
-    <string name="description_search_button" msgid="3660807558587384889">"пошук"</string>
-    <string name="description_dial_button" msgid="1274091017188142646">"набор"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
-    <string name="description_digits_edittext" msgid="8760207516497016437">"нумар для набору"</string>
-    <!-- no translation found for action_menu_call_history_description (9018442816219748968) -->
-    <skip />
-    <string name="action_menu_overflow_description" msgid="2303272250613084574">"Дадатковыя параметры"</string>
-    <!-- no translation found for action_menu_dialpad_button (1425910318049008136) -->
-    <skip />
-    <string name="menu_copy" msgid="6108677035381940698">"Капіраваць"</string>
-    <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Паказаць толькі выходныя"</string>
-    <string name="menu_show_incoming_only" msgid="7534206815238877417">"Паказаць толькі ўваходныя"</string>
-    <string name="menu_show_missed_only" msgid="154473166059743996">"Паказаць толькі прапушчаныя"</string>
-    <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Паказаць толькі галас. пошту"</string>
-    <string name="menu_show_all_calls" msgid="7560347482073345885">"Паказаць усе выклікі"</string>
-    <string name="add_2sec_pause" msgid="9214012315201040129">"Дадаць 2-секундную паўзу"</string>
-    <string name="add_wait" msgid="3360818652790319634">"Дадаецца, чакайце"</string>
-    <string name="call_settings" msgid="7666474782093693667">"Налады"</string>
-    <string name="menu_newContact" msgid="1209922412763274638">"Новы кантакт"</string>
-    <!-- no translation found for menu_allContacts (6948308384034051670) -->
-    <skip />
-    <string name="callDetailTitle" msgid="5340227785196217938">"Падрабязнасці выкліку"</string>
-    <string name="toast_call_detail_error" msgid="7200975244804730096">"Не атрымалася прачытаць падрабязнасці запытанага выкліка."</string>
-    <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Выкарыстанне тонавай клавіятуры"</string>
-    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Звярнуцца да бягучага выкліку"</string>
-    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Дадаць выклік"</string>
-    <string name="type_incoming" msgid="6502076603836088532">"Уваходны выклік"</string>
-    <string name="type_outgoing" msgid="343108709599392641">"Выходны выклік"</string>
-    <string name="type_missed" msgid="2720502601640509542">"Прапушчаны выклік"</string>
-    <string name="type_voicemail" msgid="5153139450668549908">"Галасавая пошта"</string>
-    <string name="actionIncomingCall" msgid="6028930669817038600">"Уваходныя выклікі"</string>
-    <string name="description_call_log_play_button" msgid="651182125650429846">"Прайграць паведамленне галасавой пошты"</string>
-    <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Уваходныя выклікі"</string>
-    <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Выходны выклік"</string>
-    <string name="description_call_log_missed_call" msgid="2242805209983708825">"Прапушчаныя выклікі"</string>
-    <string name="description_call_log_voicemail" msgid="4600798771975158948">"Галасавая пошта"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Дадаць кантакт"</string>
-    <string name="description_view_contact" msgid="5205669345700598415">"Прагледзець кантакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_call" msgid="3443678121983852666">"Выклік карыстальнiка <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_send_text_message" msgid="7803126439934046891">"Адправіць тэкставае паведамленне карыстальніку <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Непраслуханая галасавая пошта"</string>
-    <!-- no translation found for description_start_voice_search (520539488194946012) -->
-    <skip />
-    <!-- no translation found for call_log_empty_gecode (2019639420045039861) -->
-    <skip />
-    <string name="menu_callNumber" msgid="997146291983360266">"Выклікаць <xliff:g id="NUMBER">%s</xliff:g>"</string>
-    <string name="unknown" msgid="740067747858270469">"Невядомы"</string>
-    <string name="voicemail" msgid="3851469869202611441">"Галасавая пошта"</string>
-    <string name="private_num" msgid="6374339738119166953">"Прыватны нумар"</string>
-    <string name="payphone" msgid="4864313342828942922">"Аплата тэлефона"</string>
-    <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Выкарыстаць клавіятуру для набору нумара"</string>
-    <string name="dialerDialpadHintText" msgid="5824490365898349041">"НВыберыце, каб дадаць выклік"</string>
-    <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> хв. <xliff:g id="SECONDS">%s</xliff:g> с."</string>
-    <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Выклік не зроблены"</string>
-    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Каб наладзіць галасавую пошту, націсніце \"Меню\" i перайдзiце ў налады."</string>
-    <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Каб зрабiць выклік галасавой пошты, спачатку адключыце рэжым палёту."</string>
-    <string name="contact_list_loading" msgid="5488620820563977329">"Загрузка..."</string>
-    <string name="imei" msgid="3045126336951684285">"IMEI"</string>
-    <string name="meid" msgid="6210568493746275750">"MEID"</string>
-    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Загрузка з SIM-карты..."</string>
-    <string name="simContacts_title" msgid="27341688347689769">"Кантакты SIM-карты"</string>
-    <string name="add_contact_not_available" msgid="1419207765446461366">"Каб выкарыстоўваць гэту функцыю, паўторна ўключыце прыкладанне \"Кантакты\"."</string>
-    <!-- no translation found for dialer_hint_find_contact (8798845521253672403) -->
-    <skip />
-    <!-- no translation found for call_log_all_title (3566738938889333307) -->
-    <skip />
-    <!-- no translation found for call_log_missed_title (4541142293870638971) -->
-    <skip />
-    <!-- no translation found for recentMissed_empty (5427113551557296665) -->
-    <skip />
-    <!-- no translation found for recentVoicemails_empty (5163114119598014048) -->
-    <skip />
-    <!-- no translation found for show_all_contacts (1732256558071778056) -->
-    <skip />
-    <!-- no translation found for show_favorites_only (5520072531022614595) -->
-    <skip />
-    <!-- no translation found for call_log_activity_title (4612824396355272023) -->
-    <skip />
-    <!-- no translation found for dialpad_0_number (8859392433961251108) -->
-    <skip />
-    <!-- no translation found for dialpad_1_number (6536740525419909212) -->
-    <skip />
-    <!-- no translation found for dialpad_2_number (4941546415280852148) -->
-    <skip />
-    <!-- no translation found for dialpad_3_number (6539414865185536881) -->
-    <skip />
-    <!-- no translation found for dialpad_4_number (979988372051042362) -->
-    <skip />
-    <!-- no translation found for dialpad_5_number (5492272478939926734) -->
-    <skip />
-    <!-- no translation found for dialpad_6_number (8044579516869379093) -->
-    <skip />
-    <!-- no translation found for dialpad_7_number (4175113016564167123) -->
-    <skip />
-    <!-- no translation found for dialpad_8_number (7949849563865941621) -->
-    <skip />
-    <!-- no translation found for dialpad_9_number (4377059952097526576) -->
-    <skip />
-    <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
-    <skip />
-    <!-- no translation found for show_all_contacts_button_text (8057452310403090131) -->
-    <skip />
-    <!-- no translation found for favorite_hidden (5011234945140912047) -->
-    <skip />
-    <!-- no translation found for favorite_hidden_undo (2508998611039406474) -->
-    <skip />
-    <!-- no translation found for search_shortcut_call_number (7277194656832895870) -->
-    <skip />
-    <!-- no translation found for search_shortcut_add_to_contacts (1853716708655789069) -->
-    <skip />
-    <!-- no translation found for num_missed_calls (8081736535604293886) -->
-    <skip />
-    <!-- no translation found for no_favorites (5212485868783382971) -->
-    <skip />
-    <!-- no translation found for contact_tooltip (7817483485692282287) -->
-    <skip />
-    <!-- no translation found for description_dismiss (2146276780562549643) -->
-    <skip />
-</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 419a191..cff8c1d 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"звезда"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"нула"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"лира"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"гласова поща"</string>
     <string name="description_search_button" msgid="3660807558587384889">"търсене"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"набиране"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"назад"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"номер за набиране"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"История на обажданията"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Още опции"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Показване само на пропуснатите"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Показване само на гл. поща"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Показване на всички обаждания"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Добавяне на контакт"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Добавяне на 2-сек пауза"</string>
     <string name="add_wait" msgid="3360818652790319634">"Добавяне на изчакване"</string>
     <string name="call_settings" msgid="7666474782093693667">"Настройки"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Изходящо обаждане"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Пропуснато обаждане"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Гласова поща"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Добавяне на контакт"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Преглед на контактa <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Обаждане до <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Подробности за контакта за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Подробности за обаждането"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Нова гласова поща."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> обаждания."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Изпращане на SMS до <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Непрослушана гласова поща"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Изчистване на търсенето"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Стартиране на гласово търсене"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Обаждане на <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Неизвестен"</string>
     <string name="voicemail" msgid="3851469869202611441">"Гласова поща"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Зарежда се от SIM карта..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Контакти от SIM карта"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Активирайте отново приложението Хора, за да използвате тази функция."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Гласовото търсене не е налице."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Не може да се осъществи телефонно обаждане, защото приложението Телефон е деактивирано."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Няма инсталирано приложение за обработване на избраното действие."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Въведете име или тел. номер"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Всички"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Пропуснати"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Няма скорошни пропуснати обаждания."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Няма скорошни гласови съобщения."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Показване на всички контакти"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Показване само на любимите"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"История"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Всички"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Пропуснати"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Гл. поща"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Бързо набиране"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Скорошни"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Контакти"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Всички контакти"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Всички контакти"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Премахнато от любимите"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Отмяна"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Обаждане на <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Добавяне в контактите"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Преглед на цялата история на обажданията"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуснати обаждания"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Любимите и контактите, на\nкоито се обаждате често, ще се показват тук.\nЗапочнете да извършвате обаждания."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Докоснете изображението, за да видите всички номера, или натиснете и задръжте, за да пренаредите"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Отхвърляне"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Премахване"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Бързо набиране"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ВСИЧКИ КОНТАКТИ"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"ОБРАТНО ОБАЖДАНЕ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ИЗТРИВАНЕ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ПРОСЛУШВАНЕ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Пропуснато обаждане от <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Отговорено обаждане от <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Обаждане до <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Обратно обаждане до <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Прослушване на гласовата поща от <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Изтриване на записа за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> от списъка с обажданията"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Записът е изтрит от списъка с обаждания."</string>
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index bb658ad..82e1ccb 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"destaca"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"zero"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"coixinet"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"correu de veu"</string>
     <string name="description_search_button" msgid="3660807558587384889">"cerca"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"marca"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"retrocés"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"número que es marcarà"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Historial de trucades"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Més opcions"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Mostra només trucades perdudes"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Mostra només missatges de veu"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Mostra totes les trucades"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Afegeix un contacte"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Afegeix una pausa de 2 segons"</string>
     <string name="add_wait" msgid="3360818652790319634">"Afegeix espera"</string>
     <string name="call_settings" msgid="7666474782093693667">"Configuració"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Trucada sortint"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Trucada perduda"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Missatge de veu"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Afegeix un contacte"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Visualitza el contacte <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Truca a <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Dades de contacte de: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Detalls de la trucada"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Correu de veu nou"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> trucades"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Envia un missatge de text a <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Missatge de veu no escoltat"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Esborra la cerca"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Inicia la cerca per veu"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Truca al <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Desconegut"</string>
     <string name="voicemail" msgid="3851469869202611441">"Correu de veu"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"S\'està carregant des de la targeta SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Contactes de la targeta SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Torna a activar l\'aplicació Persones per utilitzar aquesta funció."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"La cerca per veu no està disponible."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"No es pot fer una trucada telefònica perquè s\'ha desactivat l\'aplicació de telèfon."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"No hi ha cap aplicació instal·lada disponible per gestionar l\'acció seleccionada."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Escriu un nom o un número de telèfon"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Totes"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Perdudes"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"No hi ha cap trucada perduda recent."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"No hi ha cap missatge de veu recent."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Mostra tots els contactes"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostra només els preferits"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Historial"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Totes"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Perdudes"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Bústia veu"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Marcatge ràpid"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Recents"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Contactes"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Tots els contactes"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tots els contactes"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Eliminat dels preferits"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Desfés"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Truca al <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Afegeix als contactes"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Consulta tot l\'historial de trucades"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> trucades perdudes noves"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Aquí es mostraran els preferits i els contactes\nals quals truques sovint.\nJa pots començar a trucar."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Toca la imatge per veure tots els números o bé mantén-la premuda per reorganitzar"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Omet"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Suprimeix"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Marcatge ràpid"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TOTS ELS CONTACTES"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"TORNA LA TRUCADA"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"SUPRIMEIX"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ESCOLTA"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Trucada perduda de: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Trucada resposta de: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Trucada a: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Torna a trucar a: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Escolta el missatge a la bústia de veu de: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Suprimeix l\'entrada del registre de trucades de: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"S\'ha suprimit l\'entrada del registre de trucades."</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index ee643da..42fa820 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"hvězdička"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nula"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"libra"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"hlasová schránka"</string>
     <string name="description_search_button" msgid="3660807558587384889">"vyhledat"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"vytáčení"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"číslo, které chcete vytočit"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Historie volání"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Více možností"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Zobrazit pouze zmeškané"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Zobrazit pouze hlas. schránku"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Zobrazit všechny hovory"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Přidat kontakt"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Přidat pauzu 2 s"</string>
     <string name="add_wait" msgid="3360818652790319634">"Přidat čekání"</string>
     <string name="call_settings" msgid="7666474782093693667">"Nastavení"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Odchozí hovor"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Zmeškaný hovor"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Hlasová schránka"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Přidat kontakt"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Zobrazit kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Volat kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Podrobnosti kontaktu pro <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Podrobnosti hovoru"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nová hlasová zpráva"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"Počet hovorů: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Odeslat textovou zprávu kontaktu <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nevyslechnutá hlasová zpráva"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Vymazat vyhledávání"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Spustit hlasové vyhledávání"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Zavolat na číslo <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Neznámé"</string>
     <string name="voicemail" msgid="3851469869202611441">"Hlasová schránka"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Načítání ze SIM karty..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Kontakty na SIM kartě"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Chcete-li použít tuto funkci, znovu povolte aplikaci Lidé."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Hlasové vyhledávání není k dispozici"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Telefonický hovor nelze uskutečnit, protože aplikace Telefon byla zakázána."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Není k dispozici žádná nainstalovaná aktivita, pomocí které by bylo možné vybranou akci provést."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Zadejte jméno nebo tel. číslo"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Všechny"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Zmeškané"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Nemáte žádné nedávno zmeškané hovory."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Nemáte žádné nedávné hlasové zprávy."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Zobrazit všechny kontakty"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Zobrazit pouze oblíbené"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Historie"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Všechny"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Zmeškané"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Schránka"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Rychlá volba"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Poslední"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontakty"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Všechny kontakty"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Všechny kontakty"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Odebráno z oblíbených"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Vrátit zpět"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Zavolat na číslo <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Přidat do kontaktů"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Zobrazení celé historie volání"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"Nové zmeškané hovory: <xliff:g id="NUMBER">%s</xliff:g>"</string>
-    <string name="no_favorites" msgid="5212485868783382971">"Zde se bude zobrazovat oblíbený obsah\na kontakty, kterým často voláte.\nStačí jen začít volat."</string>
+    <string name="no_favorites" msgid="5212485868783382971">"Zde se bude zobrazovat vaše oblíbené a často používané kontakty.\nStačí jen začít volat.\n"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Klepnutím na fotku zobrazíte všechna čísla a přidržením je můžete seřadit"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Zavřít"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Odstranit"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Rychlá volba"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"VŠECHNY KONTAKTY"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"VOLAT ZPĚT"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"SMAZAT"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"POSLOUCHAT"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Zmeškaný hovor od <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Přijatý hovor od <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Hovor s <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Zpětné volání <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Poslech hlasové schránky od <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Smazat ze seznamu hovorů záznam <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Záznam v seznamu hovorů byl smazán."</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 6bd3f72..1bcdf11 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"stjernemarker"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nul"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"pund"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"telefonsvarer"</string>
     <string name="description_search_button" msgid="3660807558587384889">"søg"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"ring op"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"nummer at ringe op"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Opkaldshistorik"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Flere valgmuligheder"</string>
@@ -89,8 +87,9 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Vis kun ubesvarede"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Vis kun telefonsvarerbeskeder"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Vis alle opkald"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Tilføj kontaktperson"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Tilføj pause på 2 sek."</string>
-    <string name="add_wait" msgid="3360818652790319634">"Tilføj Vent"</string>
+    <string name="add_wait" msgid="3360818652790319634">"Tilføj ventetid"</string>
     <string name="call_settings" msgid="7666474782093693667">"Indstillinger"</string>
     <string name="menu_newContact" msgid="1209922412763274638">"Ny kontaktperson"</string>
     <string name="menu_allContacts" msgid="6948308384034051670">"Alle kontaktpersoner"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Udgående opkald"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Ubesvaret opkald"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Telefonsvarer"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Tilføj kontaktperson"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Vis kontaktpersonen <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Ring til <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Kontaktoplysninger for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Opkaldsdetaljer"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Ny talebesked."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> opkald."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Send sms til <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Uaflyttet besked på telefonsvareren"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Ryd søgning"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Start stemmesøgning"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Ring til <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Ukendte"</string>
     <string name="voicemail" msgid="3851469869202611441">"Telefonsvarer"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Indlæser fra SIM-kort ..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Kontakter på SIM-kort"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Genaktiver applikationen Personer for at bruge denne funktion."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Stemmesøgning er ikke tilgængeligt."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Det er ikke muligt at foretage et telefonopkald, fordi applikationen Telefon er deaktiveret."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Der er ingen installerede apps til at håndtere den valgte handling."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Skriv navn eller telefonnummer"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Ubesvarede"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Ingen ubesvarede opkald."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Ingen nye talebeskeder."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Vis alle kontaktpersoner"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Vis kun foretrukne"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Historik"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Ubesvarede"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Talebesked"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Hurtigopkald"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Seneste"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktpersoner"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Alle kontaktpersoner"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alle kontaktpersoner"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Fjernet fra favoritter"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Fortryd"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Ring til <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Føj til kontaktpersoner"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Se komplet opkaldshistorik"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nye ubesvarede opkald"</string>
-    <string name="no_favorites" msgid="5212485868783382971">"Dine foretrukne og de kontaktpersoner, du\noftest ringer til, vises her.\nSå gå du bare i gang med at ringe."</string>
+    <string name="no_favorites" msgid="5212485868783382971">"Dine foretrukne og de kontaktpersoner,\ndu oftest ringer til, vises her.\nSå gå du bare i gang med at ringe."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Tryk på billedet for at se alle telefonnumre, eller tryk på billedet, og hold det nede, for at omarrangere"</string>
-    <string name="description_dismiss" msgid="2146276780562549643">"Annullerer"</string>
+    <string name="description_dismiss" msgid="2146276780562549643">"Annuller"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Fjern"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Hurtigopkald"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALLE KONTAKTPERSONER"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"RING TILBAGE"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"SLET"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"LYT"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Ubesvaret opkald fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Opkald besvaret fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Opkald til <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Ring tilbage til <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Lyt til indtalt besked fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Slet <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> fra opkaldslisten"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Navn eller nummer blev slettet fra opkaldslisten."</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index a50055b..2419010 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"Markierung"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"null"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"Pfund"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"Mailbox"</string>
     <string name="description_search_button" msgid="3660807558587384889">"Suchen"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"wählen"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"Rücktaste"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"Zu wählende Nummer"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Anrufliste"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Mehr Optionen"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Nur entgangene Anrufe anzeigen"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Nur Mailbox-Nachr. anzeigen"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Alle Anrufe anzeigen"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Kontakt hinzufügen"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"2 Sekunden Pause hinzufügen"</string>
     <string name="add_wait" msgid="3360818652790319634">"Warten hinzufügen"</string>
     <string name="call_settings" msgid="7666474782093693667">"Einstellungen"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Ausgehender Anruf"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Entgangener Anruf"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Mailbox-Nachricht"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Kontakt hinzufügen"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Kontakt <xliff:g id="NAME">%1$s</xliff:g> anzeigen"</string>
     <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> anrufen"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Kontaktdetails für <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Anrufdetails"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Neue Mailbox-Nachricht"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> Anrufe"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"SMS an <xliff:g id="NAME">%1$s</xliff:g> senden"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nicht abgehörte Mailbox-Nachricht"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Suche zurücksetzen"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Sprachsuche starten"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> wählen"</string>
     <string name="unknown" msgid="740067747858270469">"Unbekannt"</string>
     <string name="voicemail" msgid="3851469869202611441">"Mailbox"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Ladevorgang von SIM-Karte läuft..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Kontakte auf SIM-Karte"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Kontakte-App zur Verwendung dieser Funktion wieder aktivieren"</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Die Sprachsuche ist nicht verfügbar."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Es kann kein Anruf getätigt werden, da die App \"Telefon\" deaktiviert wurde."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Zur Verarbeitung der ausgewählten Aktion ist keine installierte Aktivität verfügbar."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Namen/Telefonnummer eingeben"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Entgangen"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Keine entgangenen Anrufe"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Keine Mailbox-Nachrichten"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Alle Kontakte anzeigen"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Nur Favoriten anzeigen"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Verlauf"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Entgangen"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Mailbox-Nachrichten"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Kurzwahl"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Neueste"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontakte"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Alle Kontakte"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alle Kontakte"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Aus Favoriten entfernt"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Rückgängig machen"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> wählen"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Zu Kontakten hinzufügen"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Gesamte Anrufliste ansehen"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> neue verpasste Anrufe"</string>
-    <string name="no_favorites" msgid="5212485868783382971">"Sobald Sie Anrufe getätigt haben,\nwerden hier Favoriten und Kontakte angezeigt,\ndie Sie häufig anrufen."</string>
+    <string name="no_favorites" msgid="5212485868783382971">"Sobald Sie Anrufe getätigt haben,\nsehen Sie hier Favoriten und Kontakte,\ndie Sie häufig anrufen."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Auf Bild tippen, um alle Nummern zu sehen, oder berühren und halten, um Anordnung zu ändern"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Ablehnen"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Entfernen"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Kurzwahl"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"Alle Kontakte"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"Zurückrufen"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"Löschen"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"Anhören"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Verpasster Anruf von <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Anruf von <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g> angenommen"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Ausgehender Anruf an <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> zurückrufen"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Mailboxnachricht von <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> anhören"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Anruflisteneintrag für <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> löschen"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Anruflisteneintrag gelöscht"</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 061612b..a6a1036 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -28,7 +28,7 @@
     <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Κατάργηση από το αρχείο καταγραφής κλήσεων"</string>
     <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Εκκαθάριση αρχείου καταγραφής κλήσεων"</string>
     <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Διαγραφή αυτόματου τηλεφωνητή"</string>
-    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Κοινή χρήση αυτόμ. τηλεφωνητή"</string>
+    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Κοινοποίηση αυτόμ. τηλεφωνητή"</string>
     <string name="recentCalls_empty" msgid="247053222448663107">"Το αρχείο καταγραφής κλήσεων είναι κενό."</string>
     <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Εκκαθάριση αρχείου;"</string>
     <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Όλα τα αρχεία κλήσεων θα διαγραφούν."</string>
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"αστέρι"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"μηδέν"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"σύμβολο δίεσης"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"αυτόματος τηλεφωνητής"</string>
     <string name="description_search_button" msgid="3660807558587384889">"αναζήτηση"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"κλήση"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"αριθμός για κλήση"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Ιστορικό κλήσεων"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Περισσότερες επιλογές"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Εμφάνιση μόνο αναπάντητων"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Εμφ. μόνο μην. αυτόμ. τηλεφων."</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Εμφάνιση όλων"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Προσθήκη επαφής"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Προσθήκη παύσης 2 δευτερολέπτων"</string>
     <string name="add_wait" msgid="3360818652790319634">"Προσθήκη αναμονής"</string>
     <string name="call_settings" msgid="7666474782093693667">"Ρυθμίσεις"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Εξερχόμενη κλήση"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Αναπάντητη κλήση"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Αυτόματος τηλεφωνητής"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Προσθήκη επαφής"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Προβολή επαφής <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Κλήση του χρήστη <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Στοιχεία επικοινωνίας του <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Λεπτομέρειες κλήσης"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Νέο μήνυμα στον αυτόματο τηλεφωνητή."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> κλήσεις."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Αποστολή μηνύματος κειμένου στον χρήστη <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Μηνύματα αυτόματου τηλεφωνητή που δεν έχετε ακούσει"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Διαγραφή αναζητήσεων"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Έναρξη φωνητικής αναζήτησης"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Κλήση του αριθμού <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Άγνωστος"</string>
     <string name="voicemail" msgid="3851469869202611441">"Αυτόματος τηλεφωνητής"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Φόρτωση από κάρτα SIM…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"Επαφές στην κάρτα SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Ενεργοποιήστε ξανά την εφαρμογή People για να χρησιμοποιήσετε αυτήν τη λειτουργία."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Η φωνητική αναζήτηση δεν είναι διαθέσιμη."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Δεν είναι δυνατή η πραγματοποίηση τηλεφωνικής κλήσης επειδή η εφαρμογή \"Τηλέφωνο\" έχει απενεργοποιηθεί."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Δεν υπάρχει διαθέσιμη εγκατεστημένη δραστηριότητα για το χειρισμό της επιλεγμένης ενέργειας."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Εισαγάγετε όνομα ή τηλέφωνο"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Όλα"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Αναπάντητη"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Δεν υπάρχουν πρόσφατες αναπάντητες κλήσεις."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Δεν υπάρχουν πρόσφατα φωνητικά μηνύματα."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Εμφάνιση όλων των επαφών"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Εμφάνιση μόνο των αγαπημένων"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Ιστορικό"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Όλα"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Αναπάντητη"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Φωνητικό μήνυμα"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Ταχεία κλήση"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Πρόσφατα"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Επαφές"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Όλες οι επαφές"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Όλες οι επαφές"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Καταργήθηκε από τα αγαπημένα"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Αναίρεση"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Κλήση του αριθμού <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Προσθήκη στις επαφές"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Προβολή πλήρους ιστορικού κλήσεων"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> νέες αναπάντητες κλήσεις"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Οι αγαπημένες και οι επαφές που\nκαλείτε συχνά θα εμφανίζονται εδώ.\nΞεκινήστε τις κλήσεις."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Πατήστε την εικόνα για να δείτε όλους τους αριθμούς ή πατήστε παρατεταμένα για αναδιάταξη"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Παράβλεψη"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Κατάργηση"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Ταχεία κλήση"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ΟΛΕΣ ΟΙ ΕΠΑΦΕΣ"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"ΕΠΑΝΑΚΛΗΣΗ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ΔΙΑΓΡΑΦΗ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ΑΚΡΟΑΣΗ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Αναπάντητη κλήση από <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Ληφθείσα κλήση από <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Κλήση στον αριθμό <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Επανάκληση <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Ακρόαση μηνύματος αυτόματου τηλεφωνητή από το χρήστη <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Διαγραφή καταχώρισης αρχείου καταγραφής κλήσεων για τον αριθμό <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Το αρχείο καταγραφής κλήσεων διαγράφηκε."</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index b8d7c81..803ad8e 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"Star"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"zero"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"pound"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"voicemail"</string>
     <string name="description_search_button" msgid="3660807558587384889">"search"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"dial"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"number to dial"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Call History"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"More options"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Show missed only"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Show voicemails only"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Show all calls"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Add contact"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Add 2-sec pause"</string>
     <string name="add_wait" msgid="3360818652790319634">"Add wait"</string>
     <string name="call_settings" msgid="7666474782093693667">"Settings"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Outgoing call"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Missed call"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Voicemail"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Add contact"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Contact details for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Call details"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"New voicemail."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> calls."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Send text message to <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Unheard voicemail"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Clear search"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Start voice search"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Unknown"</string>
     <string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Loading from SIM card…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM card contacts"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Re-enable the People application to use this feature."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Voice search is not available."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Cannot make a phone call because the Phone application has been disabled."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"No installed activity available to handle selected action."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Type a name or phone number"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"No recent missed calls."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"No recent voicemails."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Show all  contacts"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Show favourites only"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"History"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Speed Dial"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Recents"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Contacts"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"All contacts"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"All contacts"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Removed from favourites"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Undo"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Add to contacts"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"View full call history"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Favourites &amp; contacts that you\ncall often will show here.\nSo, start calling."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Tap image to see all numbers or press and hold to reorder"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Dismiss"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Remove"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Speed Dial"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALL CONTACTS"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"CALL BACK"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"DELETE"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"LISTEN"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Missed call from <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Answered call from <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Call to <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Call back <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Listen to voicemail from <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Delete call log entry for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Call log entry deleted."</string>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index b8d7c81..803ad8e 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"Star"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"zero"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"pound"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"voicemail"</string>
     <string name="description_search_button" msgid="3660807558587384889">"search"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"dial"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"number to dial"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Call History"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"More options"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Show missed only"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Show voicemails only"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Show all calls"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Add contact"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Add 2-sec pause"</string>
     <string name="add_wait" msgid="3360818652790319634">"Add wait"</string>
     <string name="call_settings" msgid="7666474782093693667">"Settings"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Outgoing call"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Missed call"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Voicemail"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Add contact"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Contact details for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Call details"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"New voicemail."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> calls."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Send text message to <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Unheard voicemail"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Clear search"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Start voice search"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Unknown"</string>
     <string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Loading from SIM card…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM card contacts"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Re-enable the People application to use this feature."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Voice search is not available."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Cannot make a phone call because the Phone application has been disabled."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"No installed activity available to handle selected action."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Type a name or phone number"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"No recent missed calls."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"No recent voicemails."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Show all  contacts"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Show favourites only"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"History"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Speed Dial"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Recents"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Contacts"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"All contacts"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"All contacts"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Removed from favourites"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Undo"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Add to contacts"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"View full call history"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Favourites &amp; contacts that you\ncall often will show here.\nSo, start calling."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Tap image to see all numbers or press and hold to reorder"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Dismiss"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Remove"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Speed Dial"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALL CONTACTS"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"CALL BACK"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"DELETE"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"LISTEN"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Missed call from <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Answered call from <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Call to <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Call back <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Listen to voicemail from <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Delete call log entry for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Call log entry deleted."</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index cc5620b..9fa4ee0 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"estrella"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"cero"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"libra"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"buzón de voz"</string>
     <string name="description_search_button" msgid="3660807558587384889">"búsqueda"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"marcar"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"retroceso"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"número para marcar"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Historial de llamadas"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Más opciones"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Mostrar solo perdidas"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Mostrar solo mensajes de voz"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Mostrar todas las llamadas"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Agregar contacto"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Agregar pausa de 2 segundos"</string>
     <string name="add_wait" msgid="3360818652790319634">"Agregar espera"</string>
     <string name="call_settings" msgid="7666474782093693667">"Configuración"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Llamada saliente"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Llamada perdida"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Mensaje de voz"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Agregar contacto"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Datos de contacto de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Detalles de la llamada"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Buzón de voz nuevo"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> llamadas"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Enviar mensaje de texto a <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Buzón de voz no escuchado"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Borrar la búsqueda"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Iniciar búsqueda por voz"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Llamar al <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Desconocido"</string>
     <string name="voicemail" msgid="3851469869202611441">"Correo de voz"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Cargando desde tarjeta SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Contactos de tarjeta SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Vuelve a activar la aplicación Contactos para usar esta función."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"No está disponible la búsqueda por voz."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"No se pueden realizar llamadas porque se inhabilitó la aplicación Teléfono."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"No hay ninguna actividad instalada para procesar la acción seleccionada."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Ingresa un nombre o teléfono."</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Todo"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"No hay llamadas perdidas recientes."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"No hay mensajes del buzón de voz recientes."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Mostrar todos los contactos"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostrar solo favoritos"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Historial"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Todo"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Buzón voz"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Marcado rápido"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Recientes"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Contactos"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Todos los contactos"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Todos los contactos"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Eliminado de favoritos"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Deshacer"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Llamar al <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Agregar a contactos"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Ver historial de llamadas completo"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Aquí se mostrarán los favoritos y los contactos\na los que llamas con frecuencia.\nYa puedes empezar a llamar."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Presiona la imagen para ver todos los números o mantenla presionada para cambiar el orden."</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Descartar"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Eliminar"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Marcado rápido"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TODOS LOS CONTACTOS"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"DEVOLVER LLAMADA"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ELIMINAR"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ESCUCHAR"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Llamada perdida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Llamada respondida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Llamar a <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Devolver llamada a <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Escuchar buzón de voz de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Eliminar entrada de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> del registro de llamadas"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Entrada del registro de llamada eliminada"</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index b2adb2f..acf13d1 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"estrella"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"cero"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"libra"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"buzón de voz"</string>
     <string name="description_search_button" msgid="3660807558587384889">"buscar"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"marcar"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"retroceder un espacio"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"número que se va a marcar"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Historial de llamadas"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Más opciones"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Mostrar solo llamadas perdidas"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Solo mensajes de voz"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Mostrar todas las llamadas"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Añadir contacto"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Añadir pausa de 2 segundos"</string>
     <string name="add_wait" msgid="3360818652790319634">"Añadir espera"</string>
     <string name="call_settings" msgid="7666474782093693667">"Ajustes"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Llamada saliente"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Llamada perdida"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Buzón de voz"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Añadir contacto"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Información de contacto de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Detalles de la llamada"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nuevo mensaje de voz."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> llamadas."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Enviar mensaje de texto a <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Mensaje de voz sin oír"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Borrar la búsqueda"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Iniciar búsqueda por voz"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Llamar a <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Desconocidos"</string>
     <string name="voicemail" msgid="3851469869202611441">"Buzón de voz"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Cargando desde tarjeta SIM…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"Contactos de tarjeta SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Vuelve a habilitar la aplicación Contactos para usar esta función."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"La búsqueda por voz no está disponible."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"No se puede hacer llamadas porque se ha inhabilitado la aplicación Teléfono."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Ninguna actividad instalada puede procesar la acción seleccionada."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Escribe un nombre o teléfono"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Todo"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"No hay llamadas perdidas recientes."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"No hay mensajes de voz recientes."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Mostrar todos los contactos"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostrar solo favoritos"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Historial"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Todo"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Mensaje de voz"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Marcación rápida"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Recientes"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Contactos"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Todos los contactos"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Todos los contactos"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Eliminado de favoritos"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Deshacer"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Llamar a <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Añadir a contactos"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Ver historial de llamadas completo"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
-    <string name="no_favorites" msgid="5212485868783382971">"Los favoritos y contactos a los que\nllamas con frecuencia se mostrarán aquí.\nYa puedes llamar."</string>
+    <string name="no_favorites" msgid="5212485868783382971">"Los favoritos y contactos a los que\nllamas con frecuencia se mostrarán aquí.\n"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Toca la imagen para ver todos los números o mantenla pulsada para cambiar el orden"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Ignorar"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Eliminar"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Marcación rápida"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TODOS LOS CONTACTOS"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"DEVOLVER LLAMADA"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ELIMINAR"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ESCUCHAR"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Llamada perdida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Llamada respondida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Llamar a <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Devolver llamada a <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Escuchar el buzón de voz de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Eliminar entrada del registro de llamadas de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Entrada del registro de llamada eliminada."</string>
 </resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index 8a37626..7d36838 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"tärn"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"null"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"nael"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"kõnepost"</string>
     <string name="description_search_button" msgid="3660807558587384889">"otsing"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"Helista"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"tagasilüke"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"number valimiseks"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Kõneajalugu"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Rohkem valikuid"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Kuva ainult vastamata"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Kuva ainult kõnepostisõnumeid"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Kuva kõik kõned"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Lisa kontakt"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Lisa 2-sekundiline paus"</string>
     <string name="add_wait" msgid="3360818652790319634">"Lisa ootama"</string>
     <string name="call_settings" msgid="7666474782093693667">"Seaded"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Väljuv kõne"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Vastamata kõne"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Kõnepost"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Lisa kontakt"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Kuva kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Helista: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Kontakti <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> üksikasjad"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Kõne üksikasjad"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Uus kõnepost."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> kõnet."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Saada tekstsõnum kontaktile <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Kuulamata kõnepostisõnum"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Otsingu kustutamine"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Häälotsingu alustamine"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Helistage: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Tundmatu"</string>
     <string name="voicemail" msgid="3851469869202611441">"Kõnepost"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Laadimine SIM-kaardilt ..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM-kaardi kontaktid"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Funktsiooni kasutamiseks lubage uuesti rakendus Inimesed."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Häälotsing pole saadaval"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Helistada ei saa, sest telefonirakendus on keelatud."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Pole installitud ühtegi rakendust, mis suudaks käsitleda valitud tegevust."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Sisestage nimi/telefoninumber"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Kõik"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Vastamata"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Pole ühtegi hiljutist vastamata kõnet."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Pole ühtegi hiljutist kõnepostiteadet."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Kuva kõik kontaktid"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Kuva ainult lemmikud"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Ajalugu"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Kõik"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Vastamata"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Kõnepost"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Kiirvalimine"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Hiljutised"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktid"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Kõik kontaktid"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Kõik kontaktid"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Eemaldatud lemmikute hulgast"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Võta tagasi"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Helista <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Lisa kontaktidesse"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Kogu kõneajaloo vaatamine"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> uus/uut vastamata kõne(t)"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Siin kuvatakse lemmikud ja kontaktid,\nkellele sageli helistate.\nVõite hakata helistama."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Puudutage kujutist, et näha kõiki numbreid, või vajutage ja hoidke all ümberkorraldamiseks"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Loobu"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Eemalda"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Kiirvalimine"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"KÕIK KONTAKTID"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"HELISTA TAGASI"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"KUSTUTA"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"KUULA"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Vastamata kõne: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Vastatud kõne: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Helistamine: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Tagasi helistamine: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Kontakti <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> kõneposti kuulamine"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Kontakti <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> kõnelogi kande kustutamine"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Kõnelogi kanne on kustutatud."</string>
 </resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
deleted file mode 100644
index 60c967b..0000000
--- a/res/values-et/strings.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2012 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
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="8490255569343340580">"Dialer"</string>
-    <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
-    <string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
-    <string name="recentCallsIconLabel" msgid="1419116422359067949">"Kõnelogi"</string>
-    <string name="menu_sendTextMessage" msgid="6937343460284499306">"Tekstsõnumi saatmine"</string>
-    <string name="recentCalls_callNumber" msgid="1756372533999226126">"Helista kasutajale <xliff:g id="NAME">%s</xliff:g>"</string>
-    <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Muuda enne helistamist numbrit"</string>
-    <string name="recentCalls_addToContact" msgid="1429899535546487008">"Lisa kontaktidesse"</string>
-    <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Eemalda kõnelogist"</string>
-    <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Kustuta kõnelogi"</string>
-    <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Kustuta kõnepost"</string>
-    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Jaga kõneposti"</string>
-    <string name="recentCalls_empty" msgid="247053222448663107">"Kõnelogi on tühi."</string>
-    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Kustutada kõnelogi?"</string>
-    <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Kõik teie kõnesalvestised kustutatakse."</string>
-    <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Kõnelogi kustutamine ..."</string>
-  <plurals name="notification_voicemail_title">
-    <item quantity="one" msgid="1746619685488504230">"Kõnepost"</item>
-    <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> kõnepostisõnumit"</item>
-  </plurals>
-    <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Esitamine"</string>
-    <string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
-    <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Uus kõnepostisõnum kasutajalt <xliff:g id="CALLER">%1$s</xliff:g>"</string>
-    <string name="voicemail_playback_error" msgid="1811242131549854624">"Kõnepostisõnumi esitamine ebaõnnestus."</string>
-    <string name="voicemail_buffering" msgid="738287747618697097">"Puhverdamine ..."</string>
-    <string name="voicemail_fetching_content" msgid="877911315738258780">"Kõneposti toomine ..."</string>
-    <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Kõneposti toomine ebaõnnestus."</string>
-    <string name="call_log_voicemail_header" msgid="3945407886667089173">"Ainult kõnepostiga kõned"</string>
-    <string name="call_log_incoming_header" msgid="2787722299753674684">"Ainult sissetulevad kõned"</string>
-    <string name="call_log_outgoing_header" msgid="761009180766735769">"Ainult väljuvad kõned"</string>
-    <string name="call_log_missed_header" msgid="8017148056610855956">"Ainult vastamata kõned"</string>
-    <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Kõnepostiserveriga ei saa ühendust."</string>
-    <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Kõnepostiserveriga ei saa ühendust. Uued kõnepostisõnumid ootel."</string>
-    <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Seadistage oma kõnepost."</string>
-    <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Heli pole saadaval."</string>
-    <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Seadistamine"</string>
-    <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Helista kõneposti"</string>
-    <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Aeglaseim kiirus"</string>
-    <string name="voicemail_speed_slower" msgid="1508601287347216244">"Aeglane kiirus"</string>
-    <string name="voicemail_speed_normal" msgid="9033988544627228892">"Tavaline kiirus"</string>
-    <string name="voicemail_speed_faster" msgid="2019965121475935488">"Kiire kiirus"</string>
-    <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Kiireim kiirus"</string>
-    <string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
-    <string name="sms_disambig_title" msgid="5846266399240630846">"Valige number"</string>
-    <string name="call_disambig_title" msgid="4392886850104795739">"Valige number"</string>
-    <string name="make_primary" msgid="5829291915305113983">"Pea see valik meeles"</string>
-    <string name="description_image_button_one" msgid="1740638037139856139">"üks"</string>
-    <string name="description_image_button_two" msgid="5882638439003731308">"kaks"</string>
-    <string name="description_image_button_three" msgid="8709731759376015180">"kolm"</string>
-    <string name="description_image_button_four" msgid="3530239685642246130">"neli"</string>
-    <string name="description_image_button_five" msgid="1182465427501188413">"viis"</string>
-    <string name="description_image_button_six" msgid="2093656269261415475">"kuus"</string>
-    <string name="description_image_button_seven" msgid="2450357020447676481">"seitse"</string>
-    <string name="description_image_button_eight" msgid="6969435115163287801">"kaheksa"</string>
-    <string name="description_image_button_nine" msgid="7857248695662558323">"üheksa"</string>
-    <string name="description_image_button_star" msgid="3365919907520767866">"tärn"</string>
-    <string name="description_image_button_zero" msgid="4133108949401820710">"null"</string>
-    <string name="description_image_button_pound" msgid="3039765597595889230">"nael"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"kõnepost"</string>
-    <string name="description_search_button" msgid="3660807558587384889">"otsing"</string>
-    <string name="description_dial_button" msgid="1274091017188142646">"Helista"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"tagasilüke"</string>
-    <string name="description_digits_edittext" msgid="8760207516497016437">"number valimiseks"</string>
-    <string name="action_menu_call_history_description" msgid="9018442816219748968">"Kõneajalugu"</string>
-    <string name="action_menu_overflow_description" msgid="2303272250613084574">"Rohkem valikuid"</string>
-    <string name="action_menu_dialpad_button" msgid="1425910318049008136">"valimisklahvistik"</string>
-    <string name="menu_copy" msgid="6108677035381940698">"Kopeeri"</string>
-    <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Kuva ainult väljuvad"</string>
-    <string name="menu_show_incoming_only" msgid="7534206815238877417">"Kuva ainult sissetulevad"</string>
-    <string name="menu_show_missed_only" msgid="154473166059743996">"Kuva ainult vastamata"</string>
-    <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Kuva ainult kõnepostisõnumeid"</string>
-    <string name="menu_show_all_calls" msgid="7560347482073345885">"Kuva kõik kõned"</string>
-    <string name="add_2sec_pause" msgid="9214012315201040129">"Lisa 2-sekundiline paus"</string>
-    <string name="add_wait" msgid="3360818652790319634">"Lisa ootama"</string>
-    <string name="call_settings" msgid="7666474782093693667">"Seaded"</string>
-    <string name="menu_newContact" msgid="1209922412763274638">"Uus kontakt"</string>
-    <string name="callDetailTitle" msgid="5340227785196217938">"Kõne üksikasjad"</string>
-    <string name="toast_call_detail_error" msgid="7200975244804730096">"Taotletud kõne üksikasju ei saa lugeda."</string>
-    <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Kasuta puutetooniga klahvistikku"</string>
-    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Tagasi käimasolevale kõnele"</string>
-    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Lisa kõne"</string>
-    <string name="type_incoming" msgid="6502076603836088532">"Sissetulev kõne"</string>
-    <string name="type_outgoing" msgid="343108709599392641">"Väljuv kõne"</string>
-    <string name="type_missed" msgid="2720502601640509542">"Vastamata kõne"</string>
-    <string name="type_voicemail" msgid="5153139450668549908">"Kõnepost"</string>
-    <string name="actionIncomingCall" msgid="6028930669817038600">"Sissetulevad kõned"</string>
-    <string name="description_call_log_play_button" msgid="651182125650429846">"Esita kõnepostisõnum"</string>
-    <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Sissetulev kõne"</string>
-    <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Väljuv kõne"</string>
-    <string name="description_call_log_missed_call" msgid="2242805209983708825">"Vastamata kõne"</string>
-    <string name="description_call_log_voicemail" msgid="4600798771975158948">"Kõnepost"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Lisa kontakt"</string>
-    <string name="description_view_contact" msgid="5205669345700598415">"Kuva kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_call" msgid="3443678121983852666">"Helista: <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_send_text_message" msgid="7803126439934046891">"Saada tekstsõnum kontaktile <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Kuulamata kõnepostisõnum"</string>
-    <string name="description_start_voice_search" msgid="520539488194946012">"Häälotsingu alustamine"</string>
-    <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
-    <string name="menu_callNumber" msgid="997146291983360266">"Helistage: <xliff:g id="NUMBER">%s</xliff:g>"</string>
-    <string name="unknown" msgid="740067747858270469">"Tundmatu"</string>
-    <string name="voicemail" msgid="3851469869202611441">"Kõnepost"</string>
-    <string name="private_num" msgid="6374339738119166953">"Varjatud number"</string>
-    <string name="payphone" msgid="4864313342828942922">"Telefoniautomaat"</string>
-    <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Kasutage valimiseks klaviatuuri"</string>
-    <string name="dialerDialpadHintText" msgid="5824490365898349041">"Valige kõne lisamiseks"</string>
-    <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
-    <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Kõnet ei tehtud"</string>
-    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Kõneposti seadistamiseks minge valikusse Menüü &gt; Seaded."</string>
-    <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Kõneposti kuulamiseks lülitage lennurežiim välja."</string>
-    <string name="contact_list_loading" msgid="5488620820563977329">"Laadimine ..."</string>
-    <string name="imei" msgid="3045126336951684285">"IMEI"</string>
-    <string name="meid" msgid="6210568493746275750">"MEID"</string>
-    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Laadimine SIM-kaardilt ..."</string>
-    <string name="simContacts_title" msgid="27341688347689769">"SIM-kaardi kontaktid"</string>
-    <string name="add_contact_not_available" msgid="1419207765446461366">"Funktsiooni kasutamiseks lubage uuesti rakendus Inimesed."</string>
-    <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Sisestage nimi või telefoninumber"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Kõik"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Vastamata"</string>
-    <string name="recentMissed_empty" msgid="5427113551557296665">"Pole ühtegi hiljutist vastamata kõnet."</string>
-    <string name="recentVoicemails_empty" msgid="5163114119598014048">"Pole ühtegi hiljutist kõnepostiteadet."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Kuva kõik kontaktid"</string>
-    <string name="show_favorites_only" msgid="5520072531022614595">"Kuva ainult lemmikud"</string>
-    <string name="call_log_activity_title" msgid="4612824396355272023">"Ajalugu"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
-    <string name="show_all_contacts_title" msgid="8395378484578221791">"Kõik kontaktid"</string>
-    <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Kõik kontaktid"</string>
-    <string name="favorite_hidden" msgid="4837366417440391323">"Lemmikute hulgast eemaldatud"</string>
-    <string name="favorite_hidden_undo" msgid="2508998611039406474">"Võta tagasi"</string>
-</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index d7df7f6..e3659db 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"ستاره"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"صفر"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"پوند"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"پست صوتی"</string>
     <string name="description_search_button" msgid="3660807558587384889">"جستجو"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"شماره گیری"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"Backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"شماره برای شماره گیری"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"سابقه تماس"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"گزینه‌های بیشتر"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"فقط نمایش بی‌پاسخ"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"فقط نمایش پست‌های صوتی"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"نمایش همه مکالمات"</string>
+    <string name="add_contact" msgid="8875804371377471164">"افزودن مخاطب"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"افزودن یک مکث ۲ ثانیه‌ای"</string>
     <string name="add_wait" msgid="3360818652790319634">"افزودن انتظار"</string>
     <string name="call_settings" msgid="7666474782093693667">"تنظیمات"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"تماس خروجی"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"تماس بی‌پاسخ"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"پست صوتی"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"افزودن مخاطب"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"مشاهده مخاطب <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"تماس با <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"جزئیات تماس برای <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"جزئیات تماس"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"پست صوتی جدید."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> تماس."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"ارسال پیام متنی به <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"پست صوتی شنیده نشده"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"پاک کردن جستجو"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"شروع جستجوی صوتی"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"تماس با <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"ناشناس"</string>
     <string name="voicemail" msgid="3851469869202611441">"پست صوتی"</string>
@@ -125,7 +127,7 @@
     <string name="dialerDialpadHintText" msgid="5824490365898349041">"شماره گیری برای افزودن یک تماس"</string>
     <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> دقیقه و <xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
     <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"تماس ارسال نشد"</string>
-    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"برای راه‌اندازی پست صوتی به منو &gt; تنظیمات بروید."</string>
+    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"‏برای راه‌اندازی پست صوتی به منو &gt; تنظیمات بروید."</string>
     <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"برای تماس با پست صوتی، ابتدا حالت هواپیما را غیرفعال کنید."</string>
     <string name="contact_list_loading" msgid="5488620820563977329">"در حال بارگیری..."</string>
     <string name="imei" msgid="3045126336951684285">"IMEI"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"در حال بارگیری سیم کارت..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"مخاطبین سیم کارت"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"برای استفاده از این ویژگی، برنامه «افراد» را دوباره فعال کنید."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"جستجوی صدا در دسترس نیست."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"برقراری تماس تلفنی ممکن نیست، زیرا برنامه تلفن غیرفعال شده است."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"هیچ فعالیت نصب شده‌ای برای انجام اقدام انتخاب شده در دسترس نیست."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"نام یا  شماره تلفن را تایپ کنید"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"همه موارد"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"بی‌پاسخ"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"اخیراً هیچ تماس بی‌پاسخی نداشته‌اید."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"اخیراً هیچ پست صوتی نداشته‌اید."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"نمایش همه مخاطبین"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"فقط نمایش موارد دلخواه"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"سابقه"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"۰"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"۱"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"۲"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"۳"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"۴"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"۵"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"۶"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"۷"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"۸"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"۹"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"همه موارد"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"بی‌پاسخ"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"پست صوتی"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"شماره‌گیری سریع"</string>
+    <string name="tab_recents" msgid="929949073851377206">"موارد اخیر"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"مخاطبین"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"همه مخاطبین"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"همه مخاطبین"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"از موارد دلخواه حذف شد"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"لغو"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"تماس با <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"افزودن به مخاطبین"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"مشاهده سابقه تماس به صورت کامل"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> تماس‌ بی‌پاسخ جدید"</string>
     <string name="no_favorites" msgid="5212485868783382971">"موارد دلخواه و مخاطبینی که اغلب با\nآنها تماس می‌گیرید اینجا نشان داده می‌شوند.\nبنابراین شروع به تماس گرفتن کنید."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"برای مشاهده همه شماره‌ها روی تصویر ضربه بزنید یا برای مرتب‌سازی مجدد فشار دهید و نگه‌دارید"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"رد کردن"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"حذف"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"شماره‌گیری سریع"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"همه مخاطبین"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"تماس"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"حذف"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"گوش دادن"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"تماس‌ بی‌پاسخ از <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>،‏ <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>،‏ <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"تماس‌ پاسخ‌داده شده از <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>،‏ <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>،‏ <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"تماس‌ به <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>،‏ <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>،‏ <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"تماس با <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"گوش دادن به پست صوتی از <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"حذف ورودی گزارش تماس مربوط به <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"ورودی گزارش تماس حذف شد."</string>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 5454be6..1d4e2b6 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"tähti"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nolla"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"punta"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"vastaaja"</string>
     <string name="description_search_button" msgid="3660807558587384889">"haku"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"soita"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"askelpalautin"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"numero johon soitetaan"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Soittohistoria"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Lisää vaihtoehtoja"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Näytä vain vastaamattomat"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Näytä vain vastaajaviestit"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Näytä kaikki puhelut"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Lisää kontakti"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Lisää 2 sekunnin tauko"</string>
     <string name="add_wait" msgid="3360818652790319634">"Lisää tauko"</string>
     <string name="call_settings" msgid="7666474782093693667">"Asetukset"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Lähtevä puhelu"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Vastaamaton puhelu"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Vastaaja"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Lisää yhteystieto"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Näytä yhteystieto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Soita: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Yhteystiedot: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Puhelun tiedot"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Uusi ääniviesti."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> puhelua."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Lähetä tekstiviesti: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Kuuntelematon vastaajaviesti"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Tyhjennä haku"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Aloita puhehaku"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Soita <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Tuntematon"</string>
     <string name="voicemail" msgid="3851469869202611441">"Vastaaja"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Ladataan SIM-kortilta…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM-kortin yhteystiedot"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Ota Ihmiset-sovellus uudelleen käyttöön käyttääksesi tätä ominaisuutta."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Puhehaku ei ole käytettävissä."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Puhelua ei voi soittaa, koska Puhelin-sovellus on poistettu käytöstä."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Valitun toimen suoritusta varten ei ole asennettua toimintoa."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Kirjoita nimi tai puh.numero"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Kaikki"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Vastaamattomat"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Ei uusia vastaamattomia puheluita."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Ei uusia viestejä vastaajassa."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Näytä kaikki yhteystiedot"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Näytä vain suosikit"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Historia"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Kaikki"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Vastaamattomat"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Vastaaja"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Pikavalinta"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Viimeisimmät"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Yhteystiedot"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Kaikki yhteystiedot"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Kaikki yhteystiedot"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Poistettu suosikeista"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Kumoa"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Soita <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Lisää yhteystietoihin"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Näytä koko soittohistoria"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> uutta vastaamatonta puhelua"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Suosikit ja yhteyshenkilöt, joille\nsoitat usein, näkyvät tässä.\nAla siis soitella."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Napauta kuvaa nähdäksesi kaikki numerot tai järjestä uudelleen painamalla pitkään"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Ohita"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Poista"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Pikavalinta"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"KAIKKI YHTEYSTIEDOT"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"SOITA TAKAISIN"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"POISTA"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"KUUNTELE"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Vastaamaton puhelu: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Vastattu puhelu: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Puhelu: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Soita takaisin: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Kuuntele vastaajaviesti: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Poista puhelulokimerkintä: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Puhelulokimerkintä poistettiin."</string>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index ae100e7..b797056 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"étoile"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"zéro"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"dièse"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"message vocal"</string>
     <string name="description_search_button" msgid="3660807558587384889">"rechercher"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"composer"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"retour arrière"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"numéro à composer"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Historique des appels"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Plus d\'options"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Afficher appels manqués uniq."</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Messages vocaux uniquement"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Afficher tous les appels"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Ajouter un contact"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Ajouter une pause de 2 s"</string>
     <string name="add_wait" msgid="3360818652790319634">"Ajouter Attendre"</string>
     <string name="call_settings" msgid="7666474782093693667">"Paramètres"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Appel sortant"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Appel manqué"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Messagerie vocale"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Ajouter un contact"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Coordonnées de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Détails de l\'appel"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nouveau message vocal."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> appels."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Envoyer un SMS à <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nouveau message vocal"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Effacer les termes de recherche"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Démarrer la recherche vocale"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Inconnu"</string>
     <string name="voicemail" msgid="3851469869202611441">"Messagerie vocale"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Chargement depuis la carte SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Contacts de carte SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Réactivez l\'application Contacts pour utiliser cette fonctionnalité."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"La recherche vocale n\'est pas accessible."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Aucune des applications installées ne peut effectuer l\'action sélectionnée."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Entrez un nom/no de téléphone"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Tous"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Manqués"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Aucun appel manqué récent"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Aucun message vocal récent"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Afficher tous les contacts"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Afficher les contacts favoris uniquement"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Historique"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Tous"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Manqués"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Mess. voc."</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Composition rapide"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Récents"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Contacts"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Tous les contacts"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tous les contacts"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Supprimé des favoris"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Annuler"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Ajouter aux contacts"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Afficher tout l\'historique des appels"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nouveaux appels manqués"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Vos favoris et les contacts\nque vous appelez souvent sont\naffichés ici. Pourquoi ne pas les appeler?"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Touchez l\'image pour afficher tous les numéros, ou maintenez votre doigt sur l\'une d\'elles pour les réorganiser"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Fermer"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Supprimer"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Composition rapide"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TOUS LES CONTACTS"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"RAPPELER"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"SUPPRIMER"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ÉCOUTER"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Appel manqué de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> à <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Appel reçu de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> à <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Appel à <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> à <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Rappeler <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Écouter le message vocal de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Supprimer l\'entrée de journal d\'appel pour <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Entrée du journal d\'appels supprimée."</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index bd54267..84814cd 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"étoile"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"zéro"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"dièse"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"messagerie vocale"</string>
     <string name="description_search_button" msgid="3660807558587384889">"rechercher"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"composer"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"retour arrière"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"numéro à composer"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Historique des appels"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Plus d\'options"</string>
@@ -89,8 +87,9 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Afficher appels manqués uniq."</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Messages vocaux uniquement"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Afficher tous les appels"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Ajouter un contact"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Ajouter une pause de 2 s"</string>
-    <string name="add_wait" msgid="3360818652790319634">"Ajouter Attente"</string>
+    <string name="add_wait" msgid="3360818652790319634">"Ajouter une attente"</string>
     <string name="call_settings" msgid="7666474782093693667">"Paramètres"</string>
     <string name="menu_newContact" msgid="1209922412763274638">"Nouveau contact"</string>
     <string name="menu_allContacts" msgid="6948308384034051670">"Tous les contacts"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Appel sortant"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Appel manqué"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Message vocal"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Ajouter un contact"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Coordonnées associées à <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Détails de l\'appel"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nouveau message vocal"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> appels"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Envoyer un SMS à <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nouveau message vocal"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Effacer la recherche"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Démarrer la recherche vocale"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Inconnu"</string>
     <string name="voicemail" msgid="3851469869202611441">"Messagerie vocale"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Chargement depuis la carte SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Contacts de carte SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Réactivez l\'application Contacts pour utiliser cette fonctionnalité."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"La recherche vocale n\'est pas disponible."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Aucune application installée n\'est disponible pour effectuer l\'action sélectionnée."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Saisissez nom/numéro de tél."</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Tous"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Manqués"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Aucun appel manqué récent"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Aucun message vocal récent"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Afficher tous les contacts"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Afficher les contacts ajoutés aux favoris uniquement"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Historique"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Tous"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Manqués"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Mess. vocale"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Numérotation abrégée"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Récents"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Contacts"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Tous les contacts"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tous les contacts"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Supprimé des favoris."</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Annuler"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Ajouter aux contacts"</string>
-    <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nouveaux appels manqués"</string>
-    <string name="no_favorites" msgid="5212485868783382971">"Les favoris et les contacts que\nvous appelez souvent s\'affichent ici.\nCommencez donc par passer des appels !"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Afficher tout l\'historique des appels"</string>
+    <string name="num_missed_calls" msgid="8081736535604293886">"Nouveaux appels manqués : <xliff:g id="NUMBER">%s</xliff:g>"</string>
+    <string name="no_favorites" msgid="5212485868783382971">"Retrouvez ici vos favoris et\nles contacts que vous appelez souvent.\n"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Appuyer sur l\'image pour afficher tous les numéros ou appuyer de manière prolongée pour les réorganiser"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Ignorer"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Supprimer"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Numérotation abrégée"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TOUS LES CONTACTS"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"RAPPELER"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"SUPPRIMER"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ÉCOUTER"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Appel manqué <xliff:g id="TIMEOFCALL">%3$s</xliff:g> (appelant : <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Appel reçu <xliff:g id="TIMEOFCALL">%3$s</xliff:g> (appelant :<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Appel émis <xliff:g id="TIMEOFCALL">%3$s</xliff:g> (destinataire : <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Rappeler le numéro ou le contact \"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>\""</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Écouter le message vocal laissé par le numéro ou le contact \"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>\""</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Supprimer l\'entrée du journal d\'appels pour <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"L\'entrée du journal d\'appels a bien été supprimée."</string>
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index f6d2a3d..4b0cd1f 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"तारा"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"शून्य"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"पाउंड"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"ध्वनि मेल"</string>
     <string name="description_search_button" msgid="3660807558587384889">"खोजें"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"डायल करें"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"हटाएं"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"डायल करने के लिए नंबर"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"कॉल इतिहास"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"अधिक विकल्प"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"केवल छूटे हुए ही दिखाएं"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"केवल ध्‍वनि‍मेल दि‍खाएं"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"सभी कॉल दि‍खाएं"</string>
+    <string name="add_contact" msgid="8875804371377471164">"संपर्क जोड़ें"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"2-सेकंड का विराम जोड़ें"</string>
     <string name="add_wait" msgid="3360818652790319634">"प्रतीक्षा का समय बढ़ाएं"</string>
     <string name="call_settings" msgid="7666474782093693667">"सेटिंग"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"आउटगोइंग कॉल"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"छूटी कॉल"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"ध्वनिमेल"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"संपर्क जोड़ें"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> संपर्क देखें"</string>
     <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> को कॉल करें"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> का संपर्क विवरण"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"कॉल विवरण"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"नया ध्वनि मेल."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> कॉल."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g> को पाठ संदेश भेजें"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"नहीं सुना गया ध्वनिमेल"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"खोज साफ़ करें"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"बोलकर खोजें शुरु करें"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> पर कॉल करें"</string>
     <string name="unknown" msgid="740067747858270469">"अज्ञात"</string>
     <string name="voicemail" msgid="3851469869202611441">"ध्वनिमेल"</string>
@@ -132,33 +134,43 @@
     <string name="meid" msgid="6210568493746275750">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"सिम कार्ड से लोड हो रहा है…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"सिम कार्ड के संपर्क"</string>
-    <string name="add_contact_not_available" msgid="1419207765446461366">"इस सुविधा का उपयोग करने के लिए लोग एप्स को पुन: सक्षम करें."</string>
+    <string name="add_contact_not_available" msgid="1419207765446461366">"इस सुविधा का उपयोग करने के लिए लोग ऐप्स  को पुन: सक्षम करें."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"बोलकर खोजना उपलब्ध नहीं है."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"फ़ोन कॉल नहीं किया जा सकता क्योंकि फ़ोन एप्लिकेशन अक्षम कर दिया गया है."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"चयनित कार्यवाही का प्रबंधन करने के लिए इंस्टॉल की गई कोई भी गतिविधि उपलब्ध नहीं है."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"नाम या फ़ोन नंबर लिखें"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"सभी"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"छूटे हुए"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"हाल ही का कोई भी छूटा हुआ कॉल नहीं."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"हाल ही का कोई भी ध्वनिमेल नहीं."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"सभी संपर्क दिखाएं"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"केवल पसंदीदा दिखाएं"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"इतिहास"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"सभी"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"छूटे हुए"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"ध्वनिमेल"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"स्पीड डायल"</string>
+    <string name="tab_recents" msgid="929949073851377206">"हाल ही के"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"संपर्क"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"सभी संपर्क"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"सभी संपर्क"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"पसंदीदा से निकाल दिया गया"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"पूर्ववत करें"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> पर कॉल करें"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"संपर्कों में जोड़ें"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"पूर्ण काल ​​इतिहास देखें"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g>  छूटे हुए नए कॉल"</string>
     <string name="no_favorites" msgid="5212485868783382971">"पसंदीदा &amp; आपके द्वारा अक्सर कॉल किए जाने वाले पसंदीदा और संपर्क\nयहां दिखाए जाएंगे.\nतो, कॉल करना प्रारंभ करें."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"सभी नंबर देखने के लिए चित्र को टैप करें या पुनः क्रमित करने के लिए दबाए रखें"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"ख़ारिज करें"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"निकालें"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"स्पीड डायल"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"सभी संपर्क"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"वापस कॉल करें"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"हटाएं"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"सुनें"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"छूटे कॉल का विवरण: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"उत्तर दिए गए कॉल का विवरण: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"किए जाने वाले कॉल का विवरण: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"वापस कॉल करें: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> की ध्वनिमेल सुनें"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> की कॉल लॉग प्रविष्टि हटाएं"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"कॉल लॉग प्रविष्टि हटा दी गई."</string>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 0215959..96158c3 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"zvjezdica"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nula"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"funta"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"govorna pošta"</string>
     <string name="description_search_button" msgid="3660807558587384889">"pretraži"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"biraj"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"broj za pozivanje"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Povijest poziva"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Više opcija"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Prikaži samo propuštene"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Prikaži samo govorne pošte"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Prikaz svih poziva"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Dodaj kontakt"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Dodaj pauzu od 2 sek."</string>
     <string name="add_wait" msgid="3360818652790319634">"Dodaj čekanje"</string>
     <string name="call_settings" msgid="7666474782093693667">"Postavke"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Odlazni poziv"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Propušteni poziv"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Govorna pošta"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Dodaj kontakt"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Prikaz kontakta <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Pozovi: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Pojedinosti o kontaktu <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Pojedinosti poziva"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nova govorna pošta."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"Broj poziva: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Slanje tekstualne poruke: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nepreslušana govorna pošta"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Brisanje pretraživanja"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Pokretanje glasovnog pretraživanja"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Nazovite <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Nepoznato"</string>
     <string name="voicemail" msgid="3851469869202611441">"Govorna pošta"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Učitavanje sa SIM kartice..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Kontakti SIM kartice"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Ponovo omogućite aplikaciju Osobe da biste upotrebljavali tu značajku."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Glasovno pretraživanje nije dostupno."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Telefoniranje nije moguće jer je aplikacija Telefon onemogućena."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Nema instaliranih aplikacija za rukovanje odabranom radnjom."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Upišite ime ili tel. broj"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Sve"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Propušteni"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Nema nedavnih propuštenih poziva"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Nema nedavne govorne pošte"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Prikaži sve kontakte"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Prikaži samo favorite"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Povijest"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Sve"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Propušteni"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Gov. pošta"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Brzo biranje"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Najnoviji"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontakti"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Svi kontakti"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Svi kontakti"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Uklonjeno iz favorita"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Poništi"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Nazovi <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Dodaj u kontakte"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Prikaz cijele povijesti poziva"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"Broj novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Ovdje će se prikazivati favoriti\ni kontakti koje često zovete.\nZato počnite zvati."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Dodirnite sliku da biste vidjeli sve brojeve ili pritisnite i zadržite da biste promijenili poredak"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Odbaci"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Ukloni"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Brzo biranje"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"SVI KONTAKTI"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"POVRATNI POZIV"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"IZBRIŠI"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"POSLUŠAJTE"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Propušteni poziv kontakta <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Prihvaćeni poziv kontakta <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Upućeni poziv kontaktu <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Uzvraćanje poziva kontaktu <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Slušanje govorne pošte kontakta <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Brisanje unosa u zapisniku poziva za kontakt <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Unos zapisnika poziva izbrisan je."</string>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index d67cd4e..1a7bccb 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"csillag"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nulla"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"kettős kereszt"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"hangposta"</string>
     <string name="description_search_button" msgid="3660807558587384889">"keresés"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"tárcsázás"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"Backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"a tárcsázandó szám"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Hívási előzmények"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"További beállítások"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Csak a nem fogadottak"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Csak a hangüzenetek"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Összes hívás megjelenítése"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Névjegy hozzáadása"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"2 mp-es szünet hozzáadása"</string>
     <string name="add_wait" msgid="3360818652790319634">"Várakozás hozzáadása"</string>
     <string name="call_settings" msgid="7666474782093693667">"Beállítások"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Kimenő hívás"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Nem fogadott hívás"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Hangüzenet"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Névjegy hozzáadása"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> névjegyének megtekintése"</string>
     <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> hívása"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> részletes adatai."</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Hívás adatai"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Új hangpostaüzenet."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> hívás"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"SMS küldése neki: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nem lejátszott hangüzenet"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Keresés törlése"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Hangalapú keresés indítása"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Hívás: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Ismeretlen"</string>
     <string name="voicemail" msgid="3851469869202611441">"Hangposta"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Betöltés a SIM-kártyáról..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Névjegyek a SIM-kártyán"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"A funkció használatához aktiválja újra a Személyek alkalmazást."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"A hangalapú keresés nem érhető el."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Nem lehet telefonhívást kezdeményezni, mert a Telefon alkalmazást letiltották."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"A kijelölt művelet kezelésére nincs telepített alkalmazás."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Név vagy telefonszám megadása"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Összes"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Nem fogadott"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Nincsenek újabb elmulasztott hívások."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Nincsenek újabb hangpostaüzenetek."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Az összes névjegy megjelenítése"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Csak kedvencek megjelenítése"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Előzmények"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Összes"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Nem fogadott"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Hangposta"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Gyorshívó"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Legutóbbiak"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Címtár"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Összes névjegy"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Összes névjegy"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Eltávolítva a kedvencek közül"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Visszavonás"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Hívás: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Hozzáadás a névjegyekhez"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Teljes híváslista megtekintése"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> új nem fogadott hívás"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Itt a kedvencek és a gyakran hívott\nismerősök fognak megjelenni.\nEhhez előbb hívásokat kell indítania."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Koppintson a képre az összes szám megtekintéséhez, vagy tartsa lenyomva az átrendezéshez"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Elvetés"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Eltávolítás"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Gyorshívó"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ÖSSZES NÉVJEGY"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"VISSZAHÍVÁS"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"TÖRLÉS"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"MEGHALLGATÁS"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Nem fogadott hívás a következőtől: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Fogadott hívás a következőtől: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Kimenő hívás: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> visszahívása"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> hangpostaüzenetének meghallgatása"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> hívásnapló-bejegyzésének törlése"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Hívásnapló-bejegyzés törölve."</string>
 </resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 7385039..c9c8e45 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"աստղանշել"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"զրո"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"ֆունտ"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"ձայնային փոստ"</string>
     <string name="description_search_button" msgid="3660807558587384889">"որոնել"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"համարարկել"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"հետշարժ"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"համարհավաքման հեռախոսահամարը"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Զանգերի պատմությունը"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Այլ ընտրանքներ"</string>
@@ -89,6 +87,8 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Ցույց տալ միայն բաց թողնվածները"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Ցուցադրել միայն ձայնային փոստերը"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Ցուցադրել բոլոր զանգերը"</string>
+    <!-- no translation found for add_contact (8875804371377471164) -->
+    <skip />
     <string name="add_2sec_pause" msgid="9214012315201040129">"Ավելացնել 2 վայրկյան դադար"</string>
     <string name="add_wait" msgid="3360818652790319634">"Ավելացնել սպասում"</string>
     <string name="call_settings" msgid="7666474782093693667">"Կարգավորումներ"</string>
@@ -109,13 +109,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Ելքային զանգ"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Բաց թողնված զանգ"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Ձայնային փոստ"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Ավելացնել կոտակտ"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Դիտել <xliff:g id="NAME">%1$s</xliff:g> կոնտակտը"</string>
     <string name="description_call" msgid="3443678121983852666">"Զանգել <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ի կոնտակտային տվյալները"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Զանգի մանրամասները"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Նոր ձայնային հաղորդագրություն:"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> զանգ:"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Ուղարկել տեքստային հաղորդագրություն <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Չլսված ձայնային փոստ"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Մաքրել որոնման դաշտը"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Սկսկեք ձայնային որոնումը"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Զանգել <xliff:g id="NUMBER">%s</xliff:g>-ին"</string>
     <string name="unknown" msgid="740067747858270469">"Անհայտ"</string>
     <string name="voicemail" msgid="3851469869202611441">"Ձայնային փոստ"</string>
@@ -133,32 +136,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM քարտը բեռնվում է..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM քարտի կոնտակտները"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Կրկին միացրեք Մարդիկ ծրագիրը` այս հատկությունn օգտագործելու համար:"</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Ձայնային որոնումն անհասանելի է:"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Հնարավոր չէ զանգահարել, քանի որ Հեռախոս հավելվածն անջատված է:"</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Ընտրված գործողությունը կարգավորելու համար ոչ մի տեղադրված գործունեություն հասանելի չէ:"</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Մուտքագրեք անունը կամ հեռախոսահամարը"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Բոլորը"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Բաց թողնված"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Նոր բաց թողնված զանգեր չկան:"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Նոր ձայնային հաղորդագրություններ չկան:"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Ցույց տալ բոլոր կոնտակտները"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Ցույց տալ միայն ընտրյալները"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Պատմություն"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Բոլորը"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Բաց թողնված"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Ձայնափոստ"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Արագ համարհավաքում"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Վերջինները"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Կոնտակտներ"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Բոլոր կոնտակտները"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Բոլոր կոնտակտները"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Հեռացված է ընտրյալներից"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Հետարկել"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Զանգել <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Ավելացնել կոնտակտներում"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Դիտել բոլոր զանգերի պատմությունը"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> նոր բաց թողնված զանգ"</string>
-    <string name="no_favorites" msgid="5212485868783382971">"Հաճախ կանչվող ընտրյալներ &amp; կոնտակտները\nկցուցադրվեն այստեղ:\nԿարող եք զանգել:"</string>
+    <string name="no_favorites" msgid="5212485868783382971">"Հաճախ կանչվող ընտրյալները և կոնտակտները\nկցուցադրվեն այստեղ:\nԿարող եք զանգել:"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Հպեք նկարին՝ բոլոր համարները տեսնելու, կամ հպեք ու պահեք՝ վերադասավորելու համար:"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Անտեսել"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Հեռացնել"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Արագ համարահավաքում"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ԲՈԼՈՐ ԿՈՆՏԱԿՏՆԵՐԸ"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"ՀԵՏ ԶԱՆԳԵԼ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ՋՆՋԵԼ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ԼՍԵԼ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Բաց թողնված զանգ՝ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>:"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Ընդունված զանգ՝ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>:"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Կատարված զանգ՝ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>:"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Հետ զանգել <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ին"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Լսել ձայնային փոստը <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ից"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Ջնջել <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ը զանգերի մատյանի գրառումներից"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Զանգերի մատյանի գրառումը ջնջվեց:"</string>
 </resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
deleted file mode 100644
index c52b96f..0000000
--- a/res/values-hy/strings.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2012 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
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="8490255569343340580">"Համարհավաքիչ"</string>
-    <string name="launcherDialer" msgid="8636288196618486553">"Հեռախոս"</string>
-    <string name="dialerIconLabel" msgid="6500826552823403796">"Հեռախոս"</string>
-    <string name="recentCallsIconLabel" msgid="1419116422359067949">"Զանգերի գրանցամատյան"</string>
-    <string name="menu_sendTextMessage" msgid="6937343460284499306">"Ուղարկել տեքստային հաղորդագրություն"</string>
-    <string name="recentCalls_callNumber" msgid="1756372533999226126">"Զանգել <xliff:g id="NAME">%s</xliff:g>-ին"</string>
-    <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Խմբագրել համարը զանգելուց առաջ"</string>
-    <string name="recentCalls_addToContact" msgid="1429899535546487008">"Ավելացնել կոնտակտներում"</string>
-    <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Հեռացնել զանգերի գրանցամատյանից"</string>
-    <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Մաքրել զանգերի գրանցամատյանը"</string>
-    <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Ջնջել ձայնային փոստը"</string>
-    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Տարածել ձայնային փոստը"</string>
-    <string name="recentCalls_empty" msgid="247053222448663107">"Զանգերի մատյանը դատարկ է:"</string>
-    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Մաքրե՞լ զանգերի գրանցամատյանը"</string>
-    <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Ձեր բոլոր զանգերի գրառումները կջնջվեն:"</string>
-    <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Զանգերի գրանցամատյանը մաքրվում է..."</string>
-  <plurals name="notification_voicemail_title">
-    <item quantity="one" msgid="1746619685488504230">"Ձայնային փոստ"</item>
-    <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> ձայնային փոստ"</item>
-  </plurals>
-    <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Նվագարկել"</string>
-    <string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
-    <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Նոր ձայնային փոստ <xliff:g id="CALLER">%1$s</xliff:g>-ից"</string>
-    <string name="voicemail_playback_error" msgid="1811242131549854624">"Հնարավոր չէ նվագարկել ձայնային փոստը:"</string>
-    <string name="voicemail_buffering" msgid="738287747618697097">"Պահնակավորում..."</string>
-    <string name="voicemail_fetching_content" msgid="877911315738258780">"Ձայնային փոստի ստացում..."</string>
-    <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Չհաջողվեց ստանալ ձայնային փոստը:"</string>
-    <string name="call_log_voicemail_header" msgid="3945407886667089173">"Միայն ձայնային փոստով զանգերը"</string>
-    <string name="call_log_incoming_header" msgid="2787722299753674684">"Միայն մուտքային զանգեր"</string>
-    <string name="call_log_outgoing_header" msgid="761009180766735769">"Միայն ելքային զանգերը"</string>
-    <string name="call_log_missed_header" msgid="8017148056610855956">"Միայն բաց թողնված զանգերը"</string>
-    <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Հնարավոր չէ կապ հաստատել ձայնային փոստի սերվերի հետ:"</string>
-    <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Հնարավոր չէ կապ հաստատել ձայնային փոստի սերվերի հետ: Նոր ձայնային փոստերը սպասում են:"</string>
-    <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Կարգավորեք ձեր ձայնային փոստը:"</string>
-    <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Ձայնանյութը հասանելի չէ:"</string>
-    <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Կարգավորել"</string>
-    <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Միանալ ձայնային փոստին"</string>
-    <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Ամենադանդաղ արագություն"</string>
-    <string name="voicemail_speed_slower" msgid="1508601287347216244">"Դանդաղ արագություն"</string>
-    <string name="voicemail_speed_normal" msgid="9033988544627228892">"Միջին արագություն"</string>
-    <string name="voicemail_speed_faster" msgid="2019965121475935488">"Արագ"</string>
-    <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Շատ արագ"</string>
-    <string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
-    <string name="sms_disambig_title" msgid="5846266399240630846">"Ընտրել համարը"</string>
-    <string name="call_disambig_title" msgid="4392886850104795739">"Ընտրել համարը"</string>
-    <string name="make_primary" msgid="5829291915305113983">"Հիշել այս ընտրությունը"</string>
-    <string name="description_image_button_one" msgid="1740638037139856139">"մեկ"</string>
-    <string name="description_image_button_two" msgid="5882638439003731308">"երկու"</string>
-    <string name="description_image_button_three" msgid="8709731759376015180">"երեք"</string>
-    <string name="description_image_button_four" msgid="3530239685642246130">"չորս"</string>
-    <string name="description_image_button_five" msgid="1182465427501188413">"հինգ"</string>
-    <string name="description_image_button_six" msgid="2093656269261415475">"վեց"</string>
-    <string name="description_image_button_seven" msgid="2450357020447676481">"յոթ"</string>
-    <string name="description_image_button_eight" msgid="6969435115163287801">"ութ"</string>
-    <string name="description_image_button_nine" msgid="7857248695662558323">"ինը"</string>
-    <string name="description_image_button_star" msgid="3365919907520767866">"աստղանշել"</string>
-    <string name="description_image_button_zero" msgid="4133108949401820710">"զրո"</string>
-    <string name="description_image_button_pound" msgid="3039765597595889230">"ֆունտ"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"ձայնային փոստ"</string>
-    <string name="description_search_button" msgid="3660807558587384889">"որոնել"</string>
-    <string name="description_dial_button" msgid="1274091017188142646">"համարարկել"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"հետշարժ"</string>
-    <string name="description_digits_edittext" msgid="8760207516497016437">"համարհավաքման հեռախոսահամարը"</string>
-    <string name="action_menu_call_history_description" msgid="9018442816219748968">"Զանգերի պատմությունը"</string>
-    <string name="action_menu_overflow_description" msgid="2303272250613084574">"Այլ ընտրանքներ"</string>
-    <string name="action_menu_dialpad_button" msgid="1425910318049008136">"թվաշար"</string>
-    <string name="menu_copy" msgid="6108677035381940698">"Պատճենել"</string>
-    <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Ցույց տալ միայն ելքայինները"</string>
-    <string name="menu_show_incoming_only" msgid="7534206815238877417">"Ցույց տալ միայն մուտքայինները"</string>
-    <string name="menu_show_missed_only" msgid="154473166059743996">"Ցույց տալ միայն բաց թողնվածները"</string>
-    <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Ցուցադրել միայն ձայնային փոստերը"</string>
-    <string name="menu_show_all_calls" msgid="7560347482073345885">"Ցուցադրել բոլոր զանգերը"</string>
-    <string name="add_2sec_pause" msgid="9214012315201040129">"Ավելացնել 2 վայրկյան դադար"</string>
-    <string name="add_wait" msgid="3360818652790319634">"Ավելացնել սպասում"</string>
-    <string name="call_settings" msgid="7666474782093693667">"Կարգավորումներ"</string>
-    <string name="menu_newContact" msgid="1209922412763274638">"Նոր կոնտակտ"</string>
-    <string name="callDetailTitle" msgid="5340227785196217938">"Զանգի մանրամասները"</string>
-    <string name="toast_call_detail_error" msgid="7200975244804730096">"Չհաջողվեց կարդալ հայցվող զանգի մանրամասները:"</string>
-    <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Օգտագործել հնչերանգներով ստեղնաշարը"</string>
-    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Վերադառնալ ընթացիկ զանգին"</string>
-    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Ավելացնել զանգ"</string>
-    <string name="type_incoming" msgid="6502076603836088532">"Մուտքային զանգ"</string>
-    <string name="type_outgoing" msgid="343108709599392641">"Ելքային զանգ"</string>
-    <string name="type_missed" msgid="2720502601640509542">"Բաց թողնված զանգ"</string>
-    <string name="type_voicemail" msgid="5153139450668549908">"Ձայնային փոստ"</string>
-    <string name="actionIncomingCall" msgid="6028930669817038600">"Մուտքային զանգեր"</string>
-    <string name="description_call_log_play_button" msgid="651182125650429846">"Նվագարկել ձայնային փոստը"</string>
-    <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Մուտքային զանգ"</string>
-    <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Ելքային զանգ"</string>
-    <string name="description_call_log_missed_call" msgid="2242805209983708825">"Բաց թողնված զանգ"</string>
-    <string name="description_call_log_voicemail" msgid="4600798771975158948">"Ձայնային փոստ"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Ավելացնել կոտակտ"</string>
-    <string name="description_view_contact" msgid="5205669345700598415">"Դիտել <xliff:g id="NAME">%1$s</xliff:g> կոնտակտը"</string>
-    <string name="description_call" msgid="3443678121983852666">"Զանգել <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
-    <string name="description_send_text_message" msgid="7803126439934046891">"Ուղարկել տեքստային հաղորդագրություն <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
-    <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Չլսված ձայնային փոստ"</string>
-    <string name="description_start_voice_search" msgid="520539488194946012">"Սկսկեք ձայնային որոնումը"</string>
-    <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
-    <string name="menu_callNumber" msgid="997146291983360266">"Զանգել <xliff:g id="NUMBER">%s</xliff:g>-ին"</string>
-    <string name="unknown" msgid="740067747858270469">"Անհայտ"</string>
-    <string name="voicemail" msgid="3851469869202611441">"Ձայնային փոստ"</string>
-    <string name="private_num" msgid="6374339738119166953">"Անձնական համարը"</string>
-    <string name="payphone" msgid="4864313342828942922">"Վճարել հեռախոսը"</string>
-    <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Օգտագործել ստեղնաշարը` համարհավաքելու համար"</string>
-    <string name="dialerDialpadHintText" msgid="5824490365898349041">"Համարհավաքել՝ զանգելու համար"</string>
-    <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> րոպ <xliff:g id="SECONDS">%s</xliff:g> վրկ"</string>
-    <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Զանգը չի առաքվել"</string>
-    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Ձայնային փոստը կարգավորելու համար գնացեք Ցանկ &gt; Կարգավորումներ:"</string>
-    <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Ձայնային փոստին զանգելու համար նախ անջատեք թռիչքային ռեժիմը:"</string>
-    <string name="contact_list_loading" msgid="5488620820563977329">"Բեռնում..."</string>
-    <string name="imei" msgid="3045126336951684285">"IMEI"</string>
-    <string name="meid" msgid="6210568493746275750">"MEID"</string>
-    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM քարտը բեռնվում է..."</string>
-    <string name="simContacts_title" msgid="27341688347689769">"SIM քարտի կոնտակտները"</string>
-    <string name="add_contact_not_available" msgid="1419207765446461366">"Կրկին միացրեք Մարդիկ ծրագիրը` այս հատկությունn օգտագործելու համար:"</string>
-    <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Գրեք անունը կամ հեռախոսը"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Բոլորը"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Բաց թողնված"</string>
-    <string name="recentMissed_empty" msgid="5427113551557296665">"Նոր բաց թողնված զանգեր չկան:"</string>
-    <string name="recentVoicemails_empty" msgid="5163114119598014048">"Նոր ձայնային հաղորդագրություններ չկան:"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Ցույց տալ բոլոր կոնտակտները"</string>
-    <string name="show_favorites_only" msgid="5520072531022614595">"Ցույց տալ միայն ընտրյալները"</string>
-    <string name="call_log_activity_title" msgid="4612824396355272023">"Պատմություն"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
-    <string name="show_all_contacts_title" msgid="8395378484578221791">"Բոլոր կոնտակտները"</string>
-    <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Բոլոր կոնտակտները"</string>
-    <string name="favorite_hidden" msgid="4837366417440391323">"Թաքցվեց ընտրյալներից"</string>
-    <string name="favorite_hidden_undo" msgid="2508998611039406474">"Հետարկել"</string>
-</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 4012b78..be1316a 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"bintangi"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nol"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"pound"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"kotak pesan"</string>
     <string name="description_search_button" msgid="3660807558587384889">"telusuri"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"panggil"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"nomor untuk dipanggil"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Riwayat Panggilan"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Opsi lainnya"</string>
@@ -89,7 +87,8 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Tampilkan panggilan terlewat"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Tampilkan pesan suara saja"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Tampilkan semua panggilan"</string>
-    <string name="add_2sec_pause" msgid="9214012315201040129">"Tambahkan jeda 2-det"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Tambahkan kontak"</string>
+    <string name="add_2sec_pause" msgid="9214012315201040129">"Tambahkan jeda 2 dtk"</string>
     <string name="add_wait" msgid="3360818652790319634">"Tambahkan tunggu"</string>
     <string name="call_settings" msgid="7666474782093693667">"Setelan"</string>
     <string name="menu_newContact" msgid="1209922412763274638">"Kontak baru"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Panggilan keluar"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Panggilan tak terjawab"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Pesan suara"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Tambahkan kontak"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Lihat kontak <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Detail kontak untuk <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Detail panggilan"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Pesan suara baru."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> panggilan."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Kirim SMS ke <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Pesan suara yang belum didengar"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Hapus penelusuran"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Memulai penelusuran suara"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Panggil <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Tidak diketahui"</string>
     <string name="voicemail" msgid="3851469869202611441">"Kotak Pesan"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Memuat dari kartu SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Kontak pada kartu SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Aktifkan kembali aplikasi Orang untuk menggunakan fitur ini."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Penelusuran suara tidak tersedia."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Tidak dapat melakukan panggilan telepon karena aplikasi Telepon telah dinonaktifkan."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Tidak ada aktivitas terpasang yang tersedia untuk menangani tindakan yang dipilih."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Ketikkan nama/nomor ponsel"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Semua"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"TakDijawab"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Tidak ada panggilan tak terjawab terbaru."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Tidak ada pesan suara terbaru."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Tampilkan semua kontak"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Hanya tampilkan favorit"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Riwayat"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Semua"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Tak Dijawab"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"PesanSuara"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Panggilan Cepat"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Terbaru"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontak"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Semua kontak"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Semua kontak"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Dihapus dari favorit"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Batalkan"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Telepon <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Tambahkan ke kontak"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Lihat riwayat panggilan telepon lengkap"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> panggilan tidak terjawab baru"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Favorit &amp; kontak yang\nsering Anda hubungi akan muncul di sini.\nJadi, mulailah menelepon."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Ketuk gambar untuk melihat semua nomor atau tekan terus untuk mengatur ulang"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Tutup"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Hapus"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Panggilan Cepat"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"SEMUA KONTAK"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"HUBUNGI KEMBALI"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"HAPUS"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"DENGAR"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Panggilan telepon tak terjawab dari <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Panggilan telepon terjawab dari <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Panggilan telepon ke <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Panggil kembali <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Dengarkan kotak pesan dari <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Hapus entri log panggilan telepon untuk <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Entri log panggilan telepon dihapus."</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 7ec52eb..d9d9e50 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"stella"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"zero"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"sterlina"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"segreteria"</string>
     <string name="description_search_button" msgid="3660807558587384889">"cerca"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"componi"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"numero da comporre"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Cronologia chiamate"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Altre opzioni"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Mostra solo senza risposta"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Mostra solo messaggi vocali"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Mostra tutte le chiamate"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Aggiungi contatto"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Aggiungi pausa 2 sec"</string>
     <string name="add_wait" msgid="3360818652790319634">"Aggiungi attesa"</string>
     <string name="call_settings" msgid="7666474782093693667">"Impostazioni"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Chiamata in uscita"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Chiamata senza risposta"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Messaggio vocale"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Aggiungi contatto"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Visualizza <xliff:g id="NAME">%1$s</xliff:g> contatto"</string>
     <string name="description_call" msgid="3443678121983852666">"Chiama <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Dettagli contatto <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Dettagli chiamata"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nuovo messaggio di segreteria."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> chiamate."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Invia messaggio di testo a <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Messaggio vocale non ascoltato"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Cancella ricerca"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Avvia la ricerca vocale"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Chiama <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Sconosciuto"</string>
     <string name="voicemail" msgid="3851469869202611441">"Segreteria"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Caricamento da SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Contatti SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Riattiva l\'app Persone per utilizzare questa funzione."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"La ricerca vocale non è disponibile."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Impossibile effettuare una telefonata perché l\'applicazione Telefono è stata disattivata."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Nessuna applicazione installata disponibile per gestire l\'azione selezionata."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Digita nome o numero telefono"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Tutti"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Perse"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Nessuna chiamata persa recente."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Nessun messaggio vocale recente."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Mostra tutti i contatti"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostra solo i preferiti"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Cronologia"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Tutti"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Perse"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Segreteria"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Chiamata rapida"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Recenti"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Contatti"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Tutti i contatti"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tutti i contatti"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Rimosso dai preferiti"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Annulla"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Chiama <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Aggiungi ai contatti"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Visualizza cronologia completa delle chiamate"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nuove chiamate senza risposta"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Preferiti e contatti che\nchiami spesso verranno mostrati qui.\nInizia a chiamarli."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Tocca l\'immagine per visualizzare tutti i numeri o tieni premuto per cambiare l\'ordine"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Ignora"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Rimuovi"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Chiamata rapida"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TUTTI I CONTATTI"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"RICHIAMA"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ELIMINA"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ASCOLTA"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Chiamata senza risposta da <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Chiamata ricevuta da <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Chiamata a <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Richiama <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Ascolta il messaggio vocale di: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Elimina la voce del registro chiamate relativa a: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Voce del registro chiamate eliminata."</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 90c2ed6..8b8c5f2 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"סמן בכוכב"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"אפס"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"סולמית"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"דואר קולי"</string>
     <string name="description_search_button" msgid="3660807558587384889">"חפש"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"חייג"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"Backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"מספר לחיוג"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"היסטוריית שיחות"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"אפשרויות נוספות"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"הצג רק שיחות שלא נענו"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"הצג הודעות דואר קולי בלבד"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"הצג את כל השיחות"</string>
+    <string name="add_contact" msgid="8875804371377471164">"הוסף איש קשר"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"הוסף השהיה של 2 שניות"</string>
     <string name="add_wait" msgid="3360818652790319634">"הוסף המתנה"</string>
     <string name="call_settings" msgid="7666474782093693667">"הגדרות"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"שיחה יוצאת"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"שיחה שלא נענתה"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"דואר קולי"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"הוסף איש קשר"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"הצג את איש הקשר <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"התקשר אל <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"פרטי יצירת קשר עבור <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"פרטי שיחה"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"דואר קולי חדש."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> שיחות."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"שלח הודעת טקסט אל <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"דואר קולי שעדיין לא נשמע"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"נקה חיפוש"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"התחל חיפוש קולי"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"התקשר אל <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"לא ידוע"</string>
     <string name="voicemail" msgid="3851469869202611441">"דואר קולי"</string>
@@ -125,40 +127,50 @@
     <string name="dialerDialpadHintText" msgid="5824490365898349041">"חייג כדי להוסיף שיחה"</string>
     <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> דקות <xliff:g id="SECONDS">%s</xliff:g> שניות"</string>
     <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"השיחה לא נשלחה."</string>
-    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"כדי להגדיר את הדואר הקולי, עבור אל \'תפריט\' &gt; \'הגדרות\'."</string>
+    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"‏כדי להגדיר את הדואר הקולי, עבור אל \'תפריט\' &gt; \'הגדרות\'."</string>
     <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"כדי להתקשר לדואר קולי, ראשית כבה את מצב הטיסה."</string>
     <string name="contact_list_loading" msgid="5488620820563977329">"טוען..."</string>
     <string name="imei" msgid="3045126336951684285">"IMEI"</string>
     <string name="meid" msgid="6210568493746275750">"MEID"</string>
-    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"טוען מכרטיס SIM…"</string>
-    <string name="simContacts_title" msgid="27341688347689769">"אנשי קשר בכרטיס SIM"</string>
+    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"‏טוען מכרטיס SIM…"</string>
+    <string name="simContacts_title" msgid="27341688347689769">"‏אנשי קשר בכרטיס SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"הפעל מחדש את אפליקציית אנשי הקשר כדי להשתמש בתכונה זו."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"חיפוש קולי אינו זמין."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"לא ניתן לבצע שיחת טלפון מפני שאפליקציית הטלפון הושבתה."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"אין פעילות מותקנת הזמינה לטיפול בפעולה הנבחרת."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"הקלד שם או מספר טלפון"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"הכול"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"שיחה שלא נענתה"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"אין שיחות אחרונות שלא נענו."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"אין הודעות דואר קולי אחרונות."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"הצג את כל אנשי הקשר"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"הצג מועדפים בלבד"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"היסטוריה"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"הכול"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"שיחה שלא נענתה"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"דואר קולי"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"חיוג מהיר"</string>
+    <string name="tab_recents" msgid="929949073851377206">"אחרונים"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"אנשי קשר"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"כל אנשי הקשר"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"כל אנשי הקשר"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"הוסר מהמועדפים"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"בטל"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"התקשר אל <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"הוסף לאנשי הקשר"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"הצג את היסטוריית השיחות המלאה"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> שיחות חדשות שלא נענו"</string>
     <string name="no_favorites" msgid="5212485868783382971">"מועדפים ואנשי קשר שאתה\nיוצר איתם קשר בקביעות יופיעו כאן.\nאז תתחיל להתקשר."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"הקש על תמונה כדי לראות את כל המספרים, או לחץ והחזק כדי לשנות את הסדר"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"סגור"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"הסר"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"חיוג מהיר"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"כל אנשי הקשר"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"התקשר חזרה"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"מחק"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"האזן"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"שיחה שלא נענתה מאת <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"שיחה שנענתה מאת <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"התקשר אל <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"התקשר חזרה אל <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"האזן לדואר קולי מאת <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"מחק רשומה ביומן השיחות עבור <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"רשומת יומן שיחות נמחקה."</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index c6b0aca..f11fc21 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"スター"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"0"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"ポンド"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"ボイスメール"</string>
     <string name="description_search_button" msgid="3660807558587384889">"検索"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"発信"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"Backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"発信番号"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"通話履歴"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"その他のオプション"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"不在着信のみを表示"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"ボイスメールのみ表示"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"すべての通話を表示"</string>
+    <string name="add_contact" msgid="8875804371377471164">"連絡先を追加"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"2秒間の停止を追加"</string>
     <string name="add_wait" msgid="3360818652790319634">"待機を追加"</string>
     <string name="call_settings" msgid="7666474782093693667">"設定"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"発信"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"不在着信"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"ボイスメール"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"連絡先を追加"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g>の連絡先を表示"</string>
     <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g>に発信"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>の連絡先の詳細"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"通話の詳細"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"新着のボイスメール。"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"通話回数は<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>回。"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g>にテキストメッセージを送信"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"未再生のボイスメール"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"検索をクリア"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"音声検索を開始"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g>に発信"</string>
     <string name="unknown" msgid="740067747858270469">"通知不可能"</string>
     <string name="voicemail" msgid="3851469869202611441">"ボイスメール"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIMカードから読み取り中..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIMカードの連絡先"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"この機能を使用するには連絡帳アプリを再度有効にしてください。"</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"音声検索は利用できません。"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"電話アプリが無効になっているため発信できません。"</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"選択した操作を処理できるアクティビティがインストールされていません。"</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"名前または電話番号を入力"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"すべて"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"不在着信"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"最近の不在着信はありません。"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"最近のボイスメールはありません。"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"すべての連絡先を表示"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"お気に入りのみを表示"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"履歴"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"すべて"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"不在着信"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"ボイスメール"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"クイックアクセス"</string>
+    <string name="tab_recents" msgid="929949073851377206">"最近"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"連絡先"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"すべての連絡先"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"すべての連絡先"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"お気に入りから削除されました"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"元に戻す"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g>に発信"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"連絡先に追加"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"通話履歴をすべて表示"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g>件の不在着信"</string>
     <string name="no_favorites" msgid="5212485868783382971">"ここにはお気に入りや\n頻繁に通話する\n連絡先が表示されます。"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"画像をタップするとすべての番号を表示でき、押し続けると並び替えることができます"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"閉じる"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"削除"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"クイックアクセス"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"すべての連絡先"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"コールバック"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"削除"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"再生"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"<xliff:g id="TIMEOFCALL">%3$s</xliff:g>の<xliff:g id="TYPEORLOCATION">%2$s</xliff:g><xliff:g id="NAMEORNUMBER">%1$s</xliff:g>からの不在着信。"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"<xliff:g id="TIMEOFCALL">%3$s</xliff:g>の<xliff:g id="TYPEORLOCATION">%2$s</xliff:g><xliff:g id="NAMEORNUMBER">%1$s</xliff:g>からの着信。"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"<xliff:g id="TIMEOFCALL">%3$s</xliff:g>の<xliff:g id="TYPEORLOCATION">%2$s</xliff:g><xliff:g id="NAMEORNUMBER">%1$s</xliff:g>への発信。"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>にコールバック"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>からのボイスメールを再生"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>の通話履歴エントリを削除"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"通話履歴エントリを削除しました。"</string>
 </resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index d42e470..5b5088a 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"ვარსკვლავი"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"ნული"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"გირვანქა"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"ხმოვანი ფოსტა"</string>
     <string name="description_search_button" msgid="3660807558587384889">"ძიება"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"დარეკვა"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"უკუშლა"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"ასაკრეფი ნომერი"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"საუბრის ისტორია"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"სხვა პარამეტრები"</string>
@@ -89,6 +87,8 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"მხოლოდ გამოტოვებულის ჩვენება"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"მხოლოდ ხმოვანი ფოსტის ჩვენება"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"ყველა ზარის ჩვენება"</string>
+    <!-- no translation found for add_contact (8875804371377471164) -->
+    <skip />
     <string name="add_2sec_pause" msgid="9214012315201040129">"ორწამიანი პაუზის დამატება"</string>
     <string name="add_wait" msgid="3360818652790319634">"ლოდინის დამატება"</string>
     <string name="call_settings" msgid="7666474782093693667">"პარამეტრები"</string>
@@ -109,13 +109,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"გამავალი ზარი"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"გამოტოვებული ზარი"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"ხმოვანი ფოსტა"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"კონტაქტის დამატება"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"კონტაქტის <xliff:g id="NAME">%1$s</xliff:g> ნახვა"</string>
     <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g>-თან დარეკვა"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ის კონტაქტის დეტალები"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"ზარის მონაცემები"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"ახალი ხმოვანი ფოსტა."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ზარი."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"ტესქტური შეტყობინების გაგზავნა <xliff:g id="NAME">%1$s</xliff:g>-ისთვის"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"მოსასმენი ხმოვანი ფოსტა"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"ძიების გასუფთავება"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"ხმოვანი ძიების დაწყება"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"დარეკვა <xliff:g id="NUMBER">%s</xliff:g>-ზე"</string>
     <string name="unknown" msgid="740067747858270469">"უცნობი"</string>
     <string name="voicemail" msgid="3851469869202611441">"ხმოვანი ფოსტა"</string>
@@ -133,32 +136,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"იტვირთება SIM ბარათიდან…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM ბარათის კონტაქტები"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"ამ ფუნქციის გამოსაყენებლად ხელახლა გააქტიურეთ აპლიკაცია „ხალხი“."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"ხმოვანი ძიება მიუწვდომელია."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"სატელეფონო ზარის განხორციელება ვერ ხერხდება, ვინაიდან ტელეფონის აპლიკაცია გაუქმებულია."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"არჩეული ქმედებისათვის ინსტალირებული აქტივობა არ არის."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"შეიყვანეთ სახელი, ან ტელეფონის ნომერი"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"ყველა"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"გამოტოვებული"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"ბოლო დროის ზარები არ არის."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"ბოლო დროის ხმოვანი ფოსტა არ არის."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"ყველა კონტაქტის ჩვენება"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"მხოლოდ რჩეულების ჩვენება"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"ისტორია"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"ყველა"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"გამოტოვებული"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"ხმოვანი ფოსტა"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"სწრაფი აკრეფა"</string>
+    <string name="tab_recents" msgid="929949073851377206">"ბოლო"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"კონტაქტები"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"ყველა კონტაქტი"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ყველა კონტაქტი"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"წაიშალა რჩეულებიდან"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"დაბრუნება"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"დარეკვა <xliff:g id="NUMBER">%s</xliff:g>-ზე"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"კონტაქტებში დამატება"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"ზარების სრული ისტორიის ნახვა"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> ახალი გაცდენილი ზარი"</string>
     <string name="no_favorites" msgid="5212485868783382971">"რჩეულები და ხშირი კონაქტები\nაქ გამოჩნდება.\nასე რომ, დაიწყეთ რეკვა."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"შეეხეთ სურათს ყველა ნომრის სანახავად, ან შეეხეთ და დააყოვნეთ მიმდევრობის შესაცვლელად"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"დახურვა"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"ამოშლა"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"სწრაფი აკრეფა"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ყველა კონტაქტი"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"გადარეკვა"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"წაშლა"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"მოსმენა"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"გამოტოვებული ზარი <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ისგან, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"პასუხი <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ის ზარზე, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"ზარი <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-თან, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ზე გადარეკვა"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ის ხმოვანი ფოსტის მოსმენა"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ის ზარის ჩანაწერის წაშლა"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"ზარის აღრიცხვის ჩანაწერის წაშლა."</string>
 </resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
deleted file mode 100644
index 4d6f74e..0000000
--- a/res/values-ka/strings.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2012 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
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="8490255569343340580">"დარეკვა"</string>
-    <string name="launcherDialer" msgid="8636288196618486553">"ტელეფონი"</string>
-    <string name="dialerIconLabel" msgid="6500826552823403796">"ტელეფონი"</string>
-    <string name="recentCallsIconLabel" msgid="1419116422359067949">"ზარების ჟურნალი"</string>
-    <string name="menu_sendTextMessage" msgid="6937343460284499306">"ტექსტური შეტყობინების გაგზავნა"</string>
-    <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g>-თან დარეკვა"</string>
-    <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ნომრის რედაქტირება დარეკვამდე"</string>
-    <string name="recentCalls_addToContact" msgid="1429899535546487008">"კონტაქტებში დამატება"</string>
-    <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"ზარების ჟურნალიდან ამოღება"</string>
-    <string name="recentCalls_deleteAll" msgid="6352364392762163704">"ზარების ჟურნალის წაშლა"</string>
-    <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ხმოვანი ფოსტის წაშლა"</string>
-    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ხმოვანი ფოსტის გაზიარება"</string>
-    <string name="recentCalls_empty" msgid="247053222448663107">"ზარების ჟურნალი ცარიელია."</string>
-    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"გსურთ ზარების ჟურნალის წაშლა?"</string>
-    <string name="clearCallLogConfirmation" msgid="5043563133171583152">"ყველა თქვენი ზარის ჩანაწერი წაიშლება."</string>
-    <string name="clearCallLogProgress_title" msgid="8365943000154295771">"ზარების ჟურნალი იშლება…"</string>
-  <plurals name="notification_voicemail_title">
-    <item quantity="one" msgid="1746619685488504230">"ხმოვანი ფოსტა"</item>
-    <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> ხმოვანი ფოსტა"</item>
-  </plurals>
-    <string name="notification_action_voicemail_play" msgid="6113133136977996863">"დაკვრა"</string>
-    <string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
-    <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"ახალი ხმოვანი ფოსტა <xliff:g id="CALLER">%1$s</xliff:g>-ისგან"</string>
-    <string name="voicemail_playback_error" msgid="1811242131549854624">"ხმოვანი ფოსტის მოსმენა ვერ მოხერხდა."</string>
-    <string name="voicemail_buffering" msgid="738287747618697097">"ბუფერიზაცია…"</string>
-    <string name="voicemail_fetching_content" msgid="877911315738258780">"ხმოვანი ფოსტის მიღება…"</string>
-    <string name="voicemail_fetching_timout" msgid="6691792377574905201">"ხმოვანი ფოსტის მიღება ვერ მოხერხდა."</string>
-    <string name="call_log_voicemail_header" msgid="3945407886667089173">"მხოლოდ ზარები ხმოვანი ფოსტით"</string>
-    <string name="call_log_incoming_header" msgid="2787722299753674684">"მხოლოდ შემომავალი ზარები"</string>
-    <string name="call_log_outgoing_header" msgid="761009180766735769">"მხოლოდ გამავალი ზარები"</string>
-    <string name="call_log_missed_header" msgid="8017148056610855956">"მხოლოდ გამოტოვებული ზარები"</string>
-    <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"ხმოვანი ფოსტის სერვერთან დაკავშირება შეუძლებელია."</string>
-    <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"ხმ. ფოსტის სერვერთან კავშირი არ არის. ახალი ხმ. ფოსტა იცდის."</string>
-    <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"თქვენი ხმოვანი ფოსტის პარამეტრების დაყენება."</string>
-    <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"აუდიო მიუწვდომელია."</string>
-    <string name="voicemail_status_action_configure" msgid="8671796489912239589">"კონფიგურაცია"</string>
-    <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ხმოვან ფოსტასთან დაკავშირება"</string>
-    <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ყველაზე დაბალი სიჩქარე"</string>
-    <string name="voicemail_speed_slower" msgid="1508601287347216244">"დაბალი სიჩქარე"</string>
-    <string name="voicemail_speed_normal" msgid="9033988544627228892">"საშუალო სიჩქარე"</string>
-    <string name="voicemail_speed_faster" msgid="2019965121475935488">"დიდი სიჩქარე"</string>
-    <string name="voicemail_speed_fastest" msgid="5758712343491183292">"უდიდესი სიჩქარე"</string>
-    <string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>-ში"</string>
-    <string name="sms_disambig_title" msgid="5846266399240630846">"ნომრის შერჩევა"</string>
-    <string name="call_disambig_title" msgid="4392886850104795739">"ნომრის შერჩევა"</string>
-    <string name="make_primary" msgid="5829291915305113983">"დაიმახსოვრე ეს არჩევანი"</string>
-    <string name="description_image_button_one" msgid="1740638037139856139">"ერთი"</string>
-    <string name="description_image_button_two" msgid="5882638439003731308">"ორი"</string>
-    <string name="description_image_button_three" msgid="8709731759376015180">"სამი"</string>
-    <string name="description_image_button_four" msgid="3530239685642246130">"ოთხი"</string>
-    <string name="description_image_button_five" msgid="1182465427501188413">"ხუთი"</string>
-    <string name="description_image_button_six" msgid="2093656269261415475">"ექვსი"</string>
-    <string name="description_image_button_seven" msgid="2450357020447676481">"შვიდი"</string>
-    <string name="description_image_button_eight" msgid="6969435115163287801">"რვა"</string>
-    <string name="description_image_button_nine" msgid="7857248695662558323">"ცხრა"</string>
-    <string name="description_image_button_star" msgid="3365919907520767866">"ვარსკვლავი"</string>
-    <string name="description_image_button_zero" msgid="4133108949401820710">"ნული"</string>
-    <string name="description_image_button_pound" msgid="3039765597595889230">"გირვანქა"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"ხმოვანი ფოსტა"</string>
-    <string name="description_search_button" msgid="3660807558587384889">"ძიება"</string>
-    <string name="description_dial_button" msgid="1274091017188142646">"დარეკვა"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"უკუშლა"</string>
-    <string name="description_digits_edittext" msgid="8760207516497016437">"ასაკრეფი ნომერი"</string>
-    <string name="action_menu_call_history_description" msgid="9018442816219748968">"საუბრის ისტორია"</string>
-    <string name="action_menu_overflow_description" msgid="2303272250613084574">"სხვა პარამეტრები"</string>
-    <string name="action_menu_dialpad_button" msgid="1425910318049008136">"ციფერბლატი"</string>
-    <string name="menu_copy" msgid="6108677035381940698">"კოპირება"</string>
-    <string name="menu_show_outgoing_only" msgid="1965570298133301970">"მხოლოდ გამავალის ჩვენება"</string>
-    <string name="menu_show_incoming_only" msgid="7534206815238877417">"მხოლოდ შემომავალის ჩვენება"</string>
-    <string name="menu_show_missed_only" msgid="154473166059743996">"მხოლოდ გამოტოვებულის ჩვენება"</string>
-    <string name="menu_show_voicemails_only" msgid="1898421289561435703">"მხოლოდ ხმოვანი ფოსტის ჩვენება"</string>
-    <string name="menu_show_all_calls" msgid="7560347482073345885">"ყველა ზარის ჩვენება"</string>
-    <string name="add_2sec_pause" msgid="9214012315201040129">"ორწამიანი პაუზის დამატება"</string>
-    <string name="add_wait" msgid="3360818652790319634">"ლოდინის დამატება"</string>
-    <string name="call_settings" msgid="7666474782093693667">"პარამეტრები"</string>
-    <string name="menu_newContact" msgid="1209922412763274638">"ახალი კონტაქტი"</string>
-    <string name="callDetailTitle" msgid="5340227785196217938">"ზარის დეტალები"</string>
-    <string name="toast_call_detail_error" msgid="7200975244804730096">"მოთხოვნილი ზარის დეტალების წაკითხვა ვერ მოხერხდა."</string>
-    <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ტონალური კლავიატურის გამოყენება"</string>
-    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"მიმდინარე ზარზე დაბრუნება"</string>
-    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"ზარის დამატება"</string>
-    <string name="type_incoming" msgid="6502076603836088532">"შემომავალი ზარი"</string>
-    <string name="type_outgoing" msgid="343108709599392641">"გამავალი ზარი"</string>
-    <string name="type_missed" msgid="2720502601640509542">"გამოტოვებული ზარი"</string>
-    <string name="type_voicemail" msgid="5153139450668549908">"ხმოვანი ფოსტა"</string>
-    <string name="actionIncomingCall" msgid="6028930669817038600">"შემომავალი ზარები"</string>
-    <string name="description_call_log_play_button" msgid="651182125650429846">"ხმოვანი ფოსტის ჩართვა"</string>
-    <string name="description_call_log_incoming_call" msgid="4485427487637250143">"შემომავალი ზარი"</string>
-    <string name="description_call_log_outgoing_call" msgid="604831756853471658">"გამავალი ზარი"</string>
-    <string name="description_call_log_missed_call" msgid="2242805209983708825">"გამოტოვებული ზარი"</string>
-    <string name="description_call_log_voicemail" msgid="4600798771975158948">"ხმოვანი ფოსტა"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"კონტაქტის დამატება"</string>
-    <string name="description_view_contact" msgid="5205669345700598415">"კონტაქტის <xliff:g id="NAME">%1$s</xliff:g> ნახვა"</string>
-    <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g>-თან დარეკვა"</string>
-    <string name="description_send_text_message" msgid="7803126439934046891">"ტესქტური შეტყობინების გაგზავნა <xliff:g id="NAME">%1$s</xliff:g>-ისთვის"</string>
-    <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"მოსასმენი ხმოვანი ფოსტა"</string>
-    <string name="description_start_voice_search" msgid="520539488194946012">"ხმოვანი ძიების დაწყება"</string>
-    <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
-    <string name="menu_callNumber" msgid="997146291983360266">"დარეკვა <xliff:g id="NUMBER">%s</xliff:g>-ზე"</string>
-    <string name="unknown" msgid="740067747858270469">"უცნობი"</string>
-    <string name="voicemail" msgid="3851469869202611441">"ხმოვანი ფოსტა"</string>
-    <string name="private_num" msgid="6374339738119166953">"კერძო ნომერი"</string>
-    <string name="payphone" msgid="4864313342828942922">"საზოგადოებრივი ტელეფონი"</string>
-    <string name="dialerKeyboardHintText" msgid="5401660096579787344">"კლავიატურის გამოყენება დასარეკად"</string>
-    <string name="dialerDialpadHintText" msgid="5824490365898349041">"დარეკეთ ზარის დასამატებლად"</string>
-    <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> წთ <xliff:g id="SECONDS">%s</xliff:g> წმ"</string>
-    <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"ზარი ვერ განხორციელდა"</string>
-    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ხმოვანი ფოსტის დასაყენებლად გადადით მენიუს &gt; პარამეტრებზე."</string>
-    <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ხმოვან ფოსტასთან დასაკავშირებლად პირველ რიგში გამორთეთ თვითმფრინავის რეჟიმი."</string>
-    <string name="contact_list_loading" msgid="5488620820563977329">"იტვირთება…"</string>
-    <string name="imei" msgid="3045126336951684285">"IMEI"</string>
-    <string name="meid" msgid="6210568493746275750">"MEID"</string>
-    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"იტვირთება SIM ბარათიდან…"</string>
-    <string name="simContacts_title" msgid="27341688347689769">"SIM ბარათის კონტაქტები"</string>
-    <string name="add_contact_not_available" msgid="1419207765446461366">"ამ ფუნქციის გამოსაყენებლად ხელახლა გააქტიურეთ აპლიკაცია „ხალხი“."</string>
-    <string name="dialer_hint_find_contact" msgid="9190419749917566623">"შეიყვანეთ სახელი, ან ტელეფონი"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"ყველა"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"გამოტოვებული"</string>
-    <string name="recentMissed_empty" msgid="5427113551557296665">"ბოლო დროის ზარები არ არის."</string>
-    <string name="recentVoicemails_empty" msgid="5163114119598014048">"ბოლო დროის ხმოვანი ფოსტა არ არის."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"ყველა კონტაქტის ჩვენება"</string>
-    <string name="show_favorites_only" msgid="5520072531022614595">"მხოლოდ რჩეულების ჩვენება"</string>
-    <string name="call_log_activity_title" msgid="4612824396355272023">"ისტორია"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
-    <string name="show_all_contacts_title" msgid="8395378484578221791">"ყველა კონტაქტი"</string>
-    <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ყველა კონტაქტი"</string>
-    <string name="favorite_hidden" msgid="4837366417440391323">"დამალულია რჩეულებიდან"</string>
-    <string name="favorite_hidden_undo" msgid="2508998611039406474">"დაბრუნება"</string>
-</resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index e0f890f..9f78231 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"ផ្កាយ"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"សូន្យ"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"ផោន"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"សារ​ជា​សំឡេង"</string>
     <string name="description_search_button" msgid="3660807558587384889">"ស្វែងរក"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"dial"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"លេខ​ដែល​ត្រូវ​ហៅ"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"ប្រវត្តិ​ហៅ"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"ជម្រើស​បន្ថែម"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"បង្ហាញ​តែ​ការ​ខកខាន​ទទួល"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"បង្ហាញ​តែ​សារ​ជា​សំឡេង"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"បង្ហាញ​ការ​ហៅ​ទាំងអស់"</string>
+    <string name="add_contact" msgid="8875804371377471164">"បន្ថែម​ទំនាក់ទំនង"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"បន្ថែម​ការ​ផ្អាក ២វិ."</string>
     <string name="add_wait" msgid="3360818652790319634">"បញ្ចូល​ការ​រង់ចាំ"</string>
     <string name="call_settings" msgid="7666474782093693667">"ការ​កំណត់"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"ការ​ហៅ​ចេញ"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"ខកខាន​ទទួល"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"សារ​ជា​សំឡេង"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"បន្ថែម​ទំនាក់ទំនង"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"មើល​ទំ​នាក់ទំនង <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"ហៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"ព័ត៌មាន​លម្អិត​ទំនាក់ទំនង​សម្រាប់ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"ព័ត៌មាន​លម្អិត​ការ​ហៅ"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"សារ​ជា​សំឡេង​ថ្មី។"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"ការ​ហៅ <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ។"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"ផ្ញើ​រ​សារ​អត្ថបទ​ទៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"សារ​ជា​សំឡេង​ដែល​មិន​បាន​ឮ"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"សម្អាត​ការ​ស្វែងរក"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"ចាប់ផ្ដើម​ស្វែងរក​ជា​សំឡេង"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"ហៅ <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"មិន​ស្គាល់"</string>
     <string name="voicemail" msgid="3851469869202611441">"សារ​ជា​សំឡេង"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"កំពុង​ផ្ទុក​ពី​ស៊ីម​កាត..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"ទំនាក់ទំនង​នៅ​ក្នុង​ស៊ីម​កាត"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"បើក​កម្មវិធី​ឡើងវិញ​ដើម្បី​ប្រើ​លក្ខណៈ​នេះ។"</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"ការ​ស្វែងរក​ជា​សំឡេង​មិន​អាច​ប្រើ​បាន។"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"មិន​អាច​ហៅ​បាន​ទេ​ ព្រោះ​កម្មវិធី​ទូរស័ព្ទ​ត្រូវ​បាន​បិទ។"</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"គ្មាន​សកម្មភាព​បាន​ដំឡើង​ ដើម្បី​គ្រប់គ្រង​សកម្មភាព​បាន​ជ្រើស។"</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"សូម​បញ្ចូល​ឈ្មោះ ឬ​លេខទូរស័ព្ទ"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"ទាំង​អស់"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"ខកខាន​ទទួល"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"មិន​មានការ​​ខកខាន​ទទួល​ថ្មី​ទេ។"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"គ្មាន​សារ​ជា​សំឡេង​ថ្មី​ទេ។"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"បង្ហាញ​ទំនាក់​ទំនង​ទាំងអស់"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"បង្ហាញ​តែ​​និយម​ប្រើ​ប៉ុណ្ណោះ"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"ប្រវត្តិ"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"ទាំង​អស់"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"ខកខាន​ទទួល"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"សារ​ជា​សំឡេង"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"ការ​ហៅ​រហ័ស"</string>
+    <string name="tab_recents" msgid="929949073851377206">"ថ្មីៗ"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"ទំនាក់ទំនង"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"ទំនាក់ទំនង​ទាំងអស់"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ទំនាក់ទំនង​ទាំងអស់"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"បាន​លុប​ចេញពី​ទំនាក់ទំនង​ដែល​និយម​ប្រើ"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"មិនធ្វើវិញ"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"ហៅ <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"បន្ថែម​ទៅ​ទំនាក់ទំនង"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"មើលប្រវត្តិហៅពេញលេញ"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"ខកខាន​ទទួល​ថ្មី <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="no_favorites" msgid="5212485868783382971">"ការ​និយម​ប្រើ &amp; ទំនាក់ទំនង​ដែល​អ្នក\nហៅ​ញឹកញាប់​នឹង​បង្ហាញ​នៅ​ទីនេះ។\nដូច្នេះ ចាប់ផ្ដើម​ហៅ។"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"ប៉ះ​រូបភាព ដើម្បី​មើល​លេខ​ទាំងអស់ ឬ​ចុច និង​សង្កត់​ដើម្បី​តម្រៀប​ឡើងវិញ"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"បដិសេធ"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"លុបចេញ"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"ការ​ហៅ​រហ័ស"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ទំនាក់ទំនង​ទាំងអស់"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"ហៅ​ទៅវិញ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"លុប"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ស្ដាប់"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"ខកខាន​ទទួល​ពី <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g> ។"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"បាន​ឆ្លើយតប​ការ​ហៅ​ពី <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g> ។"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"ហៅ​ទៅ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g> ។"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"ហៅ​ទៅ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> វិញ"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"ស្ដាប់​សារ​ជា​សំឡេង​ពី <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"លុប​ធាតុ​កំណត់ហេតុ​ហៅ​​សម្រាប់ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"បាន​លុប​ធាតុ​កំណត់​ហេតុ​ហៅ។"</string>
 </resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
deleted file mode 100644
index e5a9cd4..0000000
--- a/res/values-km/strings.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2012 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
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="8490255569343340580">"អ្នក​ហៅ"</string>
-    <string name="launcherDialer" msgid="8636288196618486553">"ទូរស័ព្ទ"</string>
-    <string name="dialerIconLabel" msgid="6500826552823403796">"ទូរស័ព្ទ"</string>
-    <string name="recentCallsIconLabel" msgid="1419116422359067949">"បញ្ជី​ហៅ"</string>
-    <string name="menu_sendTextMessage" msgid="6937343460284499306">"ផ្ញើ​សារ​អត្ថបទ"</string>
-    <string name="recentCalls_callNumber" msgid="1756372533999226126">"ហៅ <xliff:g id="NAME">%s</xliff:g>"</string>
-    <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"កែ​លេខ​មុន​ពេល​ហៅ"</string>
-    <string name="recentCalls_addToContact" msgid="1429899535546487008">"បន្ថែម​ទៅ​ទំនាក់ទំនង"</string>
-    <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"លុបចេញ​ពី​បញ្ជី​ហៅ"</string>
-    <string name="recentCalls_deleteAll" msgid="6352364392762163704">"សម្អាត​បញ្ជី​ហៅ"</string>
-    <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"លុប​សារ​ជា​សំឡេង"</string>
-    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ចែករំលែក​សារ​ជា​សំឡេង"</string>
-    <string name="recentCalls_empty" msgid="247053222448663107">"បញ្ជី​ហៅ​គឺ​ទទេ។"</string>
-    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"សម្អាត​បញ្ជី​ហៅ​?"</string>
-    <string name="clearCallLogConfirmation" msgid="5043563133171583152">"នឹង​លុប​កំណត់ត្រា​ហៅ​ទាំងអស់​របស់​អ្នក។"</string>
-    <string name="clearCallLogProgress_title" msgid="8365943000154295771">"កំពុង​សម្អាត​បញ្ជី​ហៅ..."</string>
-  <plurals name="notification_voicemail_title">
-    <item quantity="one" msgid="1746619685488504230">"សារ​ជា​សំឡេង"</item>
-    <item quantity="other" msgid="5513481419205061254">"សារ​ជា​សំឡេង <xliff:g id="COUNT">%1$d</xliff:g>"</item>
-  </plurals>
-    <string name="notification_action_voicemail_play" msgid="6113133136977996863">"ចាក់"</string>
-    <string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
-    <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"សារ​ជា​សំឡេង​ថ្មី​ពី <xliff:g id="CALLER">%1$s</xliff:g>"</string>
-    <string name="voicemail_playback_error" msgid="1811242131549854624">"មិន​អាច​ចាក់​សារ​ជា​សំឡេង។"</string>
-    <string name="voicemail_buffering" msgid="738287747618697097">"កំពុង​គណនា..."</string>
-    <string name="voicemail_fetching_content" msgid="877911315738258780">"កំពុង​ទៅ​យក​សារ​ជា​សំឡេង..."</string>
-    <string name="voicemail_fetching_timout" msgid="6691792377574905201">"មិន​អាច​ទៅ​យក​សារ​ជា​សំឡេង..."</string>
-    <string name="call_log_voicemail_header" msgid="3945407886667089173">"តែ​ការ​ហៅ​ជា​សារ​សំឡេង"</string>
-    <string name="call_log_incoming_header" msgid="2787722299753674684">"តែ​ការ​ហៅ​ចូល"</string>
-    <string name="call_log_outgoing_header" msgid="761009180766735769">"តែ​ការ​ហៅ​ចេញ​ប៉ុណ្ណោះ"</string>
-    <string name="call_log_missed_header" msgid="8017148056610855956">"តែ​លេខ​ខកខាន​ទទួល"</string>
-    <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"មិន​អាច​តភ្ជាប់​ទៅ​ម៉ាស៊ីន​មេ​សារ​ជា​សំឡេង។"</string>
-    <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"មិន​អាច​តភ្ជាប់​ទៅ​ម៉ាស៊ីន​មេ​សារ​ជា​សំឡេង។ សារ​ជា​សំឡេង​ថ្មី​កំពុង​រង់ចាំ។"</string>
-    <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"រៀបចំ​សារ​ជា​សំឡេង​របស់​អ្នក។"</string>
-    <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"មិន​មាន​សំឡេង។"</string>
-    <string name="voicemail_status_action_configure" msgid="8671796489912239589">"រៀបចំ"</string>
-    <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ហៅ​ជា​សារ​សំឡេង"</string>
-    <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ល្បឿន​យឺត​បំផុត"</string>
-    <string name="voicemail_speed_slower" msgid="1508601287347216244">"ល្បឿន​យឺត"</string>
-    <string name="voicemail_speed_normal" msgid="9033988544627228892">"ល្បឿន​ធម្មតា"</string>
-    <string name="voicemail_speed_faster" msgid="2019965121475935488">"ល្បឿន​លឿន"</string>
-    <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ល្បឿន​លឿន​បំផុត"</string>
-    <string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
-    <string name="sms_disambig_title" msgid="5846266399240630846">"ជ្រើស​លេខ"</string>
-    <string name="call_disambig_title" msgid="4392886850104795739">"ជ្រើស​លេខ"</string>
-    <string name="make_primary" msgid="5829291915305113983">"ចងចាំ​ជម្រើស​នេះ"</string>
-    <string name="description_image_button_one" msgid="1740638037139856139">"មួយ"</string>
-    <string name="description_image_button_two" msgid="5882638439003731308">"ពីរ"</string>
-    <string name="description_image_button_three" msgid="8709731759376015180">"បី"</string>
-    <string name="description_image_button_four" msgid="3530239685642246130">"បួន"</string>
-    <string name="description_image_button_five" msgid="1182465427501188413">"ប្រាំ"</string>
-    <string name="description_image_button_six" msgid="2093656269261415475">"ប្រាំមួយ"</string>
-    <string name="description_image_button_seven" msgid="2450357020447676481">"ប្រាំពីរ"</string>
-    <string name="description_image_button_eight" msgid="6969435115163287801">"ប្រាំបី"</string>
-    <string name="description_image_button_nine" msgid="7857248695662558323">"ប្រាំបួន"</string>
-    <string name="description_image_button_star" msgid="3365919907520767866">"ផ្កាយ"</string>
-    <string name="description_image_button_zero" msgid="4133108949401820710">"សូន្យ"</string>
-    <string name="description_image_button_pound" msgid="3039765597595889230">"ផោន"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"សារ​ជា​សំឡេង"</string>
-    <string name="description_search_button" msgid="3660807558587384889">"ស្វែងរក"</string>
-    <string name="description_dial_button" msgid="1274091017188142646">"dial"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
-    <string name="description_digits_edittext" msgid="8760207516497016437">"លេខ​ដែល​ត្រូវ​ហៅ"</string>
-    <string name="action_menu_call_history_description" msgid="9018442816219748968">"ប្រវត្តិ​ហៅ"</string>
-    <string name="action_menu_overflow_description" msgid="2303272250613084574">"ជម្រើស​បន្ថែម"</string>
-    <string name="action_menu_dialpad_button" msgid="1425910318049008136">"បន្ទះ​លេខ"</string>
-    <string name="menu_copy" msgid="6108677035381940698">"ចម្លង"</string>
-    <string name="menu_show_outgoing_only" msgid="1965570298133301970">"បង្ហាញ​តែ​ការ​ហៅ​ចេញ"</string>
-    <string name="menu_show_incoming_only" msgid="7534206815238877417">"បង្ហាញ​តែ​ការ​ហៅ​ចូល"</string>
-    <string name="menu_show_missed_only" msgid="154473166059743996">"បង្ហាញ​តែ​ការ​ខកខាន​ទទួល"</string>
-    <string name="menu_show_voicemails_only" msgid="1898421289561435703">"បង្ហាញ​តែ​សារ​ជា​សំឡេង"</string>
-    <string name="menu_show_all_calls" msgid="7560347482073345885">"បង្ហាញ​ការ​ហៅ​ទាំងអស់"</string>
-    <string name="add_2sec_pause" msgid="9214012315201040129">"បន្ថែម​ការ​ផ្អាក ២វិ."</string>
-    <string name="add_wait" msgid="3360818652790319634">"បញ្ចូល​ការ​រង់ចាំ"</string>
-    <string name="call_settings" msgid="7666474782093693667">"ការ​កំណត់"</string>
-    <string name="menu_newContact" msgid="1209922412763274638">"ទំនាក់ទំនង​ថ្មី"</string>
-    <string name="callDetailTitle" msgid="5340227785196217938">"ព័ត៌មាន​លម្អិត​នៃ​ការ​ហៅ"</string>
-    <string name="toast_call_detail_error" msgid="7200975244804730096">"មិន​អាច​អាន​ព័ត៌មាន​លម្អិត​សម្រាប់​ការ​ហៅ​បាន​ស្នើ។"</string>
-    <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ប្រើ​សំឡេង​ប៉ះ​បន្ទះ​លេខ"</string>
-    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"កំពុង​ត្រឡប់​ទៅកាន់​ការ​ហៅ"</string>
-    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"បន្ថែម​ការ​ហៅ"</string>
-    <string name="type_incoming" msgid="6502076603836088532">"ការ​ហៅ​ចូល"</string>
-    <string name="type_outgoing" msgid="343108709599392641">"ការ​ហៅ​ចេញ"</string>
-    <string name="type_missed" msgid="2720502601640509542">"ខកខាន​ទទួល"</string>
-    <string name="type_voicemail" msgid="5153139450668549908">"សារ​ជា​សំឡេង"</string>
-    <string name="actionIncomingCall" msgid="6028930669817038600">"ការ​ហៅ​ចូល"</string>
-    <string name="description_call_log_play_button" msgid="651182125650429846">"ចាក់​សារ​ជា​សំឡេង"</string>
-    <string name="description_call_log_incoming_call" msgid="4485427487637250143">"ការ​ហៅ​ចូល"</string>
-    <string name="description_call_log_outgoing_call" msgid="604831756853471658">"ការ​ហៅ​ចេញ"</string>
-    <string name="description_call_log_missed_call" msgid="2242805209983708825">"ខកខាន​ទទួល"</string>
-    <string name="description_call_log_voicemail" msgid="4600798771975158948">"សារ​ជា​សំឡេង"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"បន្ថែម​ទំនាក់ទំនង"</string>
-    <string name="description_view_contact" msgid="5205669345700598415">"មើល​ទំ​នាក់ទំនង <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_call" msgid="3443678121983852666">"ហៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_send_text_message" msgid="7803126439934046891">"ផ្ញើ​រ​សារ​អត្ថបទ​ទៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"សារ​ជា​សំឡេង​ដែល​មិន​បាន​ឮ"</string>
-    <string name="description_start_voice_search" msgid="520539488194946012">"ចាប់ផ្ដើម​ស្វែងរក​ជា​សំឡេង"</string>
-    <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
-    <string name="menu_callNumber" msgid="997146291983360266">"ហៅ <xliff:g id="NUMBER">%s</xliff:g>"</string>
-    <string name="unknown" msgid="740067747858270469">"មិន​ស្គាល់"</string>
-    <string name="voicemail" msgid="3851469869202611441">"សារ​ជា​សំឡេង"</string>
-    <string name="private_num" msgid="6374339738119166953">"លេខ​ឯកជន"</string>
-    <string name="payphone" msgid="4864313342828942922">"ទូរស័ព្ទ​ប្រើ​កាក់"</string>
-    <string name="dialerKeyboardHintText" msgid="5401660096579787344">"ប្រើ​ក្ដារ​ចុច ​ដើម្បី​ចុច​លេខ"</string>
-    <string name="dialerDialpadHintText" msgid="5824490365898349041">"ចុច​ដើម្បី​បន្ថែម​ការ​ហៅ"</string>
-    <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> នាទី <xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
-    <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"ការ​ហៅ​មិន​បាន​បញ្ជូន"</string>
-    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ដើម្បី​កំណត់​សារ​ជា​សំឡេង ចូល​ម៉ឺនុយ &gt; ការ​កំណត់។"</string>
-    <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ដើម្បី​ហៅ​សារ​ជា​សំឡេង ដំបូង​ត្រូវ​បិទ​របៀប​ពេល​ជិះ​យន្តហោះ។"</string>
-    <string name="contact_list_loading" msgid="5488620820563977329">"កំពុង​ផ្ទុក..."</string>
-    <string name="imei" msgid="3045126336951684285">"IMEI"</string>
-    <string name="meid" msgid="6210568493746275750">"MEID"</string>
-    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"កំពុង​ផ្ទុក​ពី​ស៊ីម​កាត..."</string>
-    <string name="simContacts_title" msgid="27341688347689769">"ទំនាក់ទំនង​នៅ​ក្នុង​ស៊ីម​កាត"</string>
-    <string name="add_contact_not_available" msgid="1419207765446461366">"បើក​កម្មវិធី​ឡើងវិញ​ដើម្បី​ប្រើ​លក្ខណៈ​នេះ។"</string>
-    <string name="dialer_hint_find_contact" msgid="9190419749917566623">"សូម​បញ្ចូល​ឈ្មោះ ឬ​ទូរស័ព្ទ"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"ទាំង​អស់"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"ខកខាន​ទទួល"</string>
-    <string name="recentMissed_empty" msgid="5427113551557296665">"មិន​មានការ​​ខកខាន​ទទួល​ថ្មី​ទេ។"</string>
-    <string name="recentVoicemails_empty" msgid="5163114119598014048">"គ្មាន​សារ​ជា​សំឡេង​ថ្មី​ទេ។"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"បង្ហាញ​ទំនាក់​ទំនង​ទាំងអស់"</string>
-    <string name="show_favorites_only" msgid="5520072531022614595">"បង្ហាញ​តែ​​និយម​ប្រើ​ប៉ុណ្ណោះ"</string>
-    <string name="call_log_activity_title" msgid="4612824396355272023">"ប្រវត្តិ"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
-    <string name="show_all_contacts_title" msgid="8395378484578221791">"ទំនាក់ទំនង​ទាំងអស់"</string>
-    <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ទំនាក់ទំនង​ទាំងអស់"</string>
-    <string name="favorite_hidden" msgid="4837366417440391323">"បាន​លាក់​ពី​ការ​និយម"</string>
-    <string name="favorite_hidden_undo" msgid="2508998611039406474">"មិនធ្វើវិញ"</string>
-</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index eed6a3b..d3c103e 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"별"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"0"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"#"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"음성사서함"</string>
     <string name="description_search_button" msgid="3660807558587384889">"검색"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"전화걸기"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"백스페이스"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"전화를 걸 번호"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"통화 기록"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"옵션 더보기"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"부재중 전화만 표시"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"음성사서함만 표시"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"모든 통화 표시"</string>
+    <string name="add_contact" msgid="8875804371377471164">"연락처 추가"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"2초 간 일시 정지 추가"</string>
     <string name="add_wait" msgid="3360818652790319634">"대기 시간 추가"</string>
     <string name="call_settings" msgid="7666474782093693667">"설정"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"발신 전화"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"부재중 전화"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"음성사서함"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"연락처 추가"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g>님의 연락처 보기"</string>
     <string name="description_call" msgid="3443678121983852666">"전화하기:<xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>의 연락처 세부정보"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"통화 세부정보"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"새로운 음성사서함이 있습니다."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"통화 횟수: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>번"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g>님에게 문자 메시지 보내기"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"듣지 않은 음성사서함"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"검색창 지우기"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"음성 검색 시작"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g>에 전화"</string>
     <string name="unknown" msgid="740067747858270469">"알 수 없음"</string>
     <string name="voicemail" msgid="3851469869202611441">"음성사서함"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM 카드에서 로딩 중..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM 카드 주소록"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"이 기능을 사용하려면 주소록 애플리케이션을 사용하도록 다시 설정하세요."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"음성검색을 사용할 수 없습니다."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"전화 애플리케이션을 사용 중지했으므로 전화를 걸 수 없습니다."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"선택한 작업을 처리할 수 있는 애플리케이션이 설치되지 않았습니다."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"이름 또는 전화번호 입력"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"전체"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"부재중 전화"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"최근 부재중 전화가 없습니다."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"최근 음성사서함이 없습니다."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"모든 연락처 표시"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"즐겨찾는 연락처만 표시"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"기록"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"전체"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"부재중 전화"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"음성사서함"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"단축 다이얼"</string>
+    <string name="tab_recents" msgid="929949073851377206">"최근"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"주소록"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"전체 주소록"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"전체 주소록"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"즐겨찾기에서 삭제됨"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"실행취소"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g>에 전화"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"주소록에 추가"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"전체 통화 기록 조회"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"새로운 부재중 전화 <xliff:g id="NUMBER">%s</xliff:g>건"</string>
     <string name="no_favorites" msgid="5212485868783382971">"자주 전화하는 연락처가\n여기에 표시됩니다.\n전화해 보세요."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"이미지를 탭하여 모든 번호를 확인하거나 길게 눌러 재정렬합니다."</string>
     <string name="description_dismiss" msgid="2146276780562549643">"닫기"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"삭제"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"단축 다이얼"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"모든 연락처"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"전화 걸기"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"삭제"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"듣기"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"부재중 전화: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"수신 전화: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"발신 전화: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>에 전화 걸기"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> 음성사서함 듣기"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>의 통화 기록 항목 삭제"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"통화 기록 항목이 삭제되었습니다."</string>
 </resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index 41e6525..07be5ba 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"ຕິດດາວ"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"ສູນ"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"ພາວ"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"ຂໍ້ຄວາມສຽງ"</string>
     <string name="description_search_button" msgid="3660807558587384889">"ຊອກຫາ"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"ແປ້ນໂທ"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"ໝາຍເລກທີ່ຈະໂທ"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"ປະຫວັດການໂທ"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"ໂຕເລືອກເພີ່ມເຕີມ"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"ສະແດງສະເພາະສາຍບໍ່ໄດ້ຮັບ"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"ສະແດງສະເພາະຂໍ້ຄວາມສຽງ"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"ສະແດງການໂທທັງໝົດ"</string>
+    <string name="add_contact" msgid="8875804371377471164">"ເພີ່ມ​ລາຍ​ຊື່​ຜູ່​ຕິດ​ຕໍ່"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"ເພີ່ມການຂັ້ນເວລາ 2 ວິນາທີ"</string>
     <string name="add_wait" msgid="3360818652790319634">"ເພີ່ມການລໍຖ້າ"</string>
     <string name="call_settings" msgid="7666474782093693667">"ການຕັ້ງຄ່າ"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"ສາຍໂທອອກ"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"ຂໍ້ຄວາມສຽງ"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"ເພີ່ມລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່ <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"ໂທຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"ລາຍລະອຽດ​ລາຍຊື່​ຜູ່ຕິດຕໍ່​ສຳລັບ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"ລາຍລະອຽດ​ການໂທ"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"ຂໍ້ຄວາມ​ສຽງ​ໃໝ່."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ການໂທ."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"ສົ່ງຂໍ້ຄວາມຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"ຂໍ້ຄວາມສຽງທີ່ຍັງບໍ່ໄດ້ຟັງ"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"ລຶບ​ການ​ຊອກ​ຫາ"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"ເລີ່ມການຊອກຫາດ້ວຍສຽງ"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"ໂທ​ຫາ <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"ບໍ່ຮູ້ຈັກ"</string>
     <string name="voicemail" msgid="3851469869202611441">"ຂໍ້ຄວາມສຽງ"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"ກຳລັງໂຫລດຈາກ SIM card..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"ລາຍຊື່ຜູ່ຕິດຕໍ່ SIM card"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"ເປີດການນຳໃຊ້ແອັບພລິເຄຊັນ People ຄືນ ເພື່ອໃຊ້ຄຸນສົມບັດນີ້."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"ບໍ່ສາມາດນຳໃຊ້ການຊອກຫາດ້ວຍສຽງໄດ້."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"ບໍ່​ສາ​ມາດ​ໂທ​ໄດ​້​ເນື່ອງ​ຈາກ​ແອັບ​ພ​ລິ​ເຄ​ຊັນ​ໂທ​ລະ​ສັບ​ຖືກ​ປິດ​ການ​ນຳ​ໃຊ້​ໄວ້."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"​ບໍ່​ມີ​ຄຳ​ສັ່ງ​ທີ່​ຕິດ​ຕັ້ງ​ໄວ້​ທີ່​ໃຊ້​ຈັດ​ການ​ການ​ເຮັດ​ວຽກ​ທີ່​ເລືອກ​ໄດ້."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"ພິມຊື່ ຫຼເບີໂທລະສັບ"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"ທັງໝົດ"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"ບໍ່ມີສາຍທີ່ບໍ່ໄດ້ຮັບຫຼ້າສຸດ."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"ບໍ່​ມີຂໍ້ຄວາມສຽງຫຼ້າສຸດ​."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"ສະແດງລາຍຊື່ທັງໝົດ"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"ສະ​ແດງ​ສະເພາະລາຍການທີ່ນິຍົມເທົ່ານັ້ນ"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"ປະຫວັດການໂທ"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"ທັງໝົດ"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"ຂໍ້ຄວາມສຽງ"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"​ໂທ​ດ່ວນ"</string>
+    <string name="tab_recents" msgid="929949073851377206">"ຫາ​ກໍ​ໃຊ້"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"ລາຍ​ຊື່​ຜູ່​ຕິດ​ຕໍ່"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"ລຶບອອກຈາກລາຍການທີ່ມັກແລ້ວ"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"ຍົກເລີກ"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"ໂທ​ຫາ <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"ເພີ່ມໃສ່ລາຍຊື່ຕິດຕໍ່"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"ເບິ່ງ​ປະ​ຫວັດ​ການ​ໂທ​ແບບເຕັມ"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> ສາຍທີ່ບໍ່ໄດ້ຮັບໃໝ່"</string>
     <string name="no_favorites" msgid="5212485868783382971">"ລາຍງານທີ່ມັກ &amp; ລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ທ່ານ\nໂທຫາເລື້ອຍໆ ຈະປາກົດຢູ່ບ່ອນນີ້.\nສະນັ້ນ, ທ່ານສາມາດເລີ່ມໂທໄດ້."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"ແຕະຮູບ​ພາບ​ເພື່ອເບິ່ງຈໍານວນຮູບພາບທັງໝົດ ຫຼືແຕະຄ້າງໄວ້ເພື່ອຈັດຮຽງໃໝ່"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"ເຂົ້າໃຈແລ້ວ"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"​ລຶບ​ອອກ"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"​ໂທ​ດ່ວນ"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"​ລາຍ​ຊື່​ຜູ່​ຕິດ​ຕໍ່​ທັງ​ໝົດ"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"ໂທ​ກັບ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ລຶບ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ຟັງ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"ສາຍ​ທີ່ບໍ່​ໄດ້​ຮັບ​ຈາກ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"ສາຍ​ທີ່​ໄດ້​ຮັບ​ຈາກ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"ໂທ​ຫາ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"ໂທ​ກັບ​ຫາ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"​ຟັງ​ຂໍ້​ຄວາມ​ສຽງ​ຈາກ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"ລຶບ​ບັນ​ທຶກ​ການ​ໂທ​​ຫາ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"​ລຶບ​ບັນ​ທຶກ​ການ​ໂທ​ແລ້ວ."</string>
 </resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
deleted file mode 100644
index a9310f7..0000000
--- a/res/values-lo/strings.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2012 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
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="8490255569343340580">"ແປ້ນໂທລະສັບ"</string>
-    <string name="launcherDialer" msgid="8636288196618486553">"ໂທລະສັບ"</string>
-    <string name="dialerIconLabel" msgid="6500826552823403796">"ໂທລະສັບ"</string>
-    <string name="recentCallsIconLabel" msgid="1419116422359067949">"ບັນທຶກການໂທ"</string>
-    <string name="menu_sendTextMessage" msgid="6937343460284499306">"ສົ່ງຂໍ້ຄວາມ"</string>
-    <string name="recentCalls_callNumber" msgid="1756372533999226126">"ໂທຫາ <xliff:g id="NAME">%s</xliff:g>"</string>
-    <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ແກ້ໄຂເບີກ່ອນໂທ"</string>
-    <string name="recentCalls_addToContact" msgid="1429899535546487008">"ເພີ່ມໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"ລຶບອອກຈາກບັນທຶກການໂທ"</string>
-    <string name="recentCalls_deleteAll" msgid="6352364392762163704">"ລຶບບັນທຶກການໂທ"</string>
-    <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ລຶບຂໍ້ຄວາມສຽງ"</string>
-    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ແບ່ງປັນຂໍ້ຄວາມສຽງ"</string>
-    <string name="recentCalls_empty" msgid="247053222448663107">"ບັນທຶກການໂທຫວ່າງເປົ່າ."</string>
-    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"ລຶບບັນທຶກການໂທ?"</string>
-    <string name="clearCallLogConfirmation" msgid="5043563133171583152">"ບັນທຶກການໂທທັງໝົດຂອງທ່ານຈະຖືກລຶບອອກ."</string>
-    <string name="clearCallLogProgress_title" msgid="8365943000154295771">"ກຳລັງລຶກບັນທຶກການໂທ..."</string>
-  <plurals name="notification_voicemail_title">
-    <item quantity="one" msgid="1746619685488504230">"ຂໍ້ຄວາມສຽງ"</item>
-    <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> ຂໍ້ຄວາມສຽງ"</item>
-  </plurals>
-    <string name="notification_action_voicemail_play" msgid="6113133136977996863">"ຫຼິ້ນ"</string>
-    <string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
-    <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"ບໍ່ມີຂໍ້ຄວາມສຽງຈາກ <xliff:g id="CALLER">%1$s</xliff:g>"</string>
-    <string name="voicemail_playback_error" msgid="1811242131549854624">"ບໍ່ສາມາດເປີດຂໍ້ຄວາມສຽງໄດ້."</string>
-    <string name="voicemail_buffering" msgid="738287747618697097">"ກຳລັງດຶງຂໍ້ມູນມາກຽມ..."</string>
-    <string name="voicemail_fetching_content" msgid="877911315738258780">"ກຳລັງດຶງຂໍ້ຄວາມສຽງ..."</string>
-    <string name="voicemail_fetching_timout" msgid="6691792377574905201">"ບໍ່ສາມາດດຶງຂໍ້ຄວາມສຽງໄດ້."</string>
-    <string name="call_log_voicemail_header" msgid="3945407886667089173">"ເບີໂທຂໍ້ຄວາມສຽງເທົ່ານັ້ນ"</string>
-    <string name="call_log_incoming_header" msgid="2787722299753674684">"ສາຍໂທເຂົ້າເທົ່ານັ້ນ"</string>
-    <string name="call_log_outgoing_header" msgid="761009180766735769">"ເບີໂທອອກເທົ່ານັ້ນ"</string>
-    <string name="call_log_missed_header" msgid="8017148056610855956">"ສະເພາະສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
-    <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"ບໍ່ສາມາດເຊື່ອມຕໍ່ຫາເຊີບເວີຂໍ້ຄວາມສຽງ."</string>
-    <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"ບໍ່ສາມາດເຊື່ອມຕໍ່ຫາເຊີບເວີຂໍ້ຄວາມສຽງໄດ້. ມີຂໍ້ຄວາມສຽງໃໝ່ກຳລັງລໍຖ້າ."</string>
-    <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"ຕັ້ງຄ່າຂໍ້ຄວາມສຽງຂອງທ່ານ"</string>
-    <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"ບໍ່ມີສຽງ."</string>
-    <string name="voicemail_status_action_configure" msgid="8671796489912239589">"ຕັ້ງຄ່າ"</string>
-    <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ໂທຫາເບີຂໍ້ຄວາມສຽງ"</string>
-    <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ຊ້າທີ່ສຸດ"</string>
-    <string name="voicemail_speed_slower" msgid="1508601287347216244">"ຊ້າ"</string>
-    <string name="voicemail_speed_normal" msgid="9033988544627228892">"ປົກກະຕິ"</string>
-    <string name="voicemail_speed_faster" msgid="2019965121475935488">"ໄວ"</string>
-    <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ໄວທີ່ສຸດ"</string>
-    <string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
-    <string name="sms_disambig_title" msgid="5846266399240630846">"ເລືອກເບີໂທ"</string>
-    <string name="call_disambig_title" msgid="4392886850104795739">"ເລືອກເບີໂທ"</string>
-    <string name="make_primary" msgid="5829291915305113983">"ຈື່ການເລືອກນີ້"</string>
-    <string name="description_image_button_one" msgid="1740638037139856139">"ນຶ່ງ"</string>
-    <string name="description_image_button_two" msgid="5882638439003731308">"ສອງ"</string>
-    <string name="description_image_button_three" msgid="8709731759376015180">"ສາມ"</string>
-    <string name="description_image_button_four" msgid="3530239685642246130">"ສີ່"</string>
-    <string name="description_image_button_five" msgid="1182465427501188413">"ຫ້າ"</string>
-    <string name="description_image_button_six" msgid="2093656269261415475">"ຫົກ"</string>
-    <string name="description_image_button_seven" msgid="2450357020447676481">"ເຈັດ"</string>
-    <string name="description_image_button_eight" msgid="6969435115163287801">"ແປດ"</string>
-    <string name="description_image_button_nine" msgid="7857248695662558323">"ເກົ້າ"</string>
-    <string name="description_image_button_star" msgid="3365919907520767866">"ຕິດດາວ"</string>
-    <string name="description_image_button_zero" msgid="4133108949401820710">"ສູນ"</string>
-    <string name="description_image_button_pound" msgid="3039765597595889230">"ພາວ"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"ຂໍ້ຄວາມສຽງ"</string>
-    <string name="description_search_button" msgid="3660807558587384889">"ຊອກຫາ"</string>
-    <string name="description_dial_button" msgid="1274091017188142646">"ແປ້ນໂທ"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
-    <string name="description_digits_edittext" msgid="8760207516497016437">"ໝາຍເລກທີ່ຈະໂທ"</string>
-    <string name="action_menu_call_history_description" msgid="9018442816219748968">"ປະຫວັດການໂທ"</string>
-    <string name="action_menu_overflow_description" msgid="2303272250613084574">"ໂຕເລືອກເພີ່ມເຕີມ"</string>
-    <string name="action_menu_dialpad_button" msgid="1425910318049008136">"ປຸ່ມໂທລະສັບ"</string>
-    <string name="menu_copy" msgid="6108677035381940698">"ສຳເນົາ"</string>
-    <string name="menu_show_outgoing_only" msgid="1965570298133301970">"ສະແດງສະເພາະສາຍໂທອອກ"</string>
-    <string name="menu_show_incoming_only" msgid="7534206815238877417">"ສະແດງສະເພາະສາຍໂທເຂົ້າ"</string>
-    <string name="menu_show_missed_only" msgid="154473166059743996">"ສະແດງສະເພາະສາຍບໍ່ໄດ້ຮັບ"</string>
-    <string name="menu_show_voicemails_only" msgid="1898421289561435703">"ສະແດງສະເພາະຂໍ້ຄວາມສຽງ"</string>
-    <string name="menu_show_all_calls" msgid="7560347482073345885">"ສະແດງການໂທທັງໝົດ"</string>
-    <string name="add_2sec_pause" msgid="9214012315201040129">"ເພີ່ມການຂັ້ນເວລາ 2 ວິນາທີ"</string>
-    <string name="add_wait" msgid="3360818652790319634">"ເພີ່ມການລໍຖ້າ"</string>
-    <string name="call_settings" msgid="7666474782093693667">"ການຕັ້ງຄ່າ"</string>
-    <string name="menu_newContact" msgid="1209922412763274638">"ສ້າງລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່"</string>
-    <string name="callDetailTitle" msgid="5340227785196217938">"ລາຍລະອຽດການໂທ"</string>
-    <string name="toast_call_detail_error" msgid="7200975244804730096">"ບໍ່ສາມາດອ່ານລາຍລະອຽດຂອງສາຍທີ່ຕ້ອງການໄດ້."</string>
-    <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ໃຊ້ປຸ່ມກົດສັນຍານສຽງ"</string>
-    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"ກັບໄປການໂທທີ່ກຳລັງດຳເນີນຢູ່"</string>
-    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"ເພີ່ມການໂທ"</string>
-    <string name="type_incoming" msgid="6502076603836088532">"ສາຍໂທເຂົ້າ"</string>
-    <string name="type_outgoing" msgid="343108709599392641">"ສາຍໂທອອກ"</string>
-    <string name="type_missed" msgid="2720502601640509542">"ສາຍບໍ່ໄດ້ຮັບ"</string>
-    <string name="type_voicemail" msgid="5153139450668549908">"ຂໍ້ຄວາມສຽງ"</string>
-    <string name="actionIncomingCall" msgid="6028930669817038600">"ສາຍໂທເຂົ້າ"</string>
-    <string name="description_call_log_play_button" msgid="651182125650429846">"ເປີດຂໍ້ຄວາມສຽງ"</string>
-    <string name="description_call_log_incoming_call" msgid="4485427487637250143">"ສາຍໂທເຂົ້າ"</string>
-    <string name="description_call_log_outgoing_call" msgid="604831756853471658">"ສາຍໂທອອກ"</string>
-    <string name="description_call_log_missed_call" msgid="2242805209983708825">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
-    <string name="description_call_log_voicemail" msgid="4600798771975158948">"ຂໍ້ຄວາມສຽງ"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"ເພີ່ມລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="description_view_contact" msgid="5205669345700598415">"ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່ <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_call" msgid="3443678121983852666">"ໂທຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_send_text_message" msgid="7803126439934046891">"ສົ່ງຂໍ້ຄວາມຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"ຂໍ້ຄວາມສຽງທີ່ຍັງບໍ່ໄດ້ຟັງ"</string>
-    <string name="description_start_voice_search" msgid="520539488194946012">"ເລີ່ມການຊອກຫາດ້ວຍສຽງ"</string>
-    <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
-    <string name="menu_callNumber" msgid="997146291983360266">"ໂທ​ຫາ <xliff:g id="NUMBER">%s</xliff:g>"</string>
-    <string name="unknown" msgid="740067747858270469">"ບໍ່ຮູ້ຈັກ"</string>
-    <string name="voicemail" msgid="3851469869202611441">"ຂໍ້ຄວາມສຽງ"</string>
-    <string name="private_num" msgid="6374339738119166953">"ເບີສ່ວນໂຕ"</string>
-    <string name="payphone" msgid="4864313342828942922">"ໂທລະສັບສາທາລະນະ"</string>
-    <string name="dialerKeyboardHintText" msgid="5401660096579787344">"ໃຊ້ແປ້ນພິມເພື່ອກົດໂທ"</string>
-    <string name="dialerDialpadHintText" msgid="5824490365898349041">"ກົດໝາຍເລກເພື່ອເພີ່ມການໂທ"</string>
-    <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> ນທ <xliff:g id="SECONDS">%s</xliff:g> ວິ"</string>
-    <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"ສາຍບໍ່ໄດ້ສົ່ງ"</string>
-    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ເພື່ອຕັ້ງຄ່າຂໍ້ຄວາມສຽງ ໃຫ້ໄປທີ່ ເມນູ &gt; ການຕັ້ງຄ່າ."</string>
-    <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ເພື່ອໂທຫາເບີຂໍ້ຄວາມສຽງ ທ່ານຕ້ອງປິດໂໝດຢູ່ເທິງຍົນກ່ອນ."</string>
-    <string name="contact_list_loading" msgid="5488620820563977329">"ກຳລັງໂຫລດ..."</string>
-    <string name="imei" msgid="3045126336951684285">"IMEI"</string>
-    <string name="meid" msgid="6210568493746275750">"MEID"</string>
-    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"ກຳລັງໂຫລດຈາກ SIM card..."</string>
-    <string name="simContacts_title" msgid="27341688347689769">"ລາຍຊື່ຜູ່ຕິດຕໍ່ SIM card"</string>
-    <string name="add_contact_not_available" msgid="1419207765446461366">"ເປີດການນຳໃຊ້ແອັບພລິເຄຊັນ People ຄືນ ເພື່ອໃຊ້ຄຸນສົມບັດນີ້."</string>
-    <string name="dialer_hint_find_contact" msgid="9190419749917566623">"ພິມ​ຊື່ ​ຫຼື​ເບີໂທລະ​ສັບ"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"ທັງໝົດ"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
-    <string name="recentMissed_empty" msgid="5427113551557296665">"ບໍ່ມີສາຍທີ່ບໍ່ໄດ້ຮັບຫຼ້າສຸດ."</string>
-    <string name="recentVoicemails_empty" msgid="5163114119598014048">"ບໍ່​ມີຂໍ້ຄວາມສຽງຫຼ້າສຸດ​."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"ສະແດງລາຍຊື່ທັງໝົດ"</string>
-    <string name="show_favorites_only" msgid="5520072531022614595">"ສະ​ແດງ​ສະເພາະລາຍການທີ່ນິຍົມເທົ່ານັ້ນ"</string>
-    <string name="call_log_activity_title" msgid="4612824396355272023">"ປະຫວັດການໂທ"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
-    <string name="show_all_contacts_title" msgid="8395378484578221791">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
-    <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
-    <string name="favorite_hidden" msgid="4837366417440391323">"ຖືກເຊື່ອງຈາກລາຍການທີ່ມັກແລ້ວ"</string>
-    <string name="favorite_hidden_undo" msgid="2508998611039406474">"ຍົກເລີກ"</string>
-</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index f934435..90a531e 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"žvaigždutė"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nulis"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"svaras"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"balso paštas"</string>
     <string name="description_search_button" msgid="3660807558587384889">"ieškoti"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"rinkti numerį"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"naikinimo klavišas"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"renkamas numeris"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Skambučių istorija"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Daugiau parinkčių"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Rodyti tik praleistus"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Rodyti tik balso pšt. praneš."</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Rodyti visus skambučius"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Pridėti kontaktą"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Pridėti 2 sek. pauzę"</string>
     <string name="add_wait" msgid="3360818652790319634">"Pridėti laukimą"</string>
     <string name="call_settings" msgid="7666474782093693667">"Nustatymai"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Išsiunčiamasis skambutis"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Praleistas skambutis"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Balso paštas"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Pridėti kontaktą"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Žiūrėti kontaktą <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Skambinti <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Išsami kontaktinė informacija: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Išsami skambučio informacija"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Naujas balso pašto pranešimas."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"Skambučių: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Siųsti teksto pranešimą <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Neklausytas balso pašto pranešimas"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Išvalyti paiešką"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Pradėti paiešką balsu"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Skambinti <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Nežinomas"</string>
     <string name="voicemail" msgid="3851469869202611441">"Balso paštas"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Įkeliama iš SIM kortelės..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM kortelės adresatai"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Iš naujo įgalinti programą Žmonės, kad būtų galima naudoti šią funkciją."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Paieška balsu negalima."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Negalima skambinti telefonu, nes Telefono programa išjungta."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Nepasiekiama jokia įdiegta veikla pasirinktam veiksmui atlikti."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Įveskite vardą arba tel. nr."</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Visi"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Praleisti"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Nėra neseniai praleistų skambučių."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Nėra neseniai gauto balso pašto."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Rodyti visus kontaktus"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Rodyti tik mėgstamiausius"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Istorija"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Visi"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Praleisti"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Balso paštas"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Spartusis rinkimas"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Naujausi"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktai"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Visi kontaktai"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Visi kontaktai"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Pašalintas iš adresyno"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Anuliuoti"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Skambinti numeriu <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Pridėti prie kontaktų"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Visos skambučių istorijos peržiūra"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"Naujų praleistų skambučių: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Mėgstamiausieji ir kontaktai,\nkuriems dažnai skambinate, bus rodomi čia.\nTad pradėkite skambinti."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Palieskite vaizdą, kad pamatytumėte visus skaičius, arba paspauskite ir palaikykite, kad pakeistumėte tvarką"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Atsisakyti"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Pašalinti"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Spartusis rinkimas"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"VISI KONTAKTAI"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"ATSKAMBINTI"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"IŠTRINTI"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"KLAUSYTI"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Praleistas skambutis: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Atsakytas skambutis: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Atliktas skambutis: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Atskambinti <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Klausyti balso pašto nuo <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Ištrinti <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> skambučių žurnalo įrašą"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Skambučių žurnalo įrašas ištrintas."</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 197fcf9..6309952 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"zvaigznīte"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nulle"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"numura zīme"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"balss pasts"</string>
     <string name="description_search_button" msgid="3660807558587384889">"meklēt"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"sastādīt numuru"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"atpakaļatkāpe"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"sastādītais numurs"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Zvanu vēsture"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Vairāk opciju"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Rādīt tikai neatbildētos zvanus"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Rādīt tikai balss pasta ziņ."</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Rādīt visus zvanus"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Pievienot kontaktpersonu"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Pievienot 2 sekundes ilgu pauzi"</string>
     <string name="add_wait" msgid="3360818652790319634">"Pievienot gaidīšanu"</string>
     <string name="call_settings" msgid="7666474782093693667">"Iestatījumi"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Izejošs zvans"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Neatbildēts zvans"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Balss pasts"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Pievienot kontaktpersonu"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Skatīt kontaktpersonu <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Zvanīt šim: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Kontaktpersonas informācija: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Informācija par zvanu"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Jauns balss pasta ziņojums."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> zvani."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Sūtīt īsziņu šim: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nenoklausīti balss pasta ziņojumi"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Notīrīt meklēšanas lauku"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Sākt meklēšanu ar balsi"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Zvaniet: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Nezināms"</string>
     <string name="voicemail" msgid="3851469869202611441">"Balss pasts"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Notiek ielāde no SIM kartes..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Kontaktpersonas SIM kartē"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Lai izmantotu šo funkciju, atkārtoti iespējojiet lietojumprogrammu Personas."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Meklēšana ar balsi nav pieejama."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Nevar veikt tālruņa zvanu, jo lietojumprogramma Tālrunis tika atspējota."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Nav instalēta neviena lietojumprogramma, kurā varētu apstrādāt atlasīto darbību."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Ierakstiet vārdu vai tālr. nr."</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Visi"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Neatb."</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Nav nesenu neatbildēto zvanu."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Nav nesenu balss pasta ziņojumu."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Rādīt visas kontaktpersonas"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Rādīt tikai izlasi"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Vēsture"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Visi"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Neatb."</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Balss p."</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Ātrā izvēlne"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Pēdējie"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktpersonas"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Visas kontaktpersonas"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Visas kontaktpersonas"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Noņemts no izlases"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Atsaukt"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Zvaniet: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Pievienot kontaktpersonām"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Visas zvanu vēstures skatīšana"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"Jauni neatbildēti zvani: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Šeit tiks rādīta izlase un kontaktpersonas,\nkurām bieži zvanāt.\nVarat sākt zvanīšanu."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Pieskarieties attēlam, lai skatītu visus tālruņa numurus, vai pieskarieties un turiet, lai mainītu secību."</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Noraidīt"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Noņemt"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Ātrā izvēlne"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"VISAS KONTAKTPERSONAS"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"ATZVANĪT"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"DZĒST"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"KLAUSĪTIES"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Neatbildēts zvans no: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Atbildēts zvans no: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Izejošs zvans: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Atzvanīt: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Klausīties balss pasta ziņojumu no: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Dzēst zvanu žurnāla ierakstu par: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Zvanu žurnāla ieraksts ir izdzēsts."</string>
 </resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 18144a4..ee424fa 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"од"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"тэг"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"фунт"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"дуут шуудан"</string>
     <string name="description_search_button" msgid="3660807558587384889">"хайх"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"залгах"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"Ухраах"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"залгах дугаар"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Дуудлагын түүх"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Нэмэлт сонголтууд"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Зөвхөн аваагүй дуудлагуудыг харуулах"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Зөвхөн дуут шуудангуудыг харуулах"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Бүх дуудлагыг харуулах"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Харилцагч нэмэх"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"2-сек зогсолт нэмэх"</string>
     <string name="add_wait" msgid="3360818652790319634">"Хүлээлт нэмэх"</string>
     <string name="call_settings" msgid="7666474782093693667">"Тохиргоо"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Залгасан дуудлага"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Аваагүй дуудлага"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Дуут шуудан"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Харилцагч нэмэх"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> харилцагчийг харах"</string>
     <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> руу залгах"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-н харилцагчийн мэдээлэл"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Дуудлагын мэдээлэл"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Шинэ дуут шуудан."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> дуудлага."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g> руу зурвас илгээх"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Сонсоогүй дуут шуудан"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Хайлтыг цэвэрлэх"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Дуун хайлтыг эхлүүлэх"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> руу залгах"</string>
     <string name="unknown" msgid="740067747858270469">"Тодорхойгүй"</string>
     <string name="voicemail" msgid="3851469869202611441">"Дуут шуудан"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM картаас уншиж байна…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM картны харилцагчид"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Тус функцийг ашиглахын тулд People аппликешнийг дахин идэвхжүүлнэ үү."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Дуун хайлтыг ашиглах боломжгүй."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Утас аппликешныг идэвхгүйжүүлсэн тул утасны дуудлага хийх боломжгүй."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Сонгосон үйлдлийг гүйцэтгэх боломжтой суулгагдсан апп байхгүй байна."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Нэр эсвэл дугаарыг бичнэ үү"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Бүгд"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Аваагүй"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Саяхны аваагүй дуудлага алга байна."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Саяхны дуут шуудан байхгүй байна."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Бүх харилцагчдыг харуулах"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Зөвхөн дуртайнуудыг харуулах"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Түүх"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Бүгд"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Аваагүй"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Дуут шуудан"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Шуурхай залгах"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Саяхных"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Харилцагчид"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Бүх харилцагчид"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Бүх харилцагчид"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Дуртай жагсаалтаас хасав"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Буцаах"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> руу залгах"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Харилцагчдад нэмэх"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Дуудлагын түүхийг бүхэлд нь харах"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> шинэ аваагүй дуудлага"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Таны дуртай &amp; \nбайнга залгадаг харилцагчид\nэнд харагдах болно."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Бүх тоог харахын тулд зургийг товших буюу дахин захиалахын тулд дараад барина уу"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Хаах"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Хасах"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Шуурхай залгах"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"БҮХ ХАРИЛЦАГЧИД"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"БУЦААЖ ЗАЛГАХ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"УСТГАХ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"СОНСОХ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-н аваагүй дуудлага, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-н авсан дуудлага, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> руу залгасан дуудлага, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> руу буцаж залгах"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-н дуут шууданг сонсох"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-н дуудлагын бүртгэлийг устгах"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Дуудлагын бүртгэл устгагдсан."</string>
 </resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
deleted file mode 100644
index 8294eaa..0000000
--- a/res/values-mn/strings.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2012 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
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="8490255569343340580">"Залгагч"</string>
-    <string name="launcherDialer" msgid="8636288196618486553">"Утас"</string>
-    <string name="dialerIconLabel" msgid="6500826552823403796">"Утас"</string>
-    <string name="recentCallsIconLabel" msgid="1419116422359067949">"Дуудлагын жагсаалт"</string>
-    <string name="menu_sendTextMessage" msgid="6937343460284499306">"Зурвас илгээх"</string>
-    <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> руу залгах"</string>
-    <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Дуудлага хийхийн өмнө дугаарыг засах"</string>
-    <string name="recentCalls_addToContact" msgid="1429899535546487008">"Харилцагчдад нэмэх"</string>
-    <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Дуудлагын жагсаалтаас хасах"</string>
-    <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Дуудлагын жагсаалтыг устгах"</string>
-    <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Дуут шууданг устгах"</string>
-    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Дуут шууданг хуваалцах"</string>
-    <string name="recentCalls_empty" msgid="247053222448663107">"Дуудлагын жагсаалт хоосон байна."</string>
-    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Дуудлагын жагсаалтыг устгах уу?"</string>
-    <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Таны бүх дуудлагын бичлэгүүд устах болно."</string>
-    <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Дуудлагын жагсаалтыг устгаж байна…"</string>
-  <plurals name="notification_voicemail_title">
-    <item quantity="one" msgid="1746619685488504230">"Дуут шуудан"</item>
-    <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> Дуут шуудан"</item>
-  </plurals>
-    <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Тоглуулах"</string>
-    <string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
-    <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g>-с ирсэн шинэ дуут шуудан"</string>
-    <string name="voicemail_playback_error" msgid="1811242131549854624">"Дуут шууданг тоглуулж чадсангүй."</string>
-    <string name="voicemail_buffering" msgid="738287747618697097">"Буферлэж байна…"</string>
-    <string name="voicemail_fetching_content" msgid="877911315738258780">"Дуут шууданг уншиж байна…"</string>
-    <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Дуут шууданг уншиж чадсангүй."</string>
-    <string name="call_log_voicemail_header" msgid="3945407886667089173">"Зөвхөн дуут шуудантай дуудлагуудыг"</string>
-    <string name="call_log_incoming_header" msgid="2787722299753674684">"Зөвхөн ирсэн дуудлага"</string>
-    <string name="call_log_outgoing_header" msgid="761009180766735769">"Зөвхөн залгасан дуудлагуудыг"</string>
-    <string name="call_log_missed_header" msgid="8017148056610855956">"Зөвхөн аваагүй дуудлагуудыг"</string>
-    <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Дуут шуудангийн серверт холбогдож чадахгүй байна."</string>
-    <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Дуут шуудангийн серверт холбогдож чадахгүй байна. Шинэ дуут шуудангууд хүлээгдэж байна."</string>
-    <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Дуут шуудангаа тохируулна уу."</string>
-    <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Аудио байхгүй байна."</string>
-    <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Тохируулах"</string>
-    <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Дуут шуудан руу залгах"</string>
-    <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Хамгийн удаанаар"</string>
-    <string name="voicemail_speed_slower" msgid="1508601287347216244">"Удаанаар"</string>
-    <string name="voicemail_speed_normal" msgid="9033988544627228892">"Энгийн хурдаар"</string>
-    <string name="voicemail_speed_faster" msgid="2019965121475935488">"Хурданаар"</string>
-    <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Хамгийн хурданаар"</string>
-    <string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
-    <string name="sms_disambig_title" msgid="5846266399240630846">"Дугаар сонгоно уу"</string>
-    <string name="call_disambig_title" msgid="4392886850104795739">"Дугаар сонгоно уу"</string>
-    <string name="make_primary" msgid="5829291915305113983">"Энэ сонголтыг санах"</string>
-    <string name="description_image_button_one" msgid="1740638037139856139">"нэг"</string>
-    <string name="description_image_button_two" msgid="5882638439003731308">"хоёр"</string>
-    <string name="description_image_button_three" msgid="8709731759376015180">"гурав"</string>
-    <string name="description_image_button_four" msgid="3530239685642246130">"дөрөв"</string>
-    <string name="description_image_button_five" msgid="1182465427501188413">"тав"</string>
-    <string name="description_image_button_six" msgid="2093656269261415475">"зургаа"</string>
-    <string name="description_image_button_seven" msgid="2450357020447676481">"долоо"</string>
-    <string name="description_image_button_eight" msgid="6969435115163287801">"найм"</string>
-    <string name="description_image_button_nine" msgid="7857248695662558323">"ес"</string>
-    <string name="description_image_button_star" msgid="3365919907520767866">"од"</string>
-    <string name="description_image_button_zero" msgid="4133108949401820710">"тэг"</string>
-    <string name="description_image_button_pound" msgid="3039765597595889230">"фунт"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"дуут шуудан"</string>
-    <string name="description_search_button" msgid="3660807558587384889">"хайх"</string>
-    <string name="description_dial_button" msgid="1274091017188142646">"залгах"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"Ухраах"</string>
-    <string name="description_digits_edittext" msgid="8760207516497016437">"залгах дугаар"</string>
-    <string name="action_menu_call_history_description" msgid="9018442816219748968">"Дуудлагын түүх"</string>
-    <string name="action_menu_overflow_description" msgid="2303272250613084574">"Нэмэлт сонголтууд"</string>
-    <string name="action_menu_dialpad_button" msgid="1425910318049008136">"дугаар цуглуулагч"</string>
-    <string name="menu_copy" msgid="6108677035381940698">"Хуулах"</string>
-    <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Зөвхөн залгасан дуудлагуудыг харуулах"</string>
-    <string name="menu_show_incoming_only" msgid="7534206815238877417">"Зөвхөн ирсэн дуудлагуудыг харуулах"</string>
-    <string name="menu_show_missed_only" msgid="154473166059743996">"Зөвхөн аваагүй дуудлагуудыг харуулах"</string>
-    <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Зөвхөн дуут шуудангуудыг харуулах"</string>
-    <string name="menu_show_all_calls" msgid="7560347482073345885">"Бүх дуудлагыг харуулах"</string>
-    <string name="add_2sec_pause" msgid="9214012315201040129">"2-сек зогсолт нэмэх"</string>
-    <string name="add_wait" msgid="3360818652790319634">"Хүлээлт нэмэх"</string>
-    <string name="call_settings" msgid="7666474782093693667">"Тохиргоо"</string>
-    <string name="menu_newContact" msgid="1209922412763274638">"Шинэ харилцагч"</string>
-    <string name="callDetailTitle" msgid="5340227785196217938">"Дуудлагын мэдээлэл"</string>
-    <string name="toast_call_detail_error" msgid="7200975244804730096">"Хийсэн дуудлагын дэлгэрэнгүй мэдээллийг уншиж чадсангүй."</string>
-    <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Хүрэлтээр дуугардаг гар ашиглах"</string>
-    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Үргэлжилж буй дуудлага руу буцах"</string>
-    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Дуудлага нэмэх"</string>
-    <string name="type_incoming" msgid="6502076603836088532">"Ирж буй дуудлага"</string>
-    <string name="type_outgoing" msgid="343108709599392641">"Залгасан дуудлага"</string>
-    <string name="type_missed" msgid="2720502601640509542">"Аваагүй дуудлага"</string>
-    <string name="type_voicemail" msgid="5153139450668549908">"Дуут шуудан"</string>
-    <string name="actionIncomingCall" msgid="6028930669817038600">"Ирж буй дуудлага"</string>
-    <string name="description_call_log_play_button" msgid="651182125650429846">"Дуут шууданг тоглуулах"</string>
-    <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Ирж буй дуудлага"</string>
-    <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Залгасан дуудлага"</string>
-    <string name="description_call_log_missed_call" msgid="2242805209983708825">"Аваагүй дуудлага"</string>
-    <string name="description_call_log_voicemail" msgid="4600798771975158948">"Дуут шуудан"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Харилцагч нэмэх"</string>
-    <string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> харилцагчийг харах"</string>
-    <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> руу залгах"</string>
-    <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g> руу зурвас илгээх"</string>
-    <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Сонсоогүй дуут шуудан"</string>
-    <string name="description_start_voice_search" msgid="520539488194946012">"Дуун хайлтыг эхлүүлэх"</string>
-    <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
-    <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> руу залгах"</string>
-    <string name="unknown" msgid="740067747858270469">"Тодорхойгүй"</string>
-    <string name="voicemail" msgid="3851469869202611441">"Дуут шуудан"</string>
-    <string name="private_num" msgid="6374339738119166953">"Нууцлагдсан дугаар"</string>
-    <string name="payphone" msgid="4864313342828942922">"Төлбөртэй утас"</string>
-    <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Залгахдаа гар ашиглах"</string>
-    <string name="dialerDialpadHintText" msgid="5824490365898349041">"Дуудлага нэмэхийн тулд залгана уу"</string>
-    <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> минут <xliff:g id="SECONDS">%s</xliff:g> секунд"</string>
-    <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Дуудлага илгээгдсэнгүй"</string>
-    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Дуут шууданг тохируулахын тулд Цэс &gt; Тохиргоо руу очно уу."</string>
-    <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Дуут шуудан руу залгахын тулд юуны өмнө Нислэгийн төлвийг идэвхгүйжүүлнэ үү."</string>
-    <string name="contact_list_loading" msgid="5488620820563977329">"Ачааллаж байна..."</string>
-    <string name="imei" msgid="3045126336951684285">"IMEI"</string>
-    <string name="meid" msgid="6210568493746275750">"MEID"</string>
-    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM картаас уншиж байна…"</string>
-    <string name="simContacts_title" msgid="27341688347689769">"SIM картны харилцагчид"</string>
-    <string name="add_contact_not_available" msgid="1419207765446461366">"Тус функцийг ашиглахын тулд People аппликешнийг дахин идэвхжүүлнэ үү."</string>
-    <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Нэр эсхүл дугаарыг бичнэ үү"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Бүгд"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Аваагүй"</string>
-    <string name="recentMissed_empty" msgid="5427113551557296665">"Саяхны аваагүй дуудлага алга байна."</string>
-    <string name="recentVoicemails_empty" msgid="5163114119598014048">"Саяхны дуут шуудан байхгүй байна."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Бүх харилцагчдыг харуулах"</string>
-    <string name="show_favorites_only" msgid="5520072531022614595">"Зөвхөн дуртайнуудыг харуулах"</string>
-    <string name="call_log_activity_title" msgid="4612824396355272023">"Түүх"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
-    <string name="show_all_contacts_title" msgid="8395378484578221791">"Бүх харилцагчид"</string>
-    <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Бүх харилцагчид"</string>
-    <string name="favorite_hidden" msgid="4837366417440391323">"Дуртай харилцагчдаас нууцалсан"</string>
-    <string name="favorite_hidden_undo" msgid="2508998611039406474">"Буцаах"</string>
-</resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 20ee265..327920d 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"bintang"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"sifar"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"paun"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"mel suara"</string>
     <string name="description_search_button" msgid="3660807558587384889">"cari"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"dail"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"undur ruang"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"nombor untuk didail"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Sejarah Panggilan"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Lagi pilihan"</string>
@@ -89,6 +87,8 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Tunjuk panggilan terlepas shj"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Tunjukkan mel suara sahaja"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Tunjukkan semua panggilan"</string>
+    <!-- no translation found for add_contact (8875804371377471164) -->
+    <skip />
     <string name="add_2sec_pause" msgid="9214012315201040129">"Tambah jeda 2 saat"</string>
     <string name="add_wait" msgid="3360818652790319634">"Tambah penungguan"</string>
     <string name="call_settings" msgid="7666474782093693667">"Tetapan"</string>
@@ -109,13 +109,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Panggilan keluar"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Panggilan tidak dijawab"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Mel suara"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Tambah kenalan"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Lihat kenalan <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Butiran hubungan untuk <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Butiran panggilan"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Mel suara baharu."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> panggilan."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Hantar mesej teks kepada <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Mel suara belum didengar"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Kosongkan carian"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Mulakan carian suara"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Panggil <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Tidak diketahui"</string>
     <string name="voicemail" msgid="3851469869202611441">"Mel suara"</string>
@@ -133,32 +136,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Memuatkan dari kad SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Kenalan kad SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Dayakan semula aplikasi Orang untuk menggunakan ciri ini."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Carian suara tidak tersedia."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Tidak boleh membuat panggilan telefon kerana aplikasi Telefon telah dilumpuhkan."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Tiada aktiviti yang dipasang tersedia untuk mengendalikan tindakan yang dipilih."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Taip nama atau nombor telefon"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Semua"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Tidak dijawab"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Tiada panggilan tidak dijawab terbaru."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Tiada mel suara terbaru."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Tunjukkan semua kenalan"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Tunjukkan kegemaran sahaja"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Sejarah"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Semua"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Tidak dijawab"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Mel suara"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Dail Laju"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Terkini"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kenalan"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Semua kenalan"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Semua kenalan"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Dialih keluar daripada kegemaran"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Buat asal"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Panggil <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Tambahkan pada kenalan"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Lihat sejarah panggilan penuh"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> panggilan terlepas baharu"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Kegemaran &amp; kenalan yang\nkerap anda hubungi akan ditunjukkan di sini.\nJadi, mulalah membuat panggilan."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Ketik imej untuk melihat semua nombor atau tekan dan tahan imej untuk menyusun semula"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Ketepikan"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Alih keluar"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Dail Laju"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"SEMUA KENALAN"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"PANGGIL BALIK"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"PADAM"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"DENGAR"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Panggilan yang tidak dijawab daripada <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Panggilan yang dijawab daripada <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Panggilan kepada <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Panggil balik <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Dengar mel suara daripada <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Padam entri log panggilan untuk <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Entri log panggilan dihapuskan."</string>
 </resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
deleted file mode 100644
index a7d42cb..0000000
--- a/res/values-ms/strings.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2012 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
-   -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="8490255569343340580">"Pendail"</string>
-    <string name="launcherDialer" msgid="8636288196618486553">"Telefon"</string>
-    <string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
-    <string name="recentCallsIconLabel" msgid="1419116422359067949">"Log panggilan"</string>
-    <string name="menu_sendTextMessage" msgid="6937343460284499306">"Hantar mesej teks"</string>
-    <string name="recentCalls_callNumber" msgid="1756372533999226126">"Panggil <xliff:g id="NAME">%s</xliff:g>"</string>
-    <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Edit nombor sebelum panggilan"</string>
-    <string name="recentCalls_addToContact" msgid="1429899535546487008">"Tambah ke kenalan"</string>
-    <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Alih keluar daripada log panggilan"</string>
-    <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Padam bersih log panggilan"</string>
-    <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Padamkan mel suara"</string>
-    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Kongsi mel suara"</string>
-    <string name="recentCalls_empty" msgid="247053222448663107">"Log panggilan kosong."</string>
-    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Padam bersih log panggilan?"</string>
-    <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Semua rekod panggilan anda akan dipadamkan."</string>
-    <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Memadam bersih log panggilan..."</string>
-  <plurals name="notification_voicemail_title">
-    <item quantity="one" msgid="1746619685488504230">"Mel suara"</item>
-    <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> Mel suara"</item>
-  </plurals>
-    <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Main"</string>
-    <string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
-    <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Mel suara baru daripada <xliff:g id="CALLER">%1$s</xliff:g>"</string>
-    <string name="voicemail_playback_error" msgid="1811242131549854624">"Tidak dapat memainkan mel suara."</string>
-    <string name="voicemail_buffering" msgid="738287747618697097">"Menimbal…"</string>
-    <string name="voicemail_fetching_content" msgid="877911315738258780">"Sedang mendapatkan mel suara…"</string>
-    <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Tidak dapat mengambil mel suara."</string>
-    <string name="call_log_voicemail_header" msgid="3945407886667089173">"Panggilan dengan mel suara sahaja"</string>
-    <string name="call_log_incoming_header" msgid="2787722299753674684">"Panggilan masuk sahaja"</string>
-    <string name="call_log_outgoing_header" msgid="761009180766735769">"Panggilan keluar sahaja"</string>
-    <string name="call_log_missed_header" msgid="8017148056610855956">"Panggilan terlepas sahaja"</string>
-    <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Tidak boleh bersambung kepada pelayan mel suara."</string>
-    <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Tak boleh brsmbg kpd pelayan mel suara. Mel suara baru menunggu."</string>
-    <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Sediakan mel suara anda."</string>
-    <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Audio tidak tersedia."</string>
-    <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Menyediakan"</string>
-    <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Panggil mel suara"</string>
-    <string name="voicemail_speed_slowest" msgid="1733460666177707312">"kelajuan paling perlahan"</string>
-    <string name="voicemail_speed_slower" msgid="1508601287347216244">"Kelajuan perlahan"</string>
-    <string name="voicemail_speed_normal" msgid="9033988544627228892">"Kelajuan biasa"</string>
-    <string name="voicemail_speed_faster" msgid="2019965121475935488">"Kelajuan pantas"</string>
-    <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Kelajuan paling pantas"</string>
-    <string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
-    <string name="sms_disambig_title" msgid="5846266399240630846">"Pilih nombor"</string>
-    <string name="call_disambig_title" msgid="4392886850104795739">"Pilih nombor"</string>
-    <string name="make_primary" msgid="5829291915305113983">"Ingat pilihan ini"</string>
-    <string name="description_image_button_one" msgid="1740638037139856139">"satu"</string>
-    <string name="description_image_button_two" msgid="5882638439003731308">"dua"</string>
-    <string name="description_image_button_three" msgid="8709731759376015180">"tiga"</string>
-    <string name="description_image_button_four" msgid="3530239685642246130">"empat"</string>
-    <string name="description_image_button_five" msgid="1182465427501188413">"lima"</string>
-    <string name="description_image_button_six" msgid="2093656269261415475">"enam"</string>
-    <string name="description_image_button_seven" msgid="2450357020447676481">"tujuh"</string>
-    <string name="description_image_button_eight" msgid="6969435115163287801">"lapan"</string>
-    <string name="description_image_button_nine" msgid="7857248695662558323">"sembilan"</string>
-    <string name="description_image_button_star" msgid="3365919907520767866">"bintang"</string>
-    <string name="description_image_button_zero" msgid="4133108949401820710">"sifar"</string>
-    <string name="description_image_button_pound" msgid="3039765597595889230">"paun"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"mel suara"</string>
-    <string name="description_search_button" msgid="3660807558587384889">"cari"</string>
-    <string name="description_dial_button" msgid="1274091017188142646">"dail"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"undur ruang"</string>
-    <string name="description_digits_edittext" msgid="8760207516497016437">"nombor untuk didail"</string>
-    <string name="action_menu_call_history_description" msgid="9018442816219748968">"Sejarah Panggilan"</string>
-    <string name="action_menu_overflow_description" msgid="2303272250613084574">"Lagi pilihan"</string>
-    <string name="action_menu_dialpad_button" msgid="1425910318049008136">"pad dail"</string>
-    <string name="menu_copy" msgid="6108677035381940698">"Salin"</string>
-    <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Tunjuk panggilan keluar shj"</string>
-    <string name="menu_show_incoming_only" msgid="7534206815238877417">"Tunjuk panggilan masuk shj"</string>
-    <string name="menu_show_missed_only" msgid="154473166059743996">"Tunjuk panggilan terlepas shj"</string>
-    <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Tunjukkan mel suara sahaja"</string>
-    <string name="menu_show_all_calls" msgid="7560347482073345885">"Tunjukkan semua panggilan"</string>
-    <string name="add_2sec_pause" msgid="9214012315201040129">"Tambah jeda 2 saat"</string>
-    <string name="add_wait" msgid="3360818652790319634">"Tambah penungguan"</string>
-    <string name="call_settings" msgid="7666474782093693667">"Tetapan"</string>
-    <string name="menu_newContact" msgid="1209922412763274638">"Kenalan baru"</string>
-    <string name="callDetailTitle" msgid="5340227785196217938">"Butiran panggilan"</string>
-    <string name="toast_call_detail_error" msgid="7200975244804730096">"Tidak boleh membaca butiran untuk panggilan yang diminta."</string>
-    <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Gunakan pad kekunci nada sentuh"</string>
-    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Kembali ke panggilan yang sedang berlangsung"</string>
-    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Tambah panggilan"</string>
-    <string name="type_incoming" msgid="6502076603836088532">"Panggilan masuk"</string>
-    <string name="type_outgoing" msgid="343108709599392641">"Panggilan keluar"</string>
-    <string name="type_missed" msgid="2720502601640509542">"Panggilan tidak dijawab"</string>
-    <string name="type_voicemail" msgid="5153139450668549908">"Mel suara"</string>
-    <string name="actionIncomingCall" msgid="6028930669817038600">"Panggilan masuk"</string>
-    <string name="description_call_log_play_button" msgid="651182125650429846">"Mainkan mel suara"</string>
-    <string name="description_call_log_incoming_call" msgid="4485427487637250143">"Panggilan masuk"</string>
-    <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Panggilan keluar"</string>
-    <string name="description_call_log_missed_call" msgid="2242805209983708825">"Panggilan tidak dijawab"</string>
-    <string name="description_call_log_voicemail" msgid="4600798771975158948">"Mel suara"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Tambah kenalan"</string>
-    <string name="description_view_contact" msgid="5205669345700598415">"Lihat kenalan <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_call" msgid="3443678121983852666">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_send_text_message" msgid="7803126439934046891">"Hantar mesej teks kepada <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Mel suara belum didengar"</string>
-    <string name="description_start_voice_search" msgid="520539488194946012">"Mulakan carian suara"</string>
-    <string name="call_log_empty_gecode" msgid="5588904744812100846">"-"</string>
-    <string name="menu_callNumber" msgid="997146291983360266">"Panggil <xliff:g id="NUMBER">%s</xliff:g>"</string>
-    <string name="unknown" msgid="740067747858270469">"Tidak diketahui"</string>
-    <string name="voicemail" msgid="3851469869202611441">"Mel suara"</string>
-    <string name="private_num" msgid="6374339738119166953">"Nombor peribadi"</string>
-    <string name="payphone" msgid="4864313342828942922">"Telefon awam"</string>
-    <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Gunakan papan kekunci untuk mendail"</string>
-    <string name="dialerDialpadHintText" msgid="5824490365898349041">"Dail untuk menambah panggilan"</string>
-    <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> saat"</string>
-    <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Panggilan tidak dihantar"</string>
-    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Untuuk menyediakan mel suara, pergi ke Menu &gt; Tetapan."</string>
-    <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Untuk membuat panggilan ke mel suara, mula-mula matikan mod Pesawat."</string>
-    <string name="contact_list_loading" msgid="5488620820563977329">"Memuatkan…"</string>
-    <string name="imei" msgid="3045126336951684285">"IMEI"</string>
-    <string name="meid" msgid="6210568493746275750">"MEID"</string>
-    <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Memuatkan dari kad SIM..."</string>
-    <string name="simContacts_title" msgid="27341688347689769">"Kenalan kad SIM"</string>
-    <string name="add_contact_not_available" msgid="1419207765446461366">"Dayakan semula aplikasi Orang untuk menggunakan ciri ini."</string>
-    <string name="dialer_hint_find_contact" msgid="9190419749917566623">"Taipkan nama atau telefon"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Semua"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Tidak dijawab"</string>
-    <string name="recentMissed_empty" msgid="5427113551557296665">"Tiada panggilan tidak dijawab terbaru."</string>
-    <string name="recentVoicemails_empty" msgid="5163114119598014048">"Tiada mel suara terbaru."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Tunjukkan semua kenalan"</string>
-    <string name="show_favorites_only" msgid="5520072531022614595">"Tunjukkan kegemaran sahaja"</string>
-    <string name="call_log_activity_title" msgid="4612824396355272023">"Sejarah"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
-    <string name="show_all_contacts_title" msgid="8395378484578221791">"Semua kenalan"</string>
-    <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Semua kenalan"</string>
-    <string name="favorite_hidden" msgid="4837366417440391323">"Disembunyikan daripada kegemaran"</string>
-    <string name="favorite_hidden_undo" msgid="2508998611039406474">"Buat asal"</string>
-</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index cdd18ec..6661d5f 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"stjerne"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"null"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"firkant"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"talepostkasse"</string>
     <string name="description_search_button" msgid="3660807558587384889">"søk"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"ring"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"tilbaketast"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"ring til"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Anropslogg"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Flere alternativer"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Vis bare tapte"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Vis bare talemeldinger"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Vis alle samtaler"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Legg til kontakt"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Legg til pause på 2 sek."</string>
     <string name="add_wait" msgid="3360818652790319634">"Legg til Vent"</string>
     <string name="call_settings" msgid="7666474782093693667">"Innstillinger"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Utgående samtale"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Tapt anrop"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Talepostkasse"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Legg til kontakt"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Se kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Ring til <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Kontaktinformasjon for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Samtaleinformasjon"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Ny talemelding."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> samtaler."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Send tekstmelding til <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Ikke avspilt talepost"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Slett søk"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Start talesøk"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Ukjent"</string>
     <string name="voicemail" msgid="3851469869202611441">"Telefonsvarer"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Henter fra SIM-kort…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"Kontakter på SIM-kort"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Aktiver Personer-appen på nytt for å bruke denne funksjonen."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Talesøk er ikke tilgjengelig."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Kan ikke ringe fordi Telefon-appen er deaktivert."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Det er ingen installert aktivitet tilgjengelig for å håndtere den valgte handlingen."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Skriv inn et navn eller telefonnummer"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Ikke besvart"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Ingen nylige ubesvarte anrop"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Ingen nylige talemeldinger"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Vis alle kontakter"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Vis bare favoritter"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Logg"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Ikke besvart"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Talemeldinger"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Hurtigoppringing"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Sist brukte"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontakter"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Alle kontakter"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alle kontakter"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Fjernet fra favoritter"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Angre"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Legg til i kontakter"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Se hele anropsloggen"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nye tapte anrop"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Favoritter og kontakter du \nringer ofte vises her.\n Ring i vei."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Trykk på bildet for å se alle telefonnumrene, eller trykk og hold inne for å endre rekkefølgen"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Fjern"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Fjern"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Hurtigoppringing"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALLE KONTAKTER"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"RING TILBAKE"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"SLETT"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"LYTT"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Tapt anrop fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Besvart anrop fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Ring til <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Ring tilbake til <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Lytt til talepostkasse fra <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Slett oppføring i samtaleloggen for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Oppføringen i samtaleloggen slettet."</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index c8c6bb9..7ffc8bb 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"ster"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nul"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"hekje"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"voicemail"</string>
     <string name="description_search_button" msgid="3660807558587384889">"zoeken"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"bellen"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"nummer om te bellen"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Oproepgeschiedenis"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Meer opties"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Alleen gemist weergeven"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Alleen voicemails weergeven"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Alle oproepen weergeven"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Contact toevoegen"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Pauze van 2 seconden toevoegen"</string>
     <string name="add_wait" msgid="3360818652790319634">"Wachten toevoegen"</string>
     <string name="call_settings" msgid="7666474782093693667">"Instellingen"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Uitgaande oproep"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Gemiste oproep"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Voicemail"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Contact toevoegen"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Contact <xliff:g id="NAME">%1$s</xliff:g> bekijken"</string>
     <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> bellen"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Contactgegevens voor <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Gespreksgegevens"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nieuwe voicemail."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> telefoongesprekken."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Sms verzenden naar <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Niet-beluisterde voicemail"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Zoekopdracht wissen"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Gesproken zoekopdracht"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Onbekend"</string>
     <string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Laden vanaf SIM-kaart..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Contacten op SIM-kaart"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Schakel de app \'Personen\' opnieuw in om deze functie te gebruiken."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Gesproken zoekopdrachten zijn niet beschikbaar"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Kan niet bellen omdat de Telefoon-app is uitgeschakeld."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Geen geïnstalleerde activiteit beschikbaar om de geselecteerde actie te verwerken."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Typ een naam of telefoonnummer"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Gemist"</string>
-    <string name="recentMissed_empty" msgid="5427113551557296665">"Geen recente gemiste oproepen."</string>
+    <string name="recentMissed_empty" msgid="5427113551557296665">"Geen recente gemiste oproepen"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Geen recente voicemails."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Alle contacten weergeven"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Alleen favorieten weergeven"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Geschiedenis"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Gemist"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Snelkeuze"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Recent"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Contacten"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Alle contacten"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alle contacten"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Verwijderd uit favorieten"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Ongedaan maken"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Toevoegen aan contacten"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Volledige oproepgeschiedenis bekijken"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nieuwe gemiste oproepen"</string>
-    <string name="no_favorites" msgid="5212485868783382971">"Favorieten en contacten die u\nvaak belt, worden hier weergegeven.\nDus begin met bellen."</string>
+    <string name="no_favorites" msgid="5212485868783382971">"Favorieten en contacten die u\nvaak belt, worden hier weergegeven.\n"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Tik op de afbeelding om alle nummers te bekijken of raak deze lang aan om de volgorde van nummers te wijzigen"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Sluiten"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Verwijderen"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Snelkeuze"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALLE CONTACTEN"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"TERUGBELLEN"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"VERWIJDEREN"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"LUISTEREN"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Gemiste oproep van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Beantwoorde oproep van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Oproep aan <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> terugbellen"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Voicemail beluisteren van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Vermelding in gesprekkenlijst verwijderen voor <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Vermelding in gesprekkenlijst verwijderd."</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 07ccb56..df8d718 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"gwiazdka"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"zero"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"funt"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"poczta głosowa"</string>
     <string name="description_search_button" msgid="3660807558587384889">"szukaj"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"wybierz numer"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"numer do wybrania"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Historia połączeń"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Więcej opcji"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Pokaż tylko nieodebrane"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Pokaż tylko pocztę głosową"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Pokaż wszystkie połączenia"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Dodaj kontakt"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Dodaj 2-sekundową pauzę"</string>
     <string name="add_wait" msgid="3360818652790319634">"Dodaj oczekiwanie"</string>
     <string name="call_settings" msgid="7666474782093693667">"Ustawienia"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Połączenie wychodzące"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Nieodebrane połączenie"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Poczta głosowa"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Dodaj kontakt"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Wyświetl kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Połącz z: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Szczegóły kontaktu: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Szczegóły połączenia"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nowa poczta głosowa."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"Połączenia: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Wyślij SMS do: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nieodsłuchana poczta głosowa"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Wyczyść wyszukiwanie"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Wyszukiwanie głosowe"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Zadzwoń: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Nieznane"</string>
     <string name="voicemail" msgid="3851469869202611441">"Poczta głosowa"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Wczytywanie z karty SIM…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"Kontakty z karty SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Aby korzystać z tej funkcji, włącz ponownie aplikację Kontakty."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Wyszukiwanie głosowe jest niedostępne."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Nie można zadzwonić, ponieważ aplikacja Telefon została wyłączona."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Brak zainstalowanej aplikacji wykonującej wybrane działanie."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Wpisz nazwisko/numer telefonu"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Wszystkie"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Nieodebrane"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Brak nowych nieodebranych połączeń."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Brak nowej poczty głosowej."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Pokaż wszystkie kontakty"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Pokaż tylko ulubione"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Historia"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Wszystkie"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Nieodebrane"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Poczta gł."</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Szybkie wybieranie"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Niedawne"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontakty"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Wszystkie kontakty"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Wszystkie kontakty"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Usunięto z ulubionych"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Cofnij"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Zadzwoń: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Dodaj do kontaktów"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Wyświetl pełną historię połączeń"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"Nowe nieodebrane połączenia: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Tutaj będą widoczne Twoje\nulubione i najczęstsze kontakty.\nPora zacząć dzwonić."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Kliknij zdjęcie, by zobaczyć wszystkie numery, lub kliknij je i przytrzymaj, by zmienić kolejność"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Zamknij"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Usuń"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Szybkie wybieranie"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"WSZYSTKIE KONTAKTY"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"ODDZWOŃ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"USUŃ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"POSŁUCHAJ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Nieodebrane połączenie od: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Odebrane połączenie od: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Połączenie wychodzące z: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Oddzwoń do: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Posłuchaj wiadomości głosowej od: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Usuń wpis dziennika połączeń: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Wpis dziennika połączeń został usunięty."</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index fa7ae19..87f48e0 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -30,7 +30,7 @@
     <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Eliminar correio de voz"</string>
     <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Partilhar correio de voz"</string>
     <string name="recentCalls_empty" msgid="247053222448663107">"O registo de chamadas está vazio."</string>
-    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Limpar reg. de cham.?"</string>
+    <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Limpar registo de chamadas?"</string>
     <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Todos os registos de chamadas serão eliminados."</string>
     <string name="clearCallLogProgress_title" msgid="8365943000154295771">"A limpar registo de chamadas..."</string>
   <plurals name="notification_voicemail_title">
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"estrela"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"zero"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"libra"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"correio de voz"</string>
     <string name="description_search_button" msgid="3660807558587384889">"pesquisar"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"marcar"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"retrocesso"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"número a marcar"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Histórico de Chamadas"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Mais opções"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Mostrar apenas cham. n. atend."</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Mostrar apenas msgs corr. voz"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Mostrar todas as chamadas"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Adicionar contacto"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Adicionar pausa de 2 seg."</string>
     <string name="add_wait" msgid="3360818652790319634">"Adicionar espera"</string>
     <string name="call_settings" msgid="7666474782093693667">"Definições"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Chamada efetuada"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Chamada não atendida"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Correio de voz"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Adicionar contacto"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Ver o contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Ligar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Detalhes de contacto para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Detalhes da chamada"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Novo correio de voz."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> chamadas."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Enviar mensagem de texto para <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Mensagem de correio de voz ainda não ouvida"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Limpar pesquisa"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Iniciar pesquisa por voz"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Telefonar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Desconhecido"</string>
     <string name="voicemail" msgid="3851469869202611441">"Correio de voz"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"A carregar a partir do cartão SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Contactos no cartão SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Reative a aplicação Pessoas para utilizar esta funcionalidade."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"A pesquisa por voz não está disponível."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Não é possível efetuar uma chamada porque a aplicação Telefone foi desativada."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Não existe qualquer atividade instalada disponível para processar a ação selecionada."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Introduzir nome ou n.º telef."</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Todos"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Não atendidas"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Não existem chamadas não atendidas recentes."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Não existe correio de voz recente."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Mostrar todos os contactos"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostrar apenas os favoritos"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Histórico"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Todos"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Não atendidas"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Corr. Voz"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Marcação rápida"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Recentes"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Contactos"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Todos os contactos"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Todos os contactos"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Removido dos favoritos"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Anular"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Telefonar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Adicionar aos contactos"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Ver histórico de chamadas completo"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> chamadas não atendidas novas"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Os favoritos e os contactos para os quais\nliga frequentemente serão mostrados aqui,\n por isso, comece a ligar."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Toque na imagem para ver todos os números ou prima sem soltar para reordenar"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Ignorar"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Remover"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Marcação rápida"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TODOS OS CONTACTOS"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"TELEFONAR DE VOLTA"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ELIMINAR"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"OUVIR"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Chamada não atendida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Chamada atendida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Chamada para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Telefonar de volta para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Ouvir o correio de voz de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Eliminar entrada de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> do registo de chamadas"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Entrada eliminada do registo de chamadas."</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index a2d0fea..e97721c 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"estrela"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"zero"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"libra"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"correio de voz"</string>
     <string name="description_search_button" msgid="3660807558587384889">"pesquisar"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"discar"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"número para discagem"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Histórico de chamadas"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Mais opções"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Mostrar apenas perdidas"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Exibir apenas mensagens de voz"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Mostrar todas as chamadas"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Adicionar contato"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Adicionar pausa de 2 segundos"</string>
     <string name="add_wait" msgid="3360818652790319634">"Adicionar espera"</string>
     <string name="call_settings" msgid="7666474782093693667">"Configurações"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Chamada realizada"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Chamada perdida"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Mensagem de voz"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Adicionar contato"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Visualizar contato <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Detalhes de contato para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Detalhes da chamada"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nova mensagem de voz."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> chamadas."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Enviar mensagem de texto para <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nova mensagem de voz"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Limpar pesquisa"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Iniciar pesquisa por voz"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Ligar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Desconhecido"</string>
     <string name="voicemail" msgid="3851469869202611441">"Correio de voz"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Carregando do cartão SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Contatos do cartão SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Reative o aplicativo Pessoas para usar este recurso."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"A pesquisa por voz não está disponível."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Não é possível fazer uma chamada porque o aplicativo Telefone foi desativado."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Nenhuma atividade instalada disponível para a ação selecionada."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Digite um nome ou telefone"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Tudo"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Nenhuma chamada perdida recente."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Nenhuma mensagem de voz recente."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Mostrar todos os contatos"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mostrar somente favoritos"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Histórico"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Tudo"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Correio de voz"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Discagem rápida"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Recentes"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Contatos"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Todos os contatos"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Todos os contatos"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Removido dos favoritos"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Desfazer"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Ligar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Adicionar aos contatos"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Ver todo o histórico de chamadas"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Seus favoritos e os contatos\npara os quais você liga com mais frequência aparecerão aqui.\nComece a ligar!"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Toque na imagem para ver todos os números ou pressione e segure para reordenar"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Descartar"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Remover"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Discagem rápida"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TODOS OS CONTATOS"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"RETORNAR CHAMADA"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"EXCLUIR"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"OUVIR"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Chamada perdida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Chamada atendida de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Chamada para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Retornar chamada de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Ouvir mensagem de voz de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Excluir a entrada do registro de chamadas para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Entrada do registro de chamadas excluída."</string>
 </resources>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index e1b7c63..b6cd048 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -104,11 +104,9 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"staila"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nulla"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"glivra"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"Mailbox"</string>
     <!-- no translation found for description_search_button (3660807558587384889) -->
     <skip />
     <string name="description_dial_button" msgid="1274091017188142646">"cumponer"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"tasta da return"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"numer da cumponer"</string>
     <!-- no translation found for action_menu_call_history_description (9018442816219748968) -->
     <skip />
@@ -129,6 +127,8 @@
     <skip />
     <!-- no translation found for menu_show_all_calls (7560347482073345885) -->
     <skip />
+    <!-- no translation found for add_contact (8875804371377471164) -->
+    <skip />
     <string name="add_2sec_pause" msgid="9214012315201040129">"Agiuntar ina pausa da 2 secundas"</string>
     <string name="add_wait" msgid="3360818652790319634">"Agiuntar Spetgar"</string>
     <!-- no translation found for call_settings (7666474782093693667) -->
@@ -157,19 +157,25 @@
     <skip />
     <!-- no translation found for description_call_log_voicemail (4600798771975158948) -->
     <skip />
-    <!-- no translation found for description_add_contact (3103414772502485851) -->
-    <skip />
     <!-- no translation found for description_view_contact (5205669345700598415) -->
     <skip />
     <!-- no translation found for description_call (3443678121983852666) -->
     <skip />
+    <!-- no translation found for description_contact_details (51229793651342809) -->
+    <skip />
+    <!-- no translation found for description_call_details (8936017517290240089) -->
+    <skip />
+    <!-- no translation found for description_new_voicemail (2133792360865517746) -->
+    <skip />
+    <!-- no translation found for description_num_calls (1601505153694540074) -->
+    <skip />
     <!-- no translation found for description_send_text_message (7803126439934046891) -->
     <skip />
     <!-- no translation found for description_call_log_unheard_voicemail (118101684236996786) -->
     <skip />
-    <!-- no translation found for description_start_voice_search (520539488194946012) -->
+    <!-- no translation found for description_clear_search (688023606766232904) -->
     <skip />
-    <!-- no translation found for call_log_empty_gecode (2019639420045039861) -->
+    <!-- no translation found for description_start_voice_search (520539488194946012) -->
     <skip />
     <!-- no translation found for menu_callNumber (997146291983360266) -->
     <skip />
@@ -193,41 +199,33 @@
     <string name="simContacts_title" msgid="27341688347689769">"Contacts sin la carta SIM"</string>
     <!-- no translation found for add_contact_not_available (1419207765446461366) -->
     <skip />
+    <!-- no translation found for voice_search_not_available (7580616740587850828) -->
+    <skip />
+    <!-- no translation found for call_not_available (8941576511946492225) -->
+    <skip />
+    <!-- no translation found for activity_not_available (8265265380537872585) -->
+    <skip />
     <!-- no translation found for dialer_hint_find_contact (8798845521253672403) -->
     <skip />
-    <!-- no translation found for call_log_all_title (3566738938889333307) -->
-    <skip />
-    <!-- no translation found for call_log_missed_title (4541142293870638971) -->
-    <skip />
     <!-- no translation found for recentMissed_empty (5427113551557296665) -->
     <skip />
     <!-- no translation found for recentVoicemails_empty (5163114119598014048) -->
     <skip />
-    <!-- no translation found for show_all_contacts (1732256558071778056) -->
-    <skip />
     <!-- no translation found for show_favorites_only (5520072531022614595) -->
     <skip />
     <!-- no translation found for call_log_activity_title (4612824396355272023) -->
     <skip />
-    <!-- no translation found for dialpad_0_number (8859392433961251108) -->
+    <!-- no translation found for call_log_all_title (3566738938889333307) -->
     <skip />
-    <!-- no translation found for dialpad_1_number (6536740525419909212) -->
+    <!-- no translation found for call_log_missed_title (4541142293870638971) -->
     <skip />
-    <!-- no translation found for dialpad_2_number (4941546415280852148) -->
+    <!-- no translation found for call_log_voicemail_title (940422274047025948) -->
     <skip />
-    <!-- no translation found for dialpad_3_number (6539414865185536881) -->
+    <!-- no translation found for tab_speed_dial (7807567599021643864) -->
     <skip />
-    <!-- no translation found for dialpad_4_number (979988372051042362) -->
+    <!-- no translation found for tab_recents (929949073851377206) -->
     <skip />
-    <!-- no translation found for dialpad_5_number (5492272478939926734) -->
-    <skip />
-    <!-- no translation found for dialpad_6_number (8044579516869379093) -->
-    <skip />
-    <!-- no translation found for dialpad_7_number (4175113016564167123) -->
-    <skip />
-    <!-- no translation found for dialpad_8_number (7949849563865941621) -->
-    <skip />
-    <!-- no translation found for dialpad_9_number (4377059952097526576) -->
+    <!-- no translation found for tab_all_contacts (1410922767166533690) -->
     <skip />
     <!-- no translation found for show_all_contacts_title (8395378484578221791) -->
     <skip />
@@ -241,6 +239,8 @@
     <skip />
     <!-- no translation found for search_shortcut_add_to_contacts (1853716708655789069) -->
     <skip />
+    <!-- no translation found for recents_footer_text (7315554578957453359) -->
+    <skip />
     <!-- no translation found for num_missed_calls (8081736535604293886) -->
     <skip />
     <!-- no translation found for no_favorites (5212485868783382971) -->
@@ -249,4 +249,30 @@
     <skip />
     <!-- no translation found for description_dismiss (2146276780562549643) -->
     <skip />
+    <!-- no translation found for remove_contact (1080555335283662961) -->
+    <skip />
+    <!-- no translation found for favorites_menu_speed_dial (3832518092014707628) -->
+    <skip />
+    <!-- no translation found for favorites_menu_all_contacts (992506284449891186) -->
+    <skip />
+    <!-- no translation found for call_log_action_call_back (4944463006859852473) -->
+    <skip />
+    <!-- no translation found for call_log_action_delete (7371990297839987600) -->
+    <skip />
+    <!-- no translation found for call_log_action_voicemail (4978620572562925654) -->
+    <skip />
+    <!-- no translation found for description_incoming_missed_call (2610535352863246949) -->
+    <skip />
+    <!-- no translation found for description_incoming_answered_call (7206670204016969740) -->
+    <skip />
+    <!-- no translation found for description_outgoing_call (3964211633673659733) -->
+    <skip />
+    <!-- no translation found for description_call_back_action (3012837380108884260) -->
+    <skip />
+    <!-- no translation found for description_voicemail_action (8054891873788903063) -->
+    <skip />
+    <!-- no translation found for description_delete_action (7188614068459616450) -->
+    <skip />
+    <!-- no translation found for toast_entry_removed (3389119736202317999) -->
+    <skip />
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 53cc3ab..8da161f 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"stea"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"zero"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"clar"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"Mesaj vocal"</string>
     <string name="description_search_button" msgid="3660807558587384889">"căutare"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"apelaţi"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"tasta backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"numărul de apelat"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Istoricul apelurilor"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Mai multe opţiuni"</string>
@@ -89,6 +87,8 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Numai apelurile nepreluate"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Afişaţi numai mesajele vocale"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Afişaţi toate apelurile"</string>
+    <!-- no translation found for add_contact (8875804371377471164) -->
+    <skip />
     <string name="add_2sec_pause" msgid="9214012315201040129">"Pauză 2 secunde"</string>
     <string name="add_wait" msgid="3360818652790319634">"Adăugaţi interval de aşteptare"</string>
     <string name="call_settings" msgid="7666474782093693667">"Setări"</string>
@@ -109,13 +109,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Apel de ieşire"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Apel nepreluat"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Mesaj vocal"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Adăugaţi o persoană în agendă"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Afişaţi persoana din agendă <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Apelaţi pe <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Detalii de contact pentru <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Detaliile apelului"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Mesaj vocal nou."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> (de) apeluri."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Trimiteţi un mesaj text către <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Mesaje vocale neascultate"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Ștergeți căutarea"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Începeţi căutarea vocală"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Apelaţi <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Necunoscut"</string>
     <string name="voicemail" msgid="3851469869202611441">"Mesagerie vocală"</string>
@@ -133,32 +136,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Se încarcă de pe cardul SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Persoanele din agendă de pe cardul SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Pentru a utiliza această funcție, reactivați aplicația Persoane."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Funcția Căutare vocală nu este disponibilă."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Nu se poate efectua un apel telefonic, deoarece aplicația Telefon a fost dezactivată."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Nu este disponibilă nicio aplicație instalată pentru efectuarea acțiunii selectate."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Introd. nume sau nr. telefon"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Toate"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Nepreluate"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Nu există apeluri nepreluate recente."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Nu există mesaje vocale recente."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Afișați toate persoanele de contact"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Afișați numai preferate"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Istoric"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Toate"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Nepreluate"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Mes. vocal"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Apelare rapidă"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Recente"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Agendă"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Toată agenda"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Toată agenda"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"S-a eliminat din preferate"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Anulați"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Apelați <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Adăugați în Agendă"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Vedeți istoricul complet al apelurilor"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> (de) apeluri nepreluate noi"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Preferințele și persoanele din Agendă pe care \nle apelați frecvent vor fi afișate aici.\nÎncepeți să faceți apeluri."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Atingeți imaginea pentru a vedea toate numerele sau apăsați și țineți apăsat pentru a reordona"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Închideți"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Eliminați"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Apelare rapidă"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TOATĂ AGENDA"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"SUNAȚI"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ȘTERGEȚI"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ASCULTAȚI"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Apel pierdut de la <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Apel preluat de la <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Sunați la <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Sunați <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Ascultați mesajul vocal de la <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Ștergeți intrarea din jurnalul de apeluri pentru <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Intrarea din jurnalul de apeluri a fost ștearsă."</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 5a9d84b..8944600 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"пометить"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"нуль"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"решетка"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"голосовая почта"</string>
     <string name="description_search_button" msgid="3660807558587384889">"поиск"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"набор номера"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"удаление последнего символа"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"набираемый номер"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"История вызовов"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Ещё"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Пропущенные"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Показать голосовые сообщения"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Все вызовы"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Добавить в контакты"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Добавить двухсекундную паузу"</string>
     <string name="add_wait" msgid="3360818652790319634">"Добавить паузу"</string>
     <string name="call_settings" msgid="7666474782093693667">"Настройки"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Исходящий вызов"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Пропущенный вызов"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Голосовая почта"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Добавить контакт"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Просмотреть данные: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Позвонить: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Сведения о контакте <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Сведения о вызове"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Новое голосовое сообщение."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"Вызовов: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Отправить текстовое сообщение: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Непрослушанные сообщения голосовой почты"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Очистить условия поиска"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Начать голосовой поиск"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Позвонить: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Неизвестно"</string>
     <string name="voicemail" msgid="3851469869202611441">"Голосовая почта"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Загрузка с SIM-карты…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"Контакты на SIM-карте"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Чтобы использовать эту функцию, включите приложение \"Контакты\"."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Голосовой поиск недоступен"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Нельзя совершать телефонные звонки, поскольку приложение \"Телефон\" отключено."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"На устройстве нет приложения для этого действия."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Введите имя или номер телефона"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Все"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Пропущенные"</string>
-    <string name="recentMissed_empty" msgid="5427113551557296665">"Нет пропущенных звонков"</string>
+    <string name="recentMissed_empty" msgid="5427113551557296665">"Нет пропущенных звонков."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Нет новых голосовых сообщений"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Все контакты"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Только часто используемые"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"История"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Все"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Пропущенные"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Г. почта"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Быстрый набор"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Недавние"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Контакты"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Все контакты"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Все контакты"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Контакт удален из избранных"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Отмена"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Позвонить: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Добавить в контакты"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Посмотреть весь журнал звонков"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"Пропущенных вызовов: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Здесь будут отображаться избранные элементы\nи контакты, которым вы звоните чаще всего.\nОбщайтесь с удовольствием."</string>
-    <string name="contact_tooltip" msgid="7817483485692282287">"Нажмите на фото, чтобы посмотреть все номера. Чтобы изменить порядок номеров, нажмите и удерживайте фото."</string>
+    <string name="contact_tooltip" msgid="7817483485692282287">"Нажмите на фото, чтобы посмотреть информацию о контакте. Чтобы переставить контакт в списке, нажмите на него и передвиньте на нужное место."</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Закрыть"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Удалить"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Быстрый набор"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ВСЕ КОНТАКТЫ"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"ВЫЗОВ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"УДАЛИТЬ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ПРОСЛУШАТЬ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Пропущен вызов от контакта <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>. <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Принят вызов от контакта <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>. <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Звонок контакту <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>. <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Перезвонить контакту <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>."</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Прослушать сообщение от контакта <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>."</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Удалить запись для контакта <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> из списка вызовов."</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Запись удалена"</string>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 9a22313..8484e9c 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"označiť hviezdičkou"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nula"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"libra"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"hlasová schránka"</string>
     <string name="description_search_button" msgid="3660807558587384889">"hľadať"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"vytáčanie"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"číslo, ktoré chcete vytočiť"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"História hovorov"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Ďalšie možnosti"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Zobraziť len zmeškané"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Zobraziť len hlasové správy"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Zobraziť všetky hovory"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Pridať kontakt"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Pridať dvojsekundovú pauzu"</string>
     <string name="add_wait" msgid="3360818652790319634">"Pridať čakanie"</string>
     <string name="call_settings" msgid="7666474782093693667">"Nastavenia"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Odchádzajúci hovor"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Zmeškaný hovor"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Hlasová schránka"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Pridať kontakt"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Zobraziť kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Volať kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Podrobnosti kontaktu pre <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Podrobnosti hovoru"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nová hlasová správa."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"Počet volaní: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Poslať textovú správu kontaktu <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nevypočutá hlasová správa"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Vymazať vyhľadávanie"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Spustenie hlasového vyhľadávania"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Volať <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Neznáme"</string>
     <string name="voicemail" msgid="3851469869202611441">"Hlasová schránka"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Prebieha načítavanie z karty SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Kontakty na karte SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Ak chcete použiť túto funkciu, znova povoľte aplikáciu Ľudia."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Hlasové vyhľadávanie nie je k dispozícii."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Nie je možné volať, pretože aplikácia Telefón bola deaktivovaná."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Nie je nainštalovaná žiadna aplikácia na spracovanie vybranej akcie."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Zadajte meno alebo tel. číslo"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Všetky"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Zmeškané"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Žiadne nedávne zmeškané hovory."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Žiadne nedávne hlasové správy."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Zobraziť všetky kontakty"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Zobraziť iba obľúbené"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"História"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Všetky"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Zmeškané"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Schránka"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Rýchla voľba"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Nedávne"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontakty"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Všetky kontakty"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Všetky kontakty"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Odstránené z obľúbených"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Späť"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Volať na číslo <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Pridať do kontaktov"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Zobraziť úplnú históriu hovorov"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"Počet nových zmeškaných hovorov: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Obľúbení ľudia a kontakty,\nktorým často voláte, sa zobrazia tu.\nZačnite teda volať."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Klepnutím na obrázok zobrazíte všetky čísla a pridržaním ich zoradíte"</string>
-    <string name="description_dismiss" msgid="2146276780562549643">"Zrušiť"</string>
+    <string name="description_dismiss" msgid="2146276780562549643">"Zatvoriť"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Odstrániť"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Rýchla voľba"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"VŠETKY KONTAKTY"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"ZAVOLAŤ SPÄŤ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ODSTRÁNIŤ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"POČÚVAŤ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Zmeškaný hovor od používateľa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Prijatý hovor od používateľa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Volať používateľovi <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Zavolať späť používateľovi <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Vypočuť si správu v hlasovej schránke od používateľa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Odstrániť záznam v denníku hovorov pre kontakt <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Záznam v denníku hovorov bol odstránený."</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 717ac9d..63bdf92 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"zvezdica"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"nič"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"funt"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"glasovna pošta"</string>
     <string name="description_search_button" msgid="3660807558587384889">"iskanje"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"pokliči"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"vračalka"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"številka, ki bo poklicana"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Zgodovina klicev"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Več možnosti"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Pokaži samo neodgovorjene"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Pokaži samo spor. glasovne pošte"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Pokaži vse klice"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Dodaj stik"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Dodaj 2 sekundi premora"</string>
     <string name="add_wait" msgid="3360818652790319634">"Dodaj premor"</string>
     <string name="call_settings" msgid="7666474782093693667">"Nastavitve"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Odhodni klic"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Neodgovorjeni klic"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Sporočila glasovne pošte"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Dodajanje stika"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Ogled stika <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Klicanje osebe <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Podrobnosti stika za <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Podrobnosti klica"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Novo sporočilo v odzivniku."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"Št. klicev: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Pošlji SMS osebi <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Neodprta glasovna pošta"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Počisti iskalno polje"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Začni glasovno iskanje"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Pokliči <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Neznano"</string>
     <string name="voicemail" msgid="3851469869202611441">"Glasovna pošta"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Nalaganje s kartice SIM ..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Stiki na kartici SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Aplikaciji Osebe znova omogočite uporabo te funkcije."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Glasovno iskanje ni na voljo."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Ni mogoče opraviti telefonskega klica, ker je aplikacija Telefon onemogočena."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Na voljo ni nobene nameščene aplikacije za obdelavo izbranega dejanja."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Vnesite ime ali tel. številko"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Vsa"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Neodgovorjena"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Ni nedavnih neodgovorjenih klicev."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Ni nedavnih sporočil v odzivniku."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Pokaži vse stike"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Pokaži samo priljubljene"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Zgodovina"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Vsa"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Neodgovorjena"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Odzivnik"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Hitro izbiranje"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Nedavni"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Stiki"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Vsi stiki"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Vsi stiki"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Odstranjeno iz priljubljenih"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Razveljavi"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Pokliči <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Dodaj med stike"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Prikaz celotne zgodovine klicev"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"Št. novih zgrešenih klicev: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Priljubljeni stiki in stiki,\nki jih pogosto kličete, bodo prikazani tukaj.\nKar začnite klicati."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Dotaknite se slike, da prikažete vse številke, ali jo pritisnite in pridržite, da spremenite vrstni red"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Opusti"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Odstrani"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Hitro izbiranje"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"VSI STIKI"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"POVRATNI KLIC"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"IZBRIŠI"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"POSLUŠAJ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Neodgovorjeni klic ob <xliff:g id="TIMEOFCALL">%3$s</xliff:g> od: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> – <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Prejeti klic ob <xliff:g id="TIMEOFCALL">%3$s</xliff:g> od: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> – <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Klic: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> – <xliff:g id="TYPEORLOCATION">%2$s</xliff:g> ob <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Povratni klic: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Poslušajte sporočilo v odzivniku od: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Izbriši vnos v dnevnik klicev za: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Vnos v dnevnik klicev je izbrisan."</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 4362484..8d6c91d 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"звездица"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"нула"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"фунта"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"говорна пошта"</string>
     <string name="description_search_button" msgid="3660807558587384889">"претражи"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"бирање"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"број за бирање"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Историја позива"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Још опција"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Прикажи само пропуштене"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Прикажи само говорне поруке"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Прикажи све позиве"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Додај контакт"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Додај паузу од 2 секунде"</string>
     <string name="add_wait" msgid="3360818652790319634">"Додај чекање"</string>
     <string name="call_settings" msgid="7666474782093693667">"Подешавања"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Одлазни позив"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Пропуштен позив"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Говорна пошта"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Додавање контакта"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Прикажи контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Позови корисника <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Детаљи о контакту за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Детаљи позива"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Нова говорна порука."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> позива."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Слање текстуалне поруке контакту <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Непреслушана говорна пошта"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Брисање претраге"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Покретање гласовне претраге"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Позови <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Непознато"</string>
     <string name="voicemail" msgid="3851469869202611441">"Говорна пошта"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Учитавање са SIM картице је у току…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"Контакти на SIM картици"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Поново омогућите апликацију Људи да бисте користили ову функцију."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Гласовна претрага није доступна."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Није могуће упутити телефонски позив јер је апликација Телефон онемогућена."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Нема доступне инсталиране активности за руковање изабраном радњом."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Унесите име или број телефона"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Све"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Пропуштени"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Нема недавно пропуштених позива."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Нема недавно примљене говорне поште."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Прикажи све контакте"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Прикажи само омиљене"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Историја"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Све"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Пропуштени"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Говорна пошта"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Брзо позивање"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Недавни контакти"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Контакти"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Сви контакти"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Сви контакти"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Уклоњено је из омиљених"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Опозови"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Позови <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Додај у контакте"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Приказ пуне историје позива"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"Нових пропуштених позива: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Овде ће се приказати омиљени и\nчесто позивани контакти.\nПа почните са позивањем."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Додирните слику да бисте видели све бројеве или притисните и задржите да бисте променили распоред"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Одбаци"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Уклони"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Брзо позивање"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"СВИ КОНТАКТИ"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"УПУТИ ПОВРАТНИ ПОЗИВ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ИЗБРИШИ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ПУСТИ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Пропуштени позив од <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Примљени позив од <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Позив за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Упути повратни позив за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Пусти говорну пошту од <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Избриши унос у евиденцији позива за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Унос у евиденцији позива је избрисан."</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 757e2b5..314fea1 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"Stjärna"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"noll"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"pund"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"röstbrevlåda"</string>
     <string name="description_search_button" msgid="3660807558587384889">"sök"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"ring"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backsteg"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"nummer att ringa"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Samtalshistorik"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Fler alternativ"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Visa endast missade samtal"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Visa bara röstmeddelanden"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Visa alla samtal"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Lägg till kontakt"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Lägg till en paus på 2 sek."</string>
     <string name="add_wait" msgid="3360818652790319634">"Lägg till väntetid"</string>
     <string name="call_settings" msgid="7666474782093693667">"Inställningar"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Utgående samtal"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Missat samtal"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Röstmeddelande"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Lägg till kontakt"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Visa kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Kontaktuppgifter för <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Samtalsinfo"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Nytt meddelande i röstbrevlådan"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> samtal."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Skicka SMS till <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Ej hört röstmeddelande"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Rensa sökning"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Starta röstsökning"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Okänd"</string>
     <string name="voicemail" msgid="3851469869202611441">"Röstbrevlåda"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Läser in från SIM-kort…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"Kontakter från SIM-kort"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Aktivera appen Personer på nytt om du vill använda den här funktionen."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Röstsökning är inte tillgängligt."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Det går inte att ringa eftersom appen Telefon har inaktiverats."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Det finns ingen installerad app som är tillgänglig för att hantera den valda åtgärden."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Ange ett namn eller telefonnummer"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Alla"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Missade"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Inga nya missade samtal."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Inga nya röstmeddelanden."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Visa alla kontakter"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Visa endast favoriter"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Historik"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Alla"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Missade"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Röstbrevlåda"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Snabbval"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Senaste"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kontakter"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Alla kontakter"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Alla kontakter"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Borttagen från favoriter"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Ångra"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Lägg till i Kontakter"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Visa hela samtalshistoriken"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nya missade samtal"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Dina favoriter och kontakterna du\nofta ringer till visas här.\nSå det är bara att börja ringa."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Tryck på bilden om du vill visa alla nummer eller tryck länge om du vill flytta den"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Avvisa"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Ta bort"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Snabbval"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALLA KONTAKTER"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"RING UPP"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"TA BORT"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"LYSSNA"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Missat samtal från <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Besvarat samtal från <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Ring till <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Ring upp <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Lyssna på ett röstmeddelande från <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Ta bort posten i samtalsloggen för <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Posten i samtalsloggen har tagits bort."</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index bbe0b73..4ed4a5f 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"nyota"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"sufuri"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"Pauni"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"Ujumbe wa sauti"</string>
     <string name="description_search_button" msgid="3660807558587384889">"tafuta"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"piga simu"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"futa"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"nambari ya kupiga"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Historia ya Simu"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Chaguo zaidi"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Onyesha zilizokosa kupokewa pekee"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Onyesha barua za sauti pekee"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Onyesha simu zote"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Ongeza anwani"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Ongeza usitishaji wa sekunde 2"</string>
     <string name="add_wait" msgid="3360818652790319634">"Ongeza kusubiri"</string>
     <string name="call_settings" msgid="7666474782093693667">"Mipangilio"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Simu inayotoka"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Simu isiyojibiwa"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Barua za sauti"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Ongeza anwani"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Angalia anwani <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Piga <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Maelezo ya <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Maelezo ya simu"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Ujumbe mpya wa sauti."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"Simu <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Tuma ujumbe wa maandishi kwa <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Barua sauti ambayo haijasikizwa"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Futa utafutaji"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Anza kutafuta kwa kutamka"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Piga simu <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Haijulikani"</string>
     <string name="voicemail" msgid="3851469869202611441">"Ujumbe wa sauti"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Inapakia kutoka SIM kadi..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Anwani za SIM kadi"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Washa tena Programu ya watu ili itumie kipengele hiki."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Utafutaji kwa kutamka haupatikani."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Haiwezi kupiga simu kwa sababu programu ya Simu imezimwa."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Hakuna shughuli iliyosakinishwa imepatikana ya kushughulikia kitendo kilichochaguliwa."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Andika jina au nambari ya simu"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Zote"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Ambazo hazikupokewa"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Hakuna simu za hivi karibuni ambazo hazikupokewa."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Hakuna ujumbe wa sauti wa hivi karibuni."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Onyesha anwani zote"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Onyesha zinazopendwa tu"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Historia"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Zote"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Ambazo hazikupokewa"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Ujumbe wa sauti"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Unaowasiliana nao zaidi"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Zilizotumika majuzi"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Walioalikwa"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Anwani zote"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Anwani zote"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Imeondolowa kwenye vipendwa"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Tendua"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Piga simu <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Ongeza kwenye anwani"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Angalia historia kamili ya simu zilizopigwa"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"Simu <xliff:g id="NUMBER">%s</xliff:g> za karibuni ambazo hazikujibiwa"</string>
-    <string name="no_favorites" msgid="5212485868783382971">"Vipendwa na nambari \n unazopiga mara nyingi zitaonekana hapa.\nKwa hivyo, anza kupiga."</string>
+    <string name="no_favorites" msgid="5212485868783382971">"Vipendwa na nambari \n unazopiga mara nyingi zitaonekana hapa.\nKwa hivyo, anza kupiga simu."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Gonga picha ili uone nambari zote au bonyeza na ushikilie ili upange upya"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Ondoa"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Ondoa"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Unaowasiliana nao zaidi"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ANWANI ZOTE"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"PIGA SIMU"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"FUTA"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"SIKILIZA"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Simu ambayo haikujibiwa kutoka kwa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Simu iliyopokelewa kutoka kwa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Simu kwa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Piga simu kwa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Sikiliza ujumbe wa sauti kutoka kwa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Futa rekodi ya simu ya <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Kumbukumbu ya simu imefutwa."</string>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index a423ab0..73b12bc 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -28,7 +28,7 @@
     <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"ลบจากบันทึกการโทร"</string>
     <string name="recentCalls_deleteAll" msgid="6352364392762163704">"ล้างบันทึกการโทร"</string>
     <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ลบข้อความเสียง"</string>
-    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"แบ่งปันข้อความเสียง"</string>
+    <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"แชร์ข้อความเสียง"</string>
     <string name="recentCalls_empty" msgid="247053222448663107">"บันทึกการโทรว่างเปล่า"</string>
     <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"ล้างบันทึกการโทร"</string>
     <string name="clearCallLogConfirmation" msgid="5043563133171583152">"บันทึกการโทรทั้งหมดของคุณจะถูกลบออก"</string>
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"ติดดาว"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"ศูนย์"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"ปอนด์"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"ข้อความเสียง"</string>
     <string name="description_search_button" msgid="3660807558587384889">"ค้นหา"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"หมุนหมายเลข"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"ย้อนกลับ"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"หมายเลขที่จะโทร"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"ประวัติการโทร"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"ตัวเลือกเพิ่มเติม"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"แสดงสายที่ไม่ได้รับเท่านั้น"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"แสดงเฉพาะข้อความเสียง"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"แสดงการโทรทั้งหมด"</string>
+    <string name="add_contact" msgid="8875804371377471164">"เพิ่มที่อยู่ติดต่อ"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"เพิ่มช่วงคั่น 2 วินาที"</string>
     <string name="add_wait" msgid="3360818652790319634">"เพิ่มการรอ"</string>
     <string name="call_settings" msgid="7666474782093693667">"การตั้งค่า"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"สายโทรออก"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"สายที่ไม่ได้รับ"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"ข้อความเสียง"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"เพิ่มรายชื่อติดต่อ"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"ดูรายชื่อติดต่อ <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"โทรหา <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"รายละเอียดที่อยู่ติดต่อสำหรับ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"รายละเอียดการโทร"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"ข้อความเสียงใหม่"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> สาย"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"ส่งข้อความไปที่ <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"ข้อความเสียงที่ยังไม่ได้ฟัง"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"ล้างการค้นหา"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"เริ่มต้นการค้นหาด้วยเสียง"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"โทร <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"ไม่ทราบ"</string>
     <string name="voicemail" msgid="3851469869202611441">"ข้อความเสียง"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"กำลังโหลดจากซิมการ์ด…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"รายชื่อบนซิมการ์ด"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"เปิดใช้งานแอปพลิเคชัน People อีกครั้งเพื่อใช้คุณลักษณะนี้"</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"ค้นหาด้วยเสียงไม่สามารถใช้งานได้"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"ไม่สามารถโทรศัพท์ได้เนื่องจากแอปพลิเคชันโทรศัพท์ถูกปิดใช้งาน"</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"ไม่มีกิจกรรมที่ติดตั้งไว้ใช้จัดการการดำเนินการที่เลือก"</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"พิมพ์ชื่อหรือหมายเลขโทรศัพท์"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"ทั้งหมด"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"ไม่ได้รับ"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"ไม่มีสายที่ไม่ได้รับล่าสุด"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"ไม่มีข้อความเสียงล่าสุด"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"แสดงรายชื่อในสมุดโทรศัพท์ทั้งหมด"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"แสดงเฉพาะรายชื่อที่ชื่นชอบ"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"ประวัติ"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"ทั้งหมด"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"ไม่ได้รับ"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"ข้อความเสียง"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"โทรด่วน"</string>
+    <string name="tab_recents" msgid="929949073851377206">"ล่าสุด"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"ที่อยู่ติดต่อ"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"ที่อยู่ติดต่อทั้งหมด"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"ที่อยู่ติดต่อทั้งหมด"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"นำออกจากรายการโปรด"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"เลิกทำ"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"โทร <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"เพิ่มในสมุดติดต่อ"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"ดูประวัติการโทรแบบเต็ม"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"สายที่ไม่ได้รับใหม่ <xliff:g id="NUMBER">%s</xliff:g> สาย"</string>
     <string name="no_favorites" msgid="5212485868783382971">"รายการโปรดและรายชื่อติดต่อที่คุณ\nโทรหาบ่อยจะแสดงที่นี่\n เริ่มโทรได้"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"แตะรูปภาพเพื่อดูหมายเลขทั้งหมด หรือกดค้างเพื่อจัดลำดับใหม่"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"ปิด"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"นำออก"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"เรียกใช้ฉับไว"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"รายชื่อติดต่อทั้งหมด"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"โทรกลับ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ลบ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"ฟัง"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"สายที่ไม่ได้รับจาก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"สายที่ได้รับจาก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"โทรไปยัง <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"โทรกลับ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"ฟังข้อความเสียงจาก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"ลบรายการประวัติการโทรสำหรับ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"ลบรายการประวัติการโทรแล้ว"</string>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 15f26ee..162487a 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"lagyan ng bituin"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"zero"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"pound"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"voicemail"</string>
     <string name="description_search_button" msgid="3660807558587384889">"maghanap"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"mag-dial"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"numerong ida-dial"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Kasaysayan ng Tawag"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Higit pang mga pagpipilian"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Ipakita lang ang hindi nasagot"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Ipakita lamang ang mga voicemail"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Ipakita ang lahat ng tawag"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Magdagdag ng contact"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Magdagdag ng pag-pause na 2-seg"</string>
     <string name="add_wait" msgid="3360818652790319634">"Magdagdag ng paghihintay"</string>
     <string name="call_settings" msgid="7666474782093693667">"Mga Setting"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Papalabas na tawag"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Hindi nasagot na tawag"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Voicemail"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Magdagdag ng contact"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Tingnan ang contact na si <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Tawagan si <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Mga detalye sa pakikipag-ugnayan para kay/sa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Mga detalye ng tawag"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Bagong voicemail."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> (na) tawag."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Ipadala ang text message kay <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Hindi pa naririnig na voicemail"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"I-clear ang paghahanap"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Simulan ang paghahanap gamit ang boses"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Tumawag sa <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Di-kilala"</string>
     <string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Naglo-load mula sa SIM card…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"Mga contact sa SIM card"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Paganahing muli ang application ng Mga Tao upang magamit ang tampok na ito."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Hindi available ang paghahanap gamit ang boses."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Hindi makagawa ng tawag sa telepono dahil naka-disable ang application na Telepono."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Walang available na naka-install na aktibidad upang pangasiwaan ang napiling pagkilos."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"I-type pangalan o phone number"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Lahat"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Di nasagot"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Walang mga kamakailang hindi nasagot na tawag."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Walang mga kamakailang voicemail."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Ipakita ang lahat ng contact"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Mga paborito lang ang ipakita"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Kasaysayan"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Lahat"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Di nasagot"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Speed Dial"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Mga Kamakailan"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Mga Contact"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Lahat ng contact"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Lahat ng contact"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Inalis sa mga paborito"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"I-undo"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Tumawag sa <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Idagdag sa mga contact"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Tingnan ang buong kasaysayan ng tawag"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> (na) bagong hindi nasagot na tawag"</string>
-    <string name="no_favorites" msgid="5212485868783382971">"Lalabas dito ang mga paborito at contact na\nmadalas mong tinatawagan.\nKaya, simulan ang pagtawag."</string>
+    <string name="no_favorites" msgid="5212485868783382971">"Ipapakita dito ang mga paborito at contact na\nmadalas mong tinatawagan.\nKaya, simulan ang pagtawag."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"I-tap ang larawan upang makita ang lahat ng numero at pindutin nang matagal upang ayusing muli"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"I-dismiss"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Alisin"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Speed Dial"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"LAHAT NG CONTACT"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"TUMAWAG"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"TANGGALIN"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"MAKINIG"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Hindi nasagot na tawag mula sa/kay <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Sumagot ng tawag mula sa/kay <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Tumawag sa/kay <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Tumawag sa/kay <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Makinig sa voicemail mula sa/kay <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Tanggalin ang entry sa log ng tawag para sa/kay <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Tinanggal ang entry sa log ng tawag."</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 2e863c6..9e5944b 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"yıldız"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"sıfır"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"pound"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"Sesli mesaj"</string>
     <string name="description_search_button" msgid="3660807558587384889">"ara"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"çevir"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"geri tuşu"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"çevrilecek numara"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Çağrı Geçmişi"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Diğer seçenekler"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Yalnızca cevapsızları göster"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Yalnızca sesli msajları göster"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Tüm çağrıları göster"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Kişi ekle"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"2 saniyelik duraklama ekle"</string>
     <string name="add_wait" msgid="3360818652790319634">"Bekleme ekle"</string>
     <string name="call_settings" msgid="7666474782093693667">"Ayarlar"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Giden çağrı"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Cevapsız çağrı"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Sesli mesaj"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Kişi ekle"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Kişiyi görüntüle: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Sesli arama yap: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> için kişi ayrıntıları"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Çağrı ayrıntıları"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Yeni sesli mesaj."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> çağrı."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Şu kişiye kısa mesaj gönder: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Dinlenilmemiş sesli mesaj"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Aramayı temizle"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Sesli arama başlat"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Çağrı yap: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Bilinmiyor"</string>
     <string name="voicemail" msgid="3851469869202611441">"Sesli Mesaj"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM karttan yükleniyor..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM kart kişileri"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Bu özelliği kullanmak için Kişiler uygulamasını yeniden etkinleştirin."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Sesli arama kullanılamıyor."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Telefon uygulaması devre dışı bırakıldığından telefon edilemiyor."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Seçilen işlemi gerçekleştirmek için kullanılabilir yüklü etkinlik yok."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Ad veya telefon numarası yazın"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Tümü"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Cevapsız"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Yakın zamanda cevapsız çağrı yok."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Yakın zamanda bırakılan sesli mesaj yok."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Tüm kişileri göster"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Yalnızca favori kişileri göster"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Geçmiş"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Tümü"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Cevapsız"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Sesli Mesaj"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Hızlı Arama"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Son Kişiler"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Kişiler"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Tüm kişiler"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tüm kişiler"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Favorilerden kaldırıldı"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Geri al"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Telefon et: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Kişilere ekle"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Tüm çağrı geçmişini görüntüle"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> yeni cevapsız çağrı"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Favoriler ve sık telefon ettiğiniz\nkişiler burada görüntülenir.\nTelefon etmeye başlayın."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Tüm numaraları görmek için resme hafifçe vurun veya yeniden sıralamak için basılı tutun"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Kapat"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Kaldır"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Hızlı Arama"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TÜM KİŞİLER"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"GERİ ARA"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"SİL"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"DİNLE"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Cevapsız çağrı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Yanıtlanan çağrı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Aranan numara: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Geri ara: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Şu numaradan gelen sesli mesajı dinle: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> için çağrı kaydı girişini sil"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Çağrı kaydı girişi silindi."</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 3252a49..483fdd5 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"зірочка"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"нуль"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"решітка"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"голос. пошта"</string>
     <string name="description_search_button" msgid="3660807558587384889">"пошук"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"дзвон."</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"видалити"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"номер для набору"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Історія викликів"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Інші варіанти"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Показувати лише пропущені"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Показувати лише голосову пошту"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Показувати всі виклики"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Додати контакта"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Дод. 2-сек. паузу"</string>
     <string name="add_wait" msgid="3360818652790319634">"Дод. очікув."</string>
     <string name="call_settings" msgid="7666474782093693667">"Налаштування"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Вихідний дзвінок"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Пропущений виклик"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Голосова пошта"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Додати контакт"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Переглянути контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Дзвонити: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Відомості про контакт <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Деталі виклику"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Нова голосове повідомлення."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"Викликів: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Надіслати текстове повідомлення: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Непрослухана голосова пошта"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Очистити поле пошуку"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Розпочати голосовий пошук"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Телефонувати <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Невідомий"</string>
     <string name="voicemail" msgid="3851469869202611441">"Голос. пошта"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Завантаж. із SIM-карти…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"Контакти SIM-карти"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Повторно ввімкніть програму Люди, щоб скористатися цією функцією."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Голосовий пошук недоступний."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Не вдається здійснити дзвінок, оскільки додаток Телефон вимкнено."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Неможливо обробити вибрану дію."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Введіть ім’я чи номер телефону"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Усі"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Пропущені"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Немає нещодавніх пропущених викликів."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Немає нещодавніх повідомлень голосової пошти."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Показати всі контакти"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Показати лише вибрані"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Історія"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Усі"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Пропущені"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Голос.пошта"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Швидкий набір"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Останні"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Контакти"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Усі контакти"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Усі контакти"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Вилучено з вибраного"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Відмінити"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Набрати <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Додати до контактів"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Переглянути всю історію дзвінків"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"Нових пропущених дзвінків: <xliff:g id="NUMBER">%s</xliff:g>"</string>
-    <string name="no_favorites" msgid="5212485868783382971">"Тут будуть відображатися вибрані контакти й контакти\n, яким ви часто телефонуєте.\nСпілкуйтеся із задоволенням."</string>
+    <string name="no_favorites" msgid="5212485868783382971">"Тут будуть відображатися вибрані контакти,\n яким ви часто телефонуєте.\nСпілкуйтеся із задоволенням."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Торкніться зображення, щоб побачити всі номери, або натисніть і утримуйте, щоб змінити порядок"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Закрити"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Видалити"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Швидкий набір"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"УСІ КОНТАКТИ"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"ТЕЛЕФОНУВАТИ"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"ВИДАЛИТИ"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"СЛУХАТИ"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Пропущений дзвінок: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Прийнятий дзвінок: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Дзвінок: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Телефонувати: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Слухати голосову пошту: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Видалити запис журналу дзвінків: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Запис журналу дзвінків видалено."</string>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 91a1e2a..208b13d 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"sao"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"không"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"dấu thăng"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"thư thoại"</string>
     <string name="description_search_button" msgid="3660807558587384889">"tìm kiếm"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"quay số"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"số để quay"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Nhật ký cuộc gọi"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Tùy chọn khác"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Chỉ hiển thị cuộc gọi nhỡ"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Chỉ hiển thị thư thoại"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Hiển thị tất cả cuộc gọi"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Thêm liên hệ"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Thêm 2 giây dừng"</string>
     <string name="add_wait" msgid="3360818652790319634">"Thêm chờ"</string>
     <string name="call_settings" msgid="7666474782093693667">"Cài đặt"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Cuộc gọi đi"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Cuộc gọi nhỡ"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Thư thoại"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Thêm địa chỉ liên hệ"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Xem thông tin liên hệ của <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Gọi <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Chi tiết liên lạc cho <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Chi tiết cuộc gọi"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Thư thoại mới."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> cuộc gọi."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Gửi tin nhắn văn bản tới <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Thư thoại chưa nghe"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Xóa tìm kiếm"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Bắt đầu tìm kiếm bằng giọng nói"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Gọi <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Không xác định"</string>
     <string name="voicemail" msgid="3851469869202611441">"Thư thoại"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Đang tải từ thẻ SIM…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"Danh bạ trên thẻ SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Bật lại ứng dụng Liên hệ để sử dụng tính năng này."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Tìm kiếm bằng giọng nói không khả dụng."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Không thể thực hiện cuộc gọi điện thoại vì ứng dụng Điện thoại đã bị tắt."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Không có ứng dụng đã cài đặt nào để xử lý tác vụ đã chọn."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Nhập tên hoặc số điện thoại"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Tất cả"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Bị nhỡ"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Không có cuộc gọi nhỡ gần đây nào."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Không có thư thoại gần đây nào."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Hiển thị tất cả liên hệ"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Chỉ hiển thị liên hệ ưa thích"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Lịch sử"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Tất cả"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Bị nhỡ"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Thư thoại"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Quay số nhanh"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Gần đây"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Địa chỉ liên hệ"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Tất cả liên hệ"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Tất cả liên hệ"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Đã xóa khỏi mục yêu thích"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Hoàn tác"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Gọi <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Thêm vào danh bạ"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Xem lịch sử cuộc gọi đầy đủ"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> cuộc gọi nhỡ mới"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Người liên hệ yêu thích và người liên hệ bạn\nthường gọi sẽ hiển thị tại đây.\nVì vậy, hãy bắt đầu gọi."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Chạm vào hình ảnh để xem tất cả các số hoặc nhấn và giữ để sắp xếp lại"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Loại bỏ"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Xóa"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Quay số nhanh"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TẤT CẢ NGƯỜI LIÊN HỆ"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"GỌI LẠI"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"XÓA"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"NGHE"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Cuộc gọi nhỡ từ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Cuộc gọi đã trả lời từ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Cuộc gọi đến <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Gọi lại <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Nghe thư thoại từ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Xóa mục nhật ký cuộc gọi cho <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Đã xóa mục nhật ký cuộc gọi."</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index bbe4eb8..5dee4ca 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"星形符号"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"零"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"英镑符号"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"语音信箱"</string>
     <string name="description_search_button" msgid="3660807558587384889">"搜索"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"拨打"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"退格"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"要拨打的号码"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"通话记录"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"更多选项"</string>
@@ -89,7 +87,9 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"仅显示未接来电"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"只显示语音邮件"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"显示所有通话"</string>
-    <string name="add_2sec_pause" msgid="9214012315201040129">"暂停时间延长2秒"</string>
+    <!-- no translation found for add_contact (8875804371377471164) -->
+    <skip />
+    <string name="add_2sec_pause" msgid="9214012315201040129">"延长暂停时间2秒"</string>
     <string name="add_wait" msgid="3360818652790319634">"延长等待时间"</string>
     <string name="call_settings" msgid="7666474782093693667">"设置"</string>
     <string name="menu_newContact" msgid="1209922412763274638">"新建联系人"</string>
@@ -109,13 +109,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"去电"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"未接电话"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"语音邮件"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"添加联系人"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"查看联系人<xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"呼叫<xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>的详细联系信息"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"通话详情"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"有新的语音邮件。"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>次通话。"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"向<xliff:g id="NAME">%1$s</xliff:g>发送短信"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"未收听的语音邮件"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"清除搜索内容"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"开始语音搜索"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"拨打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"未知"</string>
     <string name="voicemail" msgid="3851469869202611441">"语音信箱"</string>
@@ -133,32 +136,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"正从 SIM 卡中加载..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM 卡联系人"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"必须重新启用联系人应用才能使用此功能。"</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"无法使用语音搜索。"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"“电话”应用已被停用，因此无法拨打电话。"</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"没有任何已安装的应用可以处理所选操作。"</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"输入姓名或手机号"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"未接电话"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"最近没有未接来电。"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"最近没有语音邮件。"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"显示所有联系人"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"仅显示常用联系人"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"通话记录"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"未接电话"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"语音邮件"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"快速拨号"</string>
+    <string name="tab_recents" msgid="929949073851377206">"最近"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"联系人"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"所有联系人"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"所有联系人"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"已从“常用联系人”中删除"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"撤消"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"拨打<xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"添加到通讯录"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"查看全部通话记录"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g>个新的未接电话"</string>
     <string name="no_favorites" msgid="5212485868783382971">"您收藏的联系人和经常通话\n的联系人都会显示在这里。\n现在就开始与联系人通话吧。"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"点按图片可查看所有号码，按住图片可重新排序"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"关闭"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"移除"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"快速拨号"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"所有联系人"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"回电"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"删除"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"听取"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"<xliff:g id="TIMEOFCALL">%3$s</xliff:g>来自<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>（<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>）的未接电话。"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"<xliff:g id="TIMEOFCALL">%3$s</xliff:g>来自<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>（<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>）的已接电话。"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"<xliff:g id="TIMEOFCALL">%3$s</xliff:g>与<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>（<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>）的通话。"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"给<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>回电"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"听取来自<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>的语音邮件"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"删除与<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>的通话记录条目"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"通话记录条目已删除。"</string>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 6f85d5e..90f5928 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"星號"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"零"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"井號鍵"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"留言"</string>
     <string name="description_search_button" msgid="3660807558587384889">"搜尋"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"撥號"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"Backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"致電號碼"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"通話記錄"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"更多選項"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"只顯示未接來電"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"僅顯示語音留言"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"顯示所有通話"</string>
+    <string name="add_contact" msgid="8875804371377471164">"新增聯絡人"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"新增 2 秒暫停功能"</string>
     <string name="add_wait" msgid="3360818652790319634">"新增插播功能"</string>
     <string name="call_settings" msgid="7666474782093693667">"設定"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"撥出電話"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"未接來電"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"語音信箱"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"新增聯絡人"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"致電<xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」的聯絡人詳細資料"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"通話詳細資料"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"新留言。"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> 次通話次數。"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"發短訊給<xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"未聽取的語音留言"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"清除搜尋"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"開始語音搜尋"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"未知"</string>
     <string name="voicemail" msgid="3851469869202611441">"留言"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"正在從 SIM 卡載入..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM 卡聯絡人"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"請重新啟用「通訊錄」應用程式，才能使用這項功能。"</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"無法使用語音搜尋功能。"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"由於「電話」應用程式已停用，因此無法打電話。"</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"沒有任何已安裝的活動可以處理指定操作。"</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"輸入姓名或電話號碼"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"未接來電"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"最近沒有未接來電。"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"最近沒有留言。"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"顯示所有聯絡人"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"只顯示我的最愛"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"記錄"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"未接來電"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"留言信箱"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"快速撥號"</string>
+    <string name="tab_recents" msgid="929949073851377206">"最近存取的聯絡人"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"聯絡人"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"所有聯絡人"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"所有聯絡人"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"已從「我的最愛」中移除"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"復原"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"加入通訊錄"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"查看完整通話記錄"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> 個新的未接來電"</string>
     <string name="no_favorites" msgid="5212485868783382971">"您的最愛聯絡人和經常通話的聯絡人\n會在這裡顯示，\n致電他們吧！"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"輕按相片可查看所有號碼，按住則可重新排序"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"關閉"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"移除"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"快速撥號"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"所有聯絡人"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"回撥電話"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"刪除"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"收聽"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"未接來電：「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」(<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)，通話時間：<xliff:g id="TIMEOFCALL">%3$s</xliff:g>。"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"已接來電：「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」(<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)，通話時間：<xliff:g id="TIMEOFCALL">%3$s</xliff:g>。"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"與「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」通話 (<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>)，通話時間：<xliff:g id="TIMEOFCALL">%3$s</xliff:g>。"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"回撥電話給「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"收聽來自「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」的留言信箱"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"刪除「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」的通話紀錄項目"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"已刪除通話記錄項目。"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 6878e55..5aaf726 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"星號"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"0"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"磅"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"語音信箱"</string>
     <string name="description_search_button" msgid="3660807558587384889">"搜尋"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"撥號"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"Backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"撥號號碼"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"通話紀錄"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"更多選項"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"僅顯示未接來電"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"僅顯示語音留言"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"顯示所有通話"</string>
+    <string name="add_contact" msgid="8875804371377471164">"新增聯絡人"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"暫停時間延長 2 秒"</string>
     <string name="add_wait" msgid="3360818652790319634">"延長等待時間"</string>
     <string name="call_settings" msgid="7666474782093693667">"設定"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"已撥電話"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"未接來電"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"語音留言"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"新增聯絡人"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"撥電話給<xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」的聯絡詳細資料"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"通話詳細資料"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"新的語音留言。"</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"通話 <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> 次。"</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"傳送簡訊給<xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"未聽取的語音留言"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"清除搜尋"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"開始進行語音搜尋"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"不明"</string>
     <string name="voicemail" msgid="3851469869202611441">"語音留言"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"從  SIM 卡讀取中…"</string>
     <string name="simContacts_title" msgid="27341688347689769">"SIM 卡聯絡人"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"您必須重新啟用「使用者」應用程式，才能使用這項功能。"</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"無法使用語音搜尋。"</string>
+    <string name="call_not_available" msgid="8941576511946492225">"「電話」應用程式已遭停用，因此無法撥打電話。"</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"沒有任何已安裝的活動可以處理指定的操作。"</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"輸入姓名或電話號碼"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"未接來電"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"最近沒有未接來電。"</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"最近沒有語音留言。"</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"顯示所有聯絡人"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"只顯示我的收藏"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"通話紀錄"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"未接來電"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"語音留言"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"快速撥號"</string>
+    <string name="tab_recents" msgid="929949073851377206">"最近存取過"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"聯絡人"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"所有聯絡人"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"所有聯絡人"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"已從最愛的聯絡人移除"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"復原"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"新增為聯絡人"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"查看完整通話紀錄"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> 通新的未接來電"</string>
     <string name="no_favorites" msgid="5212485868783382971">"您最愛的聯絡人和經常通話的聯絡人\n都會顯示在這裡，\n可以直接打給他們！"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"輕按圖片即可查看所有號碼，按住圖片則可重新排序"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"關閉"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"移除"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"快速撥號"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"所有聯絡人"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"回電"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"刪除"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"聽取"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"未接來電，來自「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」，<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>，<xliff:g id="TIMEOFCALL">%3$s</xliff:g>。"</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"已接來電，來自「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」，<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>，<xliff:g id="TIMEOFCALL">%3$s</xliff:g>。"</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"撥號給「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」，<xliff:g id="TYPEORLOCATION">%2$s</xliff:g>，<xliff:g id="TIMEOFCALL">%3$s</xliff:g>。"</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"回電給「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"聽取「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」的語音留言"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"刪除「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」的通話紀錄項目"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"通話紀錄項目已刪除。"</string>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index e33c0c2..343d128 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -75,10 +75,8 @@
     <string name="description_image_button_star" msgid="3365919907520767866">"ikanyezi"</string>
     <string name="description_image_button_zero" msgid="4133108949401820710">"lutho"</string>
     <string name="description_image_button_pound" msgid="3039765597595889230">"iphawundi"</string>
-    <string name="description_voicemail_button" msgid="3402506823655455591">"Umyalezo wezwi"</string>
     <string name="description_search_button" msgid="3660807558587384889">"sesha"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"dayela"</string>
-    <string name="description_delete_button" msgid="6263102114033407382">"i-backspace"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"inombolo okumele uyidayele"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"Umlando wekholi"</string>
     <string name="action_menu_overflow_description" msgid="2303272250613084574">"Izinketho eziningi"</string>
@@ -89,6 +87,7 @@
     <string name="menu_show_missed_only" msgid="154473166059743996">"Bonisa okugejiwe kuphela"</string>
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Bonisa ama-imeyli ezwi kuphela"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"Bonisa zonke izingcingo ezenziwe"</string>
+    <string name="add_contact" msgid="8875804371377471164">"Engeza oxhumana naye"</string>
     <string name="add_2sec_pause" msgid="9214012315201040129">"Faka ukumisa okwesikhashana kwamasekhondi angu-2"</string>
     <string name="add_wait" msgid="3360818652790319634">"Yengeza ukulinda"</string>
     <string name="call_settings" msgid="7666474782093693667">"Izilungiselelo"</string>
@@ -109,13 +108,16 @@
     <string name="description_call_log_outgoing_call" msgid="604831756853471658">"Ikholi eliphumayo"</string>
     <string name="description_call_log_missed_call" msgid="2242805209983708825">"Ikholi ekulahlekele"</string>
     <string name="description_call_log_voicemail" msgid="4600798771975158948">"Ivoyisimeyili"</string>
-    <string name="description_add_contact" msgid="3103414772502485851">"Faka oxhumana naye"</string>
     <string name="description_view_contact" msgid="5205669345700598415">"Bheka oxhumana naye <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="3443678121983852666">"Fonela <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="description_contact_details" msgid="51229793651342809">"Imininingwane yokuxhumana ka-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_call_details" msgid="8936017517290240089">"Imininingwane yekholi"</string>
+    <string name="description_new_voicemail" msgid="2133792360865517746">"Ivoyisimeyili entsha."</string>
+    <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> amakholi."</string>
     <string name="description_send_text_message" msgid="7803126439934046891">"Hambisa umyalezo ku <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"I-imeyli yezwi engazwakalanga"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Sula usesho"</string>
     <string name="description_start_voice_search" msgid="520539488194946012">"Qalisa ukusesha ngezwi"</string>
-    <string name="call_log_empty_gecode" msgid="2019639420045039861">" "</string>
     <string name="menu_callNumber" msgid="997146291983360266">"Shayela <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="unknown" msgid="740067747858270469">"Akwaziwa"</string>
     <string name="voicemail" msgid="3851469869202611441">"Ivoyisimeyili"</string>
@@ -133,32 +135,42 @@
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Ilayisha kusuka ekhadini le-SIM..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"Othintana nabo bekhadi le-SIM"</string>
     <string name="add_contact_not_available" msgid="1419207765446461366">"Phinda unike amandla uhlelo lokusebenza lwabantu ukuze basebenzise lesi sici."</string>
+    <string name="voice_search_not_available" msgid="7580616740587850828">"Ukusesha ngezwi akutholakali."</string>
+    <string name="call_not_available" msgid="8941576511946492225">"Ayikwazi ukwenza ikholi yefoni ngoba uhlelo lokusebenza lwefoni likhutshaziwe."</string>
+    <string name="activity_not_available" msgid="8265265380537872585">"Awukho umsebenzi ofakiwe otholakalayo ukuze uphathe isenzo esikhethiwe."</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"Thayipha igama noma inombolo yefoni"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"Konke"</string>
-    <string name="call_log_missed_title" msgid="4541142293870638971">"Phuthelwe"</string>
     <string name="recentMissed_empty" msgid="5427113551557296665">"Awekho amakholi wakamuva aphuthelwe."</string>
     <string name="recentVoicemails_empty" msgid="5163114119598014048">"Awekho amavoyisimeyili wakamuva."</string>
-    <string name="show_all_contacts" msgid="1732256558071778056">"Bonakalisa bonke oxhumana nabo"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"Bonisa izintandokazi kuphela"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"Umlando"</string>
-    <string name="dialpad_0_number" msgid="8859392433961251108">"0"</string>
-    <string name="dialpad_1_number" msgid="6536740525419909212">"1"</string>
-    <string name="dialpad_2_number" msgid="4941546415280852148">"2"</string>
-    <string name="dialpad_3_number" msgid="6539414865185536881">"3"</string>
-    <string name="dialpad_4_number" msgid="979988372051042362">"4"</string>
-    <string name="dialpad_5_number" msgid="5492272478939926734">"5"</string>
-    <string name="dialpad_6_number" msgid="8044579516869379093">"6"</string>
-    <string name="dialpad_7_number" msgid="4175113016564167123">"7"</string>
-    <string name="dialpad_8_number" msgid="7949849563865941621">"8"</string>
-    <string name="dialpad_9_number" msgid="4377059952097526576">"9"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Konke"</string>
+    <string name="call_log_missed_title" msgid="4541142293870638971">"Phuthelwe"</string>
+    <string name="call_log_voicemail_title" msgid="940422274047025948">"Ivoyisimeyili"</string>
+    <string name="tab_speed_dial" msgid="7807567599021643864">"Ukudayela okusheshayo"</string>
+    <string name="tab_recents" msgid="929949073851377206">"Okwakamuva"</string>
+    <string name="tab_all_contacts" msgid="1410922767166533690">"Oxhumana nabo"</string>
     <string name="show_all_contacts_title" msgid="8395378484578221791">"Bonke oxhumana nabo"</string>
     <string name="show_all_contacts_button_text" msgid="8057452310403090131">"Bonke oxhumana nabo"</string>
     <string name="favorite_hidden" msgid="5011234945140912047">"Kukhishiwe kusuka kuzintandokazi"</string>
     <string name="favorite_hidden_undo" msgid="2508998611039406474">"Hlehlisa"</string>
     <string name="search_shortcut_call_number" msgid="7277194656832895870">"Shayela ku-<xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Engeza koxhumana nabo"</string>
+    <string name="recents_footer_text" msgid="7315554578957453359">"Buka wonke umlando wekholi"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> amakholi amasha owaphuthelwe"</string>
     <string name="no_favorites" msgid="5212485868783382971">"Izintandokazi noxhumana nabo\nobashayela ngokuvamile bazovela lapha.\nNgakho-ke, qala ukushaya."</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"Thepha isithombe ukuze ubone zonke izinombolo noma cindezela uphinde ubambe ukuze uhlele kabusha"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"Cashisa"</string>
+    <string name="remove_contact" msgid="1080555335283662961">"Susa"</string>
+    <string name="favorites_menu_speed_dial" msgid="3832518092014707628">"Ukudayela okusheshayo"</string>
+    <string name="favorites_menu_all_contacts" msgid="992506284449891186">"BONKE OXHUMANA NABO"</string>
+    <string name="call_log_action_call_back" msgid="4944463006859852473">"SHAYA FUTHI"</string>
+    <string name="call_log_action_delete" msgid="7371990297839987600">"SUSA"</string>
+    <string name="call_log_action_voicemail" msgid="4978620572562925654">"LALELA"</string>
+    <string name="description_incoming_missed_call" msgid="2610535352863246949">"Ikholi ephuthelwe esuka ku-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_incoming_answered_call" msgid="7206670204016969740">"Ikholi ephenduliwe kusukela ku-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_outgoing_call" msgid="3964211633673659733">"Ikholi eya ku-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>, <xliff:g id="TYPEORLOCATION">%2$s</xliff:g>, <xliff:g id="TIMEOFCALL">%3$s</xliff:g>."</string>
+    <string name="description_call_back_action" msgid="3012837380108884260">"Phinda ushayele u-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_voicemail_action" msgid="8054891873788903063">"Lalela ivoyisimeyili esuka ku-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_delete_action" msgid="7188614068459616450">"Susa ukufakwa kwerekhodi lamakholi we-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"Ukufakwa kurekhodi lamakholi kususiwe."</string>
 </resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 04e10b1..70adb36 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -12,14 +12,16 @@
   ~ 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
-  -->
+-->
 
 <resources>
-
-    <!-- Secondary text color in the Phone app -->
+    <!--  Primary text color in the Dialer -->
     <color name="dialtacts_primary_text_color">#000000</color>
+    <!-- Secondary text color in the Dialer -->
     <color name="dialtacts_secondary_text_color">#888888</color>
-    <color name="dialpad_text_color">#ffffff</color>
+    <color name="dialer_accent_color">#eeff41</color>
+
+    <color name="contact_list_background_color">#f2f2f2</color>
 
     <!-- Color of the text describing an unconsumed missed call. -->
     <color name="call_log_missed_call_highlight_color">#FF0000</color>
@@ -27,8 +29,10 @@
     <!-- Color of the text describing an unconsumed voicemail. -->
     <color name="call_log_voicemail_highlight_color">#33b5e5</color>
 
-    <!-- Colour of voicemail progress bar to the right of position indicator.
-         Same as the background color of the dialer -->
+    <!--
+         Colour of voicemail progress bar to the right of position indicator.
+         Same as the background color of the dialer
+    -->
     <color name="voicemail_playback_seek_bar_yet_to_play">#cecece</color>
 
     <!-- Colour of voicemail progress bar to the left of position indicator. -->
@@ -38,32 +42,26 @@
     <color name="item_selected">#660099cc</color>
 
     <!-- Background color of new dialer activity -->
-    <color name="background_dialer_light">#cecece</color>
+    <color name="background_dialer_light">#ffffff</color>
 
     <!-- Background color of dialer list items (contacts, call log entries) -->
-    <color name="background_dialer_list_items">#eeeeee</color>
+    <color name="background_dialer_list_items">#fbfbfb</color>
 
-    <!-- Background color of new dialpad -->
-    <color name="background_dialpad">#f2020709</color>
-
-    <!-- Primary color of dialpad text, including the call button -->
-    <color name="dialpad_primary_text_color">#33b5e5</color>
-    <!-- Secondary color of dialpad text (used for the letters corresponding to each digit -->
-    <color name="dialpad_secondary_text_color">#aaaaaa</color>
-
-    <!-- Background color of action bars -->
-    <color name="actionbar_background_color">#ffffff</color>
+    <!-- Dark variant of the action bar color. -->
+    <color name="actionbar_background_color_dark">#008aa1</color>
 
     <!-- Color of the 1dp divider that separates favorites -->
     <color name="favorite_contacts_separator_color">#d0d0d0</color>
 
     <!-- Background color of the search box -->
     <color name="searchbox_background_color">#ffffff</color>
-    <!-- Text color of the search box -->
-    <color name="searchbox_text_color">#d3d3d3</color>
+    <!-- Text color of the search box text as entered by user  -->
+    <color name="searchbox_text_color">#000000</color>
+    <!-- Text color of the search box hint text  -->
+    <color name="searchbox_hint_text_color">#d3d3d3</color>
 
     <!-- Color of the contact name in favorite tiles -->
-    <color name="contact_tile_name_color">#f0f0f0</color>
+    <color name="contact_tile_name_color">#ffffff</color>
 
     <!-- Undo dialogue color -->
     <color name="undo_dialogue_text_color">#4d4d4d</color>
@@ -71,16 +69,48 @@
     <!-- Text color for no favorites message -->
     <color name="nofavorite_text_color">#777777</color>
 
-    <!-- Background color of wifi highlight items -->
-    <color name="background_wifi_highlight">#00ff00</color>
+    <!-- Text color for the "Remove" text in its regular state -->
+    <color name="remove_text_color">#555555</color>
 
-    <!-- Foreground color of wifi highlight items -->
-    <color name="foreground_wifi_highlight">#ffffff</color>
+    <!-- Text color for the "Remove" text when a contact is dragged on top of the remove view -->
+    <color name="remove_highlighted_text_color">#FF3F3B</color>
 
-    <!-- Dark (e.g. border) regions of wifi highlight items -->
-    <color name="wifi_dark_wifi_highlight">#009900</color>
+    <!-- Text color for the "speed dial" label in the favorites menu. -->
+    <color name="speed_dial_text_color">#555555</color>
 
-    <!-- Generic separator color for wifi list items -->
-    <color name="wifi_list_separator">#909090</color>
+    <!-- Background color for the "All Contacts" button in the favorites menu. -->
+    <color name="all_contacts_button_color">#999999</color>
 
+    <!-- Background color for the "All Contacts" button in the favorites menu when pressed. -->
+    <color name="all_contacts_button_pressed_color">#808080</color>
+
+    <!-- Background color for the favorites menu. -->
+    <color name="favorites_menu_background_color">#eeeeee</color>
+
+    <!-- Text color for the "All Contacts" button above the favorite callers -->
+    <color name="all_contacts_button_text_color">#ffffff</color>
+
+    <!-- Color of the bottom border below the contacts grid on the main dialer screen. -->
+    <color name="contacts_grid_bottom_border_color">#16000000</color>
+
+    <!-- Color of action bar text. Ensure this stays in sync with packages/Telephony
+         phone_settings_actionbar_text_color-->
+    <color name="actionbar_text_color">#ffffff</color>
+    <color name="actionbar_unselected_text_color">#a6ffffff</color>
+
+    <!-- Color of actions in expanded call log entries.  This text color represents actions such
+         as call back, play voicemail, etc. -->
+    <color name="call_log_action_text">#1dc7db</color>
+
+    <!-- Color of the "delete" action in expanded call log entries. -->
+    <color name="call_log_action_delete_text">#ff4f4f</color>
+
+    <!-- Color of action text for expanded call log entries which is disabled. -->
+    <color name="call_log_disabled_text">#b3b3b3</color>
+
+    <!-- Color for missed call icons. -->
+    <color name="missed_call">#ff2e58</color>
+
+    <!-- Color for answered or outgoing call icons. -->
+    <color name="answered_call">#2aad6f</color>
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 1743952..89bd592 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -13,66 +13,121 @@
   ~ 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
-  -->
+-->
 <resources>
 
-    <!-- Height of edit text in dialpad fragment -->
-    <dimen name="dialpad_horizontal_margin">0dip</dimen>
-    <dimen name="dialpad_vertical_margin">2dip</dimen>
-    <dimen name="dialpad_digits_text_size">35sp</dimen>
-
-    <!-- Just used in landscape mode -->
-    <dimen name="dialpad_digits_height">0px</dimen>
-    <dimen name="dialpad_digits_margin_bottom">0px</dimen>
-    <dimen name="dialpad_center_margin">3dp</dimen>
-    <dimen name="dialpad_button_margin">2dp</dimen>
-    <!-- Match call_button_height to Phone's dimens/in_call_end_button_height -->
-    <dimen name="call_button_height">74dp</dimen>
-
     <!--  Search View -->
     <dimen name="search_text_size">14sp</dimen>
 
+    <!--
+          Drag to remove view (in dp because it is used in conjunction with a statically
+          sized icon
+    -->
+    <dimen name="remove_text_size">16dp</dimen>
+
     <!-- Call Log -->
     <dimen name="call_log_call_action_size">32dip</dimen>
-    <dimen name="call_log_call_action_width">48dip</dimen>
+    <dimen name="call_log_call_action_width">54dp</dimen>
     <dimen name="call_log_icon_margin">4dip</dimen>
     <dimen name="call_log_inner_margin">8dip</dimen>
     <dimen name="call_log_outer_margin">8dip</dimen>
     <dimen name="call_log_indent_margin">24dip</dimen>
     <dimen name="call_log_list_item_height">56dip</dimen>
-    <dimen name="call_log_list_contact_photo_size">64dip</dimen>
+    <dimen name="call_log_list_contact_photo_size">40dip</dimen>
     <dimen name="call_detail_contact_name_margin">24dip</dimen>
     <dimen name="call_detail_button_spacing">2dip</dimen>
+    <!-- Defines the vertical margin for the vertical separator between
+         the main area of a call log entry and the secondary action button. -->
+    <dimen name="call_log_list_item_vertical_divider_margin">17dp</dimen>
 
-    <!-- Layout weight values for dialpad screen. These layouts will be used in one
-         LinearLayout (dialpad_fragment.xml), configuring dialpad screen's vertical
-         ratio. -->
-    <integer name="dialpad_layout_weight_digits">15</integer>
-    <integer name="dialpad_layout_weight_dialpad">65</integer>
+    <!-- Defines the width of the vertical separator between
+         the main area of a call log entry and the secondary action button. -->
+    <dimen name="call_log_list_item_vertical_divider_width">1dp</dimen>
 
-    <!-- Text dimensions for dialpad keys -->
-    <dimen name="dialpad_key_numbers_size">40dp</dimen>
-    <dimen name="dialpad_key_letters_size">11dp</dimen>
-    <dimen name="dialpad_key_plus_size">15dp</dimen>
-    <dimen name="dialpad_key_special_characters_size">25dp</dimen>
-    <dimen name="dialpad_key_letters_width">41dp</dimen>
+    <!-- Match call_button_height to Phone's dimens/in_call_end_button_height -->
+    <dimen name="call_button_height">74dp</dimen>
 
+    <!-- Right margin of the floating action button -->
+    <dimen name="floating_action_button_margin_right">10dp</dimen>
+    <!-- Bottom margin of the floating action button -->
+    <dimen name="floating_action_button_margin_bottom">10dp</dimen>
 
-    <dimen name="fake_action_bar_height">60dp</dimen>
-    <!-- Min with of fake menu buttons, which should be same as ActionBar's one -->
-    <dimen name="fake_menu_button_min_width">56dp</dimen>
-
-    <!--  Favorites tile and recent call log padding -->
-    <dimen name="contact_tile_divider_padding">3dp</dimen>
+    <!-- Dimensions for speed dial tiles -->
+    <dimen name="contact_tile_divider_width">1dp</dimen>
     <dimen name="contact_tile_info_button_height_and_width">36dp</dimen>
-    <dimen name="favorites_row_top_padding">8dp</dimen>
-    <dimen name="favorites_row_bottom_padding">8dp</dimen>
-    <dimen name="favorites_row_start_padding">8dp</dimen>
-    <dimen name="favorites_row_end_padding">8dp</dimen>
+    <item name="contact_tile_height_to_width_ratio" type="dimen">67%</item>
+    <dimen name="contact_tile_text_side_padding">10dp</dimen>
+    <dimen name="contact_tile_text_bottom_padding">8dp</dimen>
+    <dimen name="favorites_row_top_padding">1dp</dimen>
+    <dimen name="favorites_row_bottom_padding">0dp</dimen>
+    <dimen name="favorites_row_start_padding">1dp</dimen>
+
+    <!-- Padding from the last contact tile will provide the end padding. -->
+    <dimen name="favorites_row_end_padding">0dp</dimen>
     <dimen name="favorites_row_undo_text_side_padding">32dp</dimen>
+
+    <!-- Dimensions for most recent call shortcut cards -->
+    <dimen name="recent_call_log_item_translation_z">5dp</dimen>
     <dimen name="recent_call_log_item_padding">8dp</dimen>
 
+    <!-- Size of the star icon on the favorites tile. -->
+    <dimen name="favorites_star_icon_size">12dp</dimen>
+
     <!-- Padding for the tooltip -->
     <dimen name="dismiss_button_padding_start">20dip</dimen>
     <dimen name="dismiss_button_padding_end">28dip</dimen>
+
+    <!-- Padding above the favorites menu. -->
+    <dimen name="favorites_menu_padding_top">6dp</dimen>
+    <!-- Padding below the favorites menu.. -->
+    <dimen name="favorites_menu_padding_bottom">3dp</dimen>
+    <!-- Horizontal padding in the favorites menu. -->
+    <dimen name="favorites_menu_padding_horizontal">8dp</dimen>
+    <!-- Text size for the "speed dial" text in the favorites menu. -->
+    <dimen name="favorites_menu_speed_dial_text_size">18sp</dimen>
+    <!-- Height of the speed dial TextView in the favorites menu. -->
+    <dimen name="favorites_menu_speed_dial_height">24dp</dimen>
+    <!-- Text size for the "All Contacts" text in the favorites menu. -->
+    <dimen name="favorites_menu_all_contacts_text_size">12sp</dimen>
+    <!-- Height of the all contacts Button in the favorites menu. -->
+    <dimen name="favorites_menu_all_contacts_height">24dp</dimen>
+
+    <!-- Margin to the left and right of the search box. -->
+    <dimen name="search_margin_horizontal">7dp</dimen>
+    <!-- Margin above the search box. -->
+    <dimen name="search_top_margin">4dp</dimen>
+    <!-- Margin below the search box. -->
+    <dimen name="search_bottom_margin">4dp</dimen>
+    <!-- Search box text size -->
+    <dimen name="search_text_size">13.24sp</dimen>
+    <!-- Search box interior padding - left -->
+    <dimen name="search_box_left_padding">16dp</dimen>
+    <!-- Search box interior padding - right -->
+    <dimen name="search_box_right_padding">8dp</dimen>
+    <!-- Padding around the icon in the search box. -->
+    <dimen name="search_box_icon_padding">3dp</dimen>
+    <!-- Left margin of the text field in the search box. -->
+    <dimen name="search_box_text_left_margin">8dp</dimen>
+    <!-- Size of the icon (voice search, close search) in the search box. -->
+    <dimen name="search_box_icon_size">37dp</dimen>
+
+    <!-- Size of text in tabs. -->
+    <dimen name="tab_height">43dp</dimen>
+    <dimen name="tab_text_size">14sp</dimen>
+
+    <!-- Padding to the left and right of call log action buttons. -->
+    <dimen name="call_log_action_horizontal_padding">8dp</dimen>
+    <!-- Left-padding for the call log action buttons - ensures the buttons align with the text
+         to the right of the contact badge.  Adjust when any of the following change:
+         call_log_action_horizontal_padding
+         call_log_list_contact_photo_size  -->
+    <dimen name="call_log_actions_left_padding">48dp</dimen>
+    <!-- Text size for primary call log text -->
+    <dimen name="call_log_primary_text_size">16sp</dimen>
+    <!-- Text size for secondary call log text -->
+    <dimen name="call_log_secondary_text_size">14sp</dimen>
+    <!-- Height of the call log actions section for each call log entry -->
+    <dimen name="call_log_action_height">48dp</dimen>
+    <!-- Elevation of expanded call log items. -->
+    <dimen name="call_log_expanded_elevation">4dp</dimen>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b04eddd..ecf190a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -265,11 +265,10 @@
     -->
     <string name="description_image_button_pound">pound</string>
 
-    <!-- String describing the Voicemail ImageButton
+    <!-- String describing the image on ImageButton plus
 
          Used by AccessibilityService to announce the purpose of the button.
     -->
-    <string name="description_voicemail_button">voicemail</string>
 
     <!-- String describing the Search ImageButton
 
@@ -284,12 +283,6 @@
     -->
     <string name="description_dial_button">dial</string>
 
-    <!-- String describing the Delete/Backspace ImageButton
-
-         Used by AccessibilityService to announce the purpose of the button.
-    -->
-    <string name="description_delete_button">backspace</string>
-
     <!-- String describing the digits text box containing the number to dial.
 
          Used by AccessibilityService to announce the purpose of the view.
@@ -329,6 +322,7 @@
     <string name="menu_show_all_calls">Show all calls</string>
 
     <!-- Menu items for dialpad options as part of Pause and Wait ftr -->
+    <string name="add_contact">Add contact</string>
     <string name="add_2sec_pause">Add 2-sec pause</string>
     <string name="add_wait">Add wait</string>
 
@@ -414,13 +408,6 @@
     -->
     <string name="description_call_log_voicemail">Voicemail</string>
 
-    <!-- String describing the button to add a contact for the current number.
-
-        Note: AccessibilityServices use this attribute to announce what the view represents.
-              This is especially valuable for views without textual representation like ImageView.
-    -->
-    <string name="description_add_contact">Add contact</string>
-
     <!-- String describing the button to view the contact for the current number.
 
         Note: AccessibilityServices use this attribute to announce what the view represents.
@@ -435,6 +422,33 @@
     -->
     <string name="description_call">Call <xliff:g id="name">%1$s</xliff:g></string>
 
+    <!-- String describing the button to access the contact details for a name or number.
+
+        Note: AccessibilityServices use this attribute to announce what the view represents.
+              This is especially valuable for views without textual representation like ImageView.
+    -->
+    <string name="description_contact_details">Contact details for <xliff:g id="nameOrNumber">%1$s</xliff:g></string>
+
+    <!-- String describing the button to access call details in the call log.
+
+        Note: AccessibilityServices use this attribute to announce what the view represents.
+              This is especially valuable for views without textual representation like ImageView.
+    -->
+    <string name="description_call_details">Call details</string>
+
+    <!-- String indicating a call log entry has an associated voicemail.
+
+    Note: AccessibilityServices use this attribute to announce what the view represents.
+          This is especially valuable for views without textual representation like ImageView.
+    -->
+    <string name="description_new_voicemail">New voicemail.</string>
+
+    <!-- String indicating the number of calls to/from a caller in the call log.
+
+    Note: AccessibilityServices use this attribute to announce what the view represents.
+          This is especially valuable for views without textual representation like ImageView.
+    -->
+    <string name="description_num_calls"><xliff:g id="numberOfCalls">%1$s</xliff:g> calls.</string>
 
     <!-- String describing the button to SMS a number or contact.
 
@@ -453,13 +467,12 @@
     -->
     <string name="description_call_log_unheard_voicemail">Unheard voicemail</string>
 
+    <!--  String describing the icon used to clear the search field -->
+    <string name="description_clear_search">Clear search</string>
+
     <!-- String describing the icon used to start a voice search -->
     <string name="description_start_voice_search">Start voice search</string>
 
-    <!-- The string used to represent an unknown location for a phone number in the call log
-        Do not translate. -->
-    <string name="call_log_empty_geocode"></string>
-
     <!-- Menu item used to call a contact, containing the number of the contact to call -->
     <string name="menu_callNumber">Call <xliff:g id="number">%s</xliff:g></string>
 
@@ -520,90 +533,54 @@
     <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
     <string name="add_contact_not_available">Re-enable the People application to use this feature.</string>
 
+    <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
+    <string name="voice_search_not_available">Voice search is not available.</string>
+
+    <!-- Message displayed when the Phone application has been disabled and a phone call cannot
+         be made. [CHAR LIMIT=NONE] -->
+    <string name="call_not_available">Cannot make a phone call because the Phone application has been disabled.</string>
+
+    <!-- Message displayed when there is no application available to handle a particular action.
+         [CHAR LIMIT=NONE] -->
+    <string name="activity_not_available">No installed activity available to handle selected action.</string>
+
     <!-- Hint displayed in dialer search box when there is no query that is currently typed.
          [CHAR LIMIT=30] -->
     <string name="dialer_hint_find_contact">Type a name or phone number</string>
 
-    <!-- Title for the call log tab containing the list of all voicemails and calls
-         [CHAR LIMIT=15] -->
-    <string name="call_log_all_title">All</string>
-
-    <!-- Title for the call log tab containing the list of all missed calls only
-         [CHAR LIMIT=15] -->
-    <string name="call_log_missed_title">Missed</string>
-
     <!-- String resource for the font-family to use for the call log activity's title
          Do not translate. -->
     <string name="call_log_activity_title_font_family">sans-serif-light</string>
 
-    <!-- String resource for the font-family to use for show all contacts' title
-         Do not translate. -->
-    <string name="show_all_contacts_title_font_family">sans-serif-light</string>
-
     <!-- Text displayed when the list of missed calls is empty -->
     <string name="recentMissed_empty">No recent missed calls.</string>
 
     <!-- Text displayed when the list of voicemails is empty -->
     <string name="recentVoicemails_empty">No recent voicemails.</string>
 
-    <!--  Menu option to enable all contacts to be displayed -->
-    <string name="show_all_contacts">Show all contacts</string>
-
     <!--  Menu option to show favorite contacts only -->
     <string name="show_favorites_only">Show favorites only</string>
 
     <!--  Title of activity that displays a list of all calls -->
     <string name="call_log_activity_title">History</string>
 
-    <!-- The digit to be displayed on the 0 key of the dialpad [CHAR LIMIT=1]-->
-    <string name="dialpad_0_number">0</string>
-    <!-- The digit to be displayed on the 1 key of the dialpad [CHAR LIMIT=1]-->
-    <string name="dialpad_1_number">1</string>
-    <!-- The digit to be displayed on the 2 key of the dialpad [CHAR LIMIT=1]-->
-    <string name="dialpad_2_number">2</string>
-    <!-- The digit to be displayed on the 3 key of the dialpad [CHAR LIMIT=1]-->
-    <string name="dialpad_3_number">3</string>
-    <!-- The digit to be displayed on the 4 key of the dialpad [CHAR LIMIT=1]-->
-    <string name="dialpad_4_number">4</string>
-    <!-- The digit to be displayed on the 5 key of the dialpad [CHAR LIMIT=1]-->
-    <string name="dialpad_5_number">5</string>
-    <!-- The digit to be displayed on the 6 key of the dialpad [CHAR LIMIT=1]-->
-    <string name="dialpad_6_number">6</string>
-    <!-- The digit to be displayed on the 7 key of the dialpad [CHAR LIMIT=1]-->
-    <string name="dialpad_7_number">7</string>
-    <!-- The digit to be displayed on the 8 key of the dialpad [CHAR LIMIT=1]-->
-    <string name="dialpad_8_number">8</string>
-    <!-- The digit to be displayed on the 9 key of the dialpad [CHAR LIMIT=1]-->
-    <string name="dialpad_9_number">9</string>
-    <!--  Do not translate. -->
-    <string name="dialpad_star_number">*</string>
-    <!--  Do not translate. -->
-    <string name="dialpad_pound_number">#</string>
+    <!-- Title for the call log tab containing the list of all voicemails and calls
+         [CHAR LIMIT=30] -->
+    <string name="call_log_all_title">All</string>
 
-    <!--  Do not translate. -->
-    <string name="dialpad_0_letters">+</string>
-    <!--  Do not translate. -->
-    <string name="dialpad_1_letters"></string>
-    <!--  Do not translate. -->
-    <string name="dialpad_2_letters">ABC</string>
-    <!--  Do not translate. -->
-    <string name="dialpad_3_letters">DEF</string>
-    <!--  Do not translate. -->
-    <string name="dialpad_4_letters">GHI</string>
-    <!--  Do not translate. -->
-    <string name="dialpad_5_letters">JKL</string>
-    <!--  Do not translate. -->
-    <string name="dialpad_6_letters">MNO</string>
-    <!--  Do not translate. -->
-    <string name="dialpad_7_letters">PQRS</string>
-    <!--  Do not translate. -->
-    <string name="dialpad_8_letters">TUV</string>
-    <!--  Do not translate. -->
-    <string name="dialpad_9_letters">WXYZ</string>
-    <!--  Do not translate. -->
-    <string name="dialpad_star_letters"></string>
-    <!--  Do not translate. -->
-    <string name="dialpad_pound_letters"></string>
+    <!-- Title for the call log tab containing the list of all missed calls only
+         [CHAR LIMIT=30] -->
+    <string name="call_log_missed_title">Missed</string>
+
+    <!-- Title for the call log tab containing the list of all voicemail calls only
+         [CHAR LIMIT=30] -->
+    <string name="call_log_voicemail_title">Voicemail</string>
+
+    <string name="tab_speed_dial">Speed Dial</string>
+
+    <string name="tab_recents">Recents</string>
+
+    <string name="tab_all_contacts">Contacts</string>
 
     <!--  Title of fragment that displays all contacts -->
     <string name="show_all_contacts_title">All contacts</string>
@@ -622,6 +599,9 @@
     <!-- Shortcut item used to add a number directly from search -->
     <string name="search_shortcut_add_to_contacts">Add to contacts</string>
 
+    <!-- Title for the recent calls footer that brings users to the full call history when clicked -->
+    <string name="recents_footer_text">View full call history</string>
+
     <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
     <string name="num_missed_calls"><xliff:g id="number">%s</xliff:g> new missed calls</string>
 
@@ -637,26 +617,85 @@
     <!-- Content description for dismiss button on badge. [CHAR LIMIT=NONE] -->
     <string name="description_dismiss">Dismiss</string>
 
-    <string name="wifi_no_signal_no_problem">No Signal? No Problem.</string>
+    <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
+    <string name="remove_contact">Remove</string>
 
-    <string name="wifi_enable_google_wifi_calling">Enable Google Wi-Fi Calling</string>
+    <!-- Header text displayed on the main dialer screen above the list of favorite phone numbers.
+         [CHAR LIMIT=21] -->
+    <string name="favorites_menu_speed_dial">Speed Dial</string>
 
-    <string name="wifi_when_connected_to_a_signal">When connected to a strong Wi-Fi signal:</string>
+    <!-- Button text for the "all contacts" button displayed on the main dialer screen above the
+         list of favorite phone numbers.  Navigates the user to the "All Contacts" list.
+         This text represents the same action as the text in string "menu_allContacts".
+         [CHAR LIMIT=21] -->
+    <string name="favorites_menu_all_contacts">ALL CONTACTS</string>
 
-    <string name="wifi_always_use_wifi">Always use Wi-Fi to make calls</string>
+    <!-- The font-family to use for the "speed dial" label on the favorites menu.
+         Do not translate. -->
+    <string name="favorites_menu_speed_dial_font_family">sans-serif-light</string>
 
-    <string name="wifi_ask_use_wifi">Always ask</string>
+    <!-- The font-family to use for the "all contacts" label on the favorites menu.
+         Do not translate. -->
+    <string name="favorites_menu_all_contacts_font_family">sans-serif</string>
 
-    <string name="wifi_never_use_wifi">Never use Wi-Fi to make calls</string>
+    <!-- The font-family to use for the text inside the searchbox.
+         Do not translate. -->
+    <string name="search_font_family">sans-serif</string>
 
-    <string name="wifi_next_setup_screen">Next</string>
+    <!-- The font-family to use for tab text.
+         Do not translate. -->
+    <string name="tab_font_family">sans-serif</string>
 
-    <string name="wifi_previous_setup_screen">Back</string>
+    <!-- Button text for the "call back" button displayed underneath an entry in the call log.
+         Tapping causes a call to be placed to the caller represented by the call log entry.
+         [CHAR LIMIT=30] -->
+    <string name="call_log_action_call_back">CALL BACK</string>
 
-    <string name="wifi_setup_completed">Boom. Wi-Fi calling is all set up. You can change your preferences or turn it off anytime in settings.</string>
+    <!-- Button text for the "DELETE" button displayed underneath an entry in the call log.
+         Tapping causes the call log entry in question to be removed from the call log.
+         [CHAR LIMIT=30] -->
+    <string name="call_log_action_delete">DELETE</string>
 
-    <string name="wifi_setup_ok">Ok, got it</string>
+    <!-- Button text for the "LISTEN" button displayed underneath an entry in the call log.
+         Tapping navigates the user to the call details screen where the user can listen to the
+         voicemail represented by the call log entry.
+         [CHAR LIMIT=30] -->
+    <string name="call_log_action_voicemail">LISTEN</string>
 
-    <string name="wifi_setup_settings_shortcut">Call settings</string>
+    <!-- String describing an incoming missed call entry in the call log.
+         Note: AccessibilityServices uses this attribute to announce what the view represents.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_incoming_missed_call">Missed call from <xliff:g id="nameOrNumber" example="John Smith">%1$s</xliff:g>, <xliff:g id="typeOrLocation" example="Mobile">%2$s</xliff:g>, <xliff:g id="timeOfCall" example="2 min ago">%3$s</xliff:g>.</string>
 
+    <!-- String describing an incoming answered call entry in the call log.
+         Note: AccessibilityServices uses this attribute to announce what the view represents.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_incoming_answered_call">Answered call from <xliff:g id="nameOrNumber" example="John Smith">%1$s</xliff:g>, <xliff:g id="typeOrLocation" example="Mobile">%2$s</xliff:g>, <xliff:g id="timeOfCall" example="2 min ago">%3$s</xliff:g>.</string>
+
+    <!-- String describing an outgoing call entry in the call log.
+         Note: AccessibilityServices uses this attribute to announce what the view represents.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_outgoing_call">Call to <xliff:g id="nameOrNumber" example="John Smith">%1$s</xliff:g>, <xliff:g id="typeOrLocation" example="Mobile">%2$s</xliff:g>, <xliff:g id="timeOfCall" example="2 min ago">%3$s</xliff:g>.</string>
+
+    <!-- String describing the "call back" action for an entry in the call log.  The call back
+         action triggers a return call to the named user.
+         Note: AccessibilityServices uses this attribute to announce the purpose of the button.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_call_back_action">Call back <xliff:g id="nameOrNumber" example="John Smith">%1$s</xliff:g></string>
+
+    <!-- String describing the "listen" action for an entry in the call log.  The listen
+         action is shown for call log entries representing a voicemail message and this button
+         triggers playing back the voicemail.
+         Note: AccessibilityServices uses this attribute to announce the purpose of the button.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_voicemail_action">Listen to voicemail from <xliff:g id="nameOrNumber" example="John Smith">%1$s</xliff:g></string>
+
+    <!-- String describing the "delete" action for an entry in the call log.  The delete
+         action triggers the removal of the current call log entry from the call log.
+         Note: AccessibilityServices uses this attribute to announce the purpose of the button.
+         [CHAR LIMIT=NONE] -->
+    <string name="description_delete_action">Delete call log entry for <xliff:g id="nameOrNumber" example="John Smith">%1$s</xliff:g></string>
+
+    <!-- Toast message which appears when a call log entry is deleted. -->
+    <string name="toast_entry_removed">Call log entry deleted.</string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 89678fc..659d5ab 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -16,12 +16,20 @@
   -->
 <resources>
     <style name="DialtactsTheme"
-           parent="android:Theme.Holo.Light">
+           parent="android:Theme.Quantum.Light">
         <item name="android:textColorPrimary">@color/dialtacts_primary_text_color</item>
         <item name="android:textColorSecondary">@color/dialtacts_secondary_text_color</item>
-        <item name="android:windowActionBarOverlay">false</item>
+        <item name="android:windowActionBarOverlay">true</item>
+        <item name="android:windowActionModeOverlay">true</item>
         <item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
+        <!-- Style for the tabs (for the tabs) -->
         <item name="android:actionBarTabStyle">@style/DialtactsActionBarTabStyle</item>
+        <!-- Style for the tab bar (for the divider between tabs) -->
+        <item name="android:actionBarTabBarStyle">@style/DialtactsActionBarTabBarStyle</item>
+        <!-- Style for the tab bar text (for text on tabs) -->
+        <item name="android:actionBarTabTextStyle">@style/DialtactsActionBarTabTextStyle</item>
+        <!-- Style for the overflow button in the actionbar. -->
+        <item name="android:actionOverflowButtonStyle">@style/DialtactsActionBarOverflow</item>
         <item name="android:windowContentOverlay">@null</item>
         <!--  Searchbox Style -->
         <item name="android:editTextStyle">@style/DialtactsSearchboxStyle</item>
@@ -29,7 +37,6 @@
         <item name="activated_background">@drawable/list_item_activated_background</item>
         <item name="section_header_background">@drawable/list_title_holo</item>
         <item name="list_section_header_height">32dip</item>
-        <item name="list_item_divider">?android:attr/listDivider</item>
         <item name="list_item_padding_top">8dip</item>
         <item name="list_item_padding_right">0dip</item>
         <item name="list_item_padding_bottom">8dip</item>
@@ -41,17 +48,16 @@
         <item name="list_item_photo_size">@dimen/contact_browser_list_item_photo_size</item>
         <item name="list_item_profile_photo_size">70dip</item>
         <item name="list_item_prefix_highlight_color">@color/people_app_theme_color</item>
+        <item name="list_item_background_color">@color/background_dialer_light</item>
         <item name="list_item_header_text_indent">8dip</item>
         <item name="list_item_header_text_color">@color/people_app_theme_color</item>
         <item name="list_item_header_text_size">14sp</item>
         <item name="list_item_header_height">30dip</item>
-        <item name="list_item_header_underline_height">1dip</item>
-        <item name="list_item_header_underline_color">@color/favorite_contacts_separator_color</item>
         <item name="list_item_data_width_weight">5</item>
         <item name="list_item_label_width_weight">3</item>
-        <item name="contact_browser_list_padding_left">8dip</item>
-        <item name="contact_browser_list_padding_right">0dip</item>
-        <item name="contact_browser_background">@android:color/transparent</item>
+        <item name="contact_browser_list_padding_left">16dp</item>
+        <item name="contact_browser_list_padding_right">0dp</item>
+        <item name="contact_browser_background">@color/contact_list_background_color</item>
         <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
         <!-- CallLog -->
         <item name="call_log_primary_text_color">#000000</item>
@@ -66,24 +72,38 @@
         <item name="call_log_voicemail_status_action_text_color">#33b5e5</item>
             <!-- Favorites -->
         <item name="favorites_padding_bottom">?android:attr/actionBarSize</item>
+	<item name="android:colorPrimaryDark">@color/actionbar_background_color_dark</item>
+    </style>
+
+    <!-- Action bar overflow menu icon. -->
+    <style name="DialtactsActionBarOverflow"
+           parent="@android:style/Widget.Quantum.Light.ActionButton.Overflow">
+        <item name="android:src">@drawable/ic_menu_overflow_lt</item>
     </style>
 
     <style name="DialpadTheme" parent="DialtactsTheme">
         <item name="android:textColorPrimary">#FFFFFF</item>
     </style>
 
-    <style name="DialtactsThemeWithActionBarOverlay" parent="DialtactsTheme">
-        <item name="android:windowActionBarOverlay">true</item>
+    <style name="DialtactsThemeWithoutActionBarOverlay" parent="DialtactsTheme">
+        <item name="android:windowActionBarOverlay">false</item>
     </style>
 
-    <style name="CallDetailActivityTheme" parent="android:Theme.Holo.Light">
-        <item name="android:windowBackground">@color/background_dialer_list_items</item>
+    <!-- Hide the actionbar title during the activity preview -->
+    <style name="DialtactsActivityTheme" parent="DialtactsTheme">
+        <item name="android:actionBarStyle">@style/DialtactsActionBarWithoutTitleStyle</item>
+    </style>
+
+    <style name="CallDetailActivityTheme" parent="android:Theme.Quantum.Light">
+        <item name="android:windowBackground">@color/background_dialer_light</item>
         <item name="android:gravity">top</item>
         <item name="android:listViewStyle">@style/ListViewStyle</item>
+        <item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
+        <item name="android:actionOverflowButtonStyle">@style/DialtactsActionBarOverflow</item>
         <!-- CallLog -->
-        <item name="call_log_primary_text_color">#333333</item>
+        <item name="call_log_primary_text_color">#404040</item>
         <item name="call_log_primary_background_color">#FFFFFF</item>
-        <item name="call_log_secondary_text_color">#333333</item>
+        <item name="call_log_secondary_text_color">#9a9a9a</item>
         <item name="call_log_secondary_background_color">#FFFFFF</item>
         <item name="call_log_header_color">#FFFFFF</item>
         <!-- VoicemailStatus -->
@@ -93,47 +113,46 @@
         <item name="call_log_voicemail_status_action_text_color">#33b5e5</item>
     </style>
 
-    <style name="Theme">
-    </style>
-
-    <style name="DialtactsDigitsTextAppearance">
-        <item name="android:maxLines">1</item>
-        <item name="android:scrollHorizontally">true</item>
-        <item name="android:textSize">@dimen/dialpad_digits_text_size</item>
-        <item name="android:freezesText">true</item>
-        <item name="android:focusableInTouchMode">true</item>
-        <item name="android:editable">true</item>
-        <item name="android:cursorVisible">false</item>
-        <item name="android:layout_weight">0</item>
-    </style>
-
-    <style name="DialtactsDialpadButtonStyle">
-        <item name="android:layout_width">0dip</item>
-        <item name="android:layout_height">match_parent</item>
-        <item name="android:layout_weight">1</item>
-        <item name="android:background">?android:attr/selectableItemBackground</item>
-        <item name="android:soundEffectsEnabled">false</item>
-    </style>
-
-    <style name="DialpadHorizontalSeparator">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">@dimen/dialpad_vertical_margin</item>
-        <item name="android:background">#66000000</item>
-    </style>
-
-    <style name="DialtactsActionBarStyle" parent="android:Widget.Holo.ActionBar">
-        <item name="android:background">@drawable/call_history_actionbar_background</item>
-        <item name="android:backgroundStacked">@color/actionbar_background_color</item>
+    <style name="DialtactsActionBarStyle" parent="android:Widget.Quantum.ActionBar">
+        <item name="android:background">@color/actionbar_background_color</item>
+        <item name="android:backgroundStacked">#ffffff</item>
+        <item name="android:titleTextStyle">@style/DialtactsActionBarTitleText</item>
         <!-- Empty icon -->
         <item name="android:icon">@android:color/transparent</item>
+    </style>
+
+    <style name="DialtactsActionBarWithoutTitleStyle" parent="DialtactsActionBarStyle">
         <item name="android:displayOptions"></item>
     </style>
 
-    <style name="DialtactsActionBarTabStyle" parent="@android:style/Widget.Holo.ActionBar.TabView">
-        <item name="android:background">@drawable/action_bar_tab</item>
+    <!-- Text in the action bar at the top of the screen -->
+    <style name="DialtactsActionBarTitleText"
+           parent="@android:style/TextAppearance.Quantum.Widget.ActionBar.Title">
+        <item name="android:textColor">@color/actionbar_text_color</item>
     </style>
 
-    <style name="ListViewStyle" parent="@android:style/Widget.Holo.Light.ListView">
+    <!-- Styling for the tab bar; handles styling of the divider line. -->
+    <style name="DialtactsActionBarTabBarStyle"
+           parent="@android:style/Widget.Quantum.ActionBar.TabBar">
+        <item name="android:showDividers">none</item>
+    </style>
+
+    <!-- Styling for tabs. -->
+    <style name="DialtactsActionBarTabStyle" parent="@android:style/Widget.Quantum.ActionBar.TabView">
+        <item name="android:background">@drawable/action_bar_tab</item>
+        <item name="android:showDividers">none</item>
+    </style>
+
+    <!-- Text style for tabs. -->
+    <style name="DialtactsActionBarTabTextStyle"
+           parent="android:style/Widget.Quantum.Light.ActionBar.TabText">
+        <item name="android:textColor">@color/tab_text_color</item>
+        <item name="android:textSize">@dimen/tab_text_size</item>
+        <item name="android:fontFamily">@string/tab_font_family</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <style name="ListViewStyle" parent="@android:style/Widget.Quantum.Light.ListView">
         <item name="android:overScrollMode">always</item>
     </style>
 
diff --git a/res/drawable/tab_unselected_pressed.xml b/res/xml/searchable.xml
similarity index 61%
copy from res/drawable/tab_unselected_pressed.xml
copy to res/xml/searchable.xml
index 2362b65..0e8242d 100644
--- a/res/drawable/tab_unselected_pressed.xml
+++ b/res/xml/searchable.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2013 The Android Open Source Project
+<!-- Copyright (C) 2014 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.
@@ -14,13 +13,10 @@
      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>
-        <shape android:shape="rectangle" >
-            <solid android:color="#4dffffff" />
-        </shape>
-    </item>
-
-</layer-list>
\ No newline at end of file
+<searchable xmlns:android="http://schemas.android.com/apk/res/android"
+    android:label="@string/applicationLabel"
+    android:hint="@string/dialer_hint_find_contact"
+    android:inputType="textNoSuggestions"
+    android:imeOptions="actionSearch"
+    android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"
+    />
\ No newline at end of file
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index c96cbf1..decfe9b 100644
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -18,6 +18,7 @@
 
 import android.app.Activity;
 import android.app.LoaderManager.LoaderCallbacks;
+import android.content.ActivityNotFoundException;
 import android.content.ContentResolver;
 import android.content.ContentUris;
 import android.content.ContentValues;
@@ -31,6 +32,7 @@
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.provider.CallLog;
+import android.provider.ContactsContract;
 import android.provider.CallLog.Calls;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.Contacts;
@@ -55,6 +57,7 @@
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.CallUtil;
 import com.android.contacts.common.ClipboardUtils;
+import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
 import com.android.contacts.common.GeoUtil;
 import com.android.contacts.common.model.Contact;
 import com.android.contacts.common.model.ContactLoader;
@@ -69,6 +72,7 @@
 import com.android.dialer.calllog.PhoneNumberUtilsWrapper;
 import com.android.dialer.util.AsyncTaskExecutor;
 import com.android.dialer.util.AsyncTaskExecutors;
+import com.android.dialer.util.DialerUtils;
 import com.android.dialer.voicemail.VoicemailPlaybackFragment;
 import com.android.dialer.voicemail.VoicemailStatusHelper;
 import com.android.dialer.voicemail.VoicemailStatusHelper.StatusMessage;
@@ -234,7 +238,8 @@
             if (finishPhoneNumerSelectedActionModeIfShown()) {
                 return;
             }
-            startActivity(((ViewEntry) view.getTag()).primaryIntent);
+            DialerUtils.startActivityWithErrorToast(CallDetailActivity.this,
+                    ((ViewEntry) view.getTag()).primaryIntent);
         }
     };
 
@@ -244,7 +249,8 @@
             if (finishPhoneNumerSelectedActionModeIfShown()) {
                 return;
             }
-            startActivity(((ViewEntry) view.getTag()).secondaryIntent);
+            DialerUtils.startActivityWithErrorToast(CallDetailActivity.this,
+                    ((ViewEntry) view.getTag()).secondaryIntent);
         }
     };
 
@@ -413,8 +419,10 @@
                 TelephonyManager tm = (TelephonyManager)
                         getSystemService(Context.TELEPHONY_SERVICE);
                 if (tm.getCallState() == TelephonyManager.CALL_STATE_IDLE) {
-                    startActivity(CallUtil.getCallIntent(
-                            Uri.fromParts(CallUtil.SCHEME_TEL, mNumber, null)));
+                    DialerUtils.startActivityWithErrorToast(this,
+                            CallUtil.getCallIntent(Uri.fromParts(CallUtil.SCHEME_TEL, mNumber,
+                                    null)),
+                            R.string.call_not_available);
                     return true;
                 }
             }
@@ -544,14 +552,14 @@
                             mainActionDescription);
                 }
 
+                final CharSequence displayNumber =
+                        mPhoneNumberHelper.getDisplayNumber(
+                                firstDetails.number,
+                                firstDetails.numberPresentation,
+                                firstDetails.formattedNumber);
+
                 // This action allows to call the number that places the call.
                 if (canPlaceCallsTo) {
-                    final CharSequence displayNumber =
-                            mPhoneNumberHelper.getDisplayNumber(
-                                    firstDetails.number,
-                                    firstDetails.numberPresentation,
-                                    firstDetails.formattedNumber);
-
                     ViewEntry entry = new ViewEntry(
                             getString(R.string.menu_callNumber,
                                     forceLeftToRight(displayNumber)),
@@ -622,7 +630,20 @@
                             }
                         },
                         historyList);
-                loadContactPhotos(photoUri);
+
+                final String displayNameForDefaultImage = TextUtils.isEmpty(firstDetails.name) ?
+                        displayNumber.toString() : firstDetails.name.toString();
+
+                final String lookupKey = ContactInfoHelper.getLookupKeyFromUri(contactUri);
+
+                final boolean isBusiness = mContactInfoHelper.isBusiness(firstDetails.sourceType);
+
+                final int contactType =
+                        isVoicemailNumber? ContactPhotoManager.TYPE_VOICEMAIL :
+                        isBusiness ? ContactPhotoManager.TYPE_BUSINESS :
+                        ContactPhotoManager.TYPE_DEFAULT;
+
+                loadContactPhotos(photoUri, displayNameForDefaultImage, lookupKey, contactType);
                 findViewById(R.id.call_detail).setVisibility(View.VISIBLE);
             }
         }
@@ -643,7 +664,8 @@
             mMainActionPushLayerView.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
-                    startActivity(actionIntent);
+                    DialerUtils.startActivityWithErrorToast(CallDetailActivity.this, actionIntent,
+                            R.string.add_contact_not_available);
                 }
             });
             mMainActionPushLayerView.setContentDescription(actionDescription);
@@ -683,6 +705,7 @@
             final CharSequence numberLabel;
             final Uri photoUri;
             final Uri lookupUri;
+            int sourceType;
             // If this is not a regular number, there is no point in looking it up in the contacts.
             ContactInfo info =
                     PhoneNumberUtilsWrapper.canPlaceCallsTo(number, numberPresentation)
@@ -697,6 +720,7 @@
                 numberLabel = "";
                 photoUri = null;
                 lookupUri = null;
+                sourceType = 0;
             } else {
                 formattedNumber = info.formattedNumber;
                 nameText = info.name;
@@ -704,11 +728,12 @@
                 numberLabel = info.label;
                 photoUri = info.photoUri;
                 lookupUri = info.lookupUri;
+                sourceType = info.sourceType;
             }
             return new PhoneCallDetails(number, numberPresentation,
                     formattedNumber, countryIso, geocode,
                     new int[]{ callType }, date, duration,
-                    nameText, numberType, numberLabel, lookupUri, photoUri);
+                    nameText, numberType, numberLabel, lookupUri, photoUri, sourceType);
         } finally {
             if (callCursor != null) {
                 callCursor.close();
@@ -717,9 +742,12 @@
     }
 
     /** Load the contact photos and places them in the corresponding views. */
-    private void loadContactPhotos(Uri photoUri) {
+    private void loadContactPhotos(Uri photoUri, String displayName, String lookupKey,
+            int contactType) {
+        final DefaultImageRequest request = new DefaultImageRequest(displayName, lookupKey,
+                contactType, false);
         mContactPhotoManager.loadPhoto(mContactBackgroundView, photoUri,
-                mContactBackgroundView.getWidth(), true);
+                mContactBackgroundView.getWidth(), true, false /* isCircular */, request);
     }
 
     static final class ViewEntry {
@@ -812,7 +840,8 @@
             mStatusMessageAction.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
-                    startActivity(new Intent(Intent.ACTION_VIEW, message.actionUri));
+                    DialerUtils.startActivityWithErrorToast(CallDetailActivity.this,
+                            new Intent(Intent.ACTION_VIEW, message.actionUri));
                 }
             });
         } else {
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 04934c7..a90f0c8 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -16,43 +16,46 @@
 
 package com.android.dialer;
 
-import android.animation.Animator;
-import android.animation.Animator.AnimatorListener;
-import android.animation.AnimatorListenerAdapter;
+import android.animation.LayoutTransition;
+import android.app.ActionBar;
 import android.app.Activity;
 import android.app.Fragment;
 import android.app.FragmentManager;
-import android.app.FragmentManager.BackStackEntry;
 import android.app.FragmentTransaction;
 import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
-import android.graphics.drawable.Drawable;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.res.TypedArray;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.ServiceManager;
-import android.provider.CallLog.Calls;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Intents;
-import android.provider.ContactsContract.Intents.UI;
 import android.speech.RecognizerIntent;
+import android.support.v4.view.ViewPager;
 import android.telephony.TelephonyManager;
 import android.text.Editable;
-import android.text.Spannable;
-import android.text.SpannableStringBuilder;
 import android.text.TextUtils;
 import android.text.TextWatcher;
-import android.text.style.ImageSpan;
 import android.util.Log;
+import android.view.DragEvent;
 import android.view.Menu;
+import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
-import android.view.View.OnFocusChangeListener;
+import android.view.View.OnDragListener;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.DecelerateInterpolator;
+import android.view.animation.Interpolator;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.AbsListView.OnScrollListener;
 import android.widget.EditText;
+import android.widget.ImageButton;
 import android.widget.PopupMenu;
+import android.widget.RelativeLayout;
 import android.widget.Toast;
 
 import com.android.contacts.common.CallUtil;
@@ -60,34 +63,44 @@
 import com.android.contacts.common.dialog.ClearFrequentsDialog;
 import com.android.contacts.common.interactions.ImportExportDialogFragment;
 import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
+import com.android.contacts.common.util.ViewUtil;
 import com.android.dialer.calllog.CallLogActivity;
 import com.android.dialer.database.DialerDatabaseHelper;
 import com.android.dialer.dialpad.DialpadFragment;
 import com.android.dialer.dialpad.SmartDialNameMatcher;
 import com.android.dialer.dialpad.SmartDialPrefix;
 import com.android.dialer.interactions.PhoneNumberInteraction;
-import com.android.dialer.list.AllContactsActivity;
+import com.android.dialer.list.DragDropController;
+import com.android.dialer.list.ListsFragment;
+import com.android.dialer.list.OnDragDropListener;
 import com.android.dialer.list.OnListFragmentScrolledListener;
-import com.android.dialer.list.PhoneFavoriteFragment;
+import com.android.dialer.list.SpeedDialFragment;
+import com.android.dialer.list.PhoneFavoriteSquareTileView;
 import com.android.dialer.list.RegularSearchFragment;
+import com.android.dialer.list.RemoveView;
 import com.android.dialer.list.SearchFragment;
 import com.android.dialer.list.SmartDialSearchFragment;
 import com.android.dialerbind.DatabaseHelperManager;
 import com.android.internal.telephony.ITelephony;
 
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * The dialer tab's title is 'phone', a more common name (see strings.xml).
  */
 public class DialtactsActivity extends TransactionSafeActivity implements View.OnClickListener,
-        DialpadFragment.OnDialpadQueryChangedListener, PopupMenu.OnMenuItemClickListener,
+        DialpadFragment.OnDialpadQueryChangedListener,
         OnListFragmentScrolledListener,
-        DialpadFragment.OnDialpadFragmentStartedListener,
-        PhoneFavoriteFragment.OnShowAllContactsListener {
+        DialpadFragment.HostInterface,
+        ListsFragment.HostInterface,
+        SpeedDialFragment.HostInterface,
+        OnDragDropListener, View.OnLongClickListener,
+        OnPhoneNumberPickerActionListener,
+        ViewPager.OnPageChangeListener {
     private static final String TAG = "DialtactsActivity";
 
-    public static final boolean DEBUG = false;
+    public static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
     public static final String SHARED_PREFS_NAME = "com.android.dialer_preferences";
 
@@ -114,16 +127,11 @@
      */
     private static final String ACTION_TOUCH_DIALER = "com.android.phone.action.TOUCH_DIALER";
 
-    private static final int SUBACTIVITY_ACCOUNT_FILTER = 1;
-
     private static final int ACTIVITY_REQUEST_CODE_VOICE_SEARCH = 1;
 
-    private String mFilterText;
+    private static final int ANIMATION_DURATION = 250;
 
-    /**
-     * The main fragment displaying the user's favorites and frequent contacts
-     */
-    private PhoneFavoriteFragment mPhoneFavoriteFragment;
+    private RelativeLayout parentLayout;
 
     /**
      * Fragment containing the dialpad that slides into view
@@ -140,19 +148,26 @@
      */
     private SmartDialSearchFragment mSmartDialSearchFragment;
 
-    private View mMenuButton;
-    private View mCallHistoryButton;
-    private View mDialpadButton;
-    private PopupMenu mOverflowMenu;
+    /**
+     * Fragment containing the speed dial list, recents list, and all contacts list.
+     */
+    private ListsFragment mListsFragment;
 
-    // Padding view used to shift the fragments up when the dialpad is shown.
-    private View mBottomPaddingView;
+    private View mFloatingActionButtonContainer;
+    private ImageButton mFloatingActionButton;
+
     private View mFragmentsFrame;
-    private View mActionBar;
 
+    private int mActionBarHeight;
     private boolean mInDialpadSearch;
     private boolean mInRegularSearch;
     private boolean mClearSearchOnPause;
+    private boolean isDialpadShown;
+
+    /**
+     * The position of the currently selected tab in the attached {@link ListsFragment}.
+     */
+    private int mCurrentTabPosition = 0;
 
     /**
      * True if the dialpad is only temporarily showing due to being in call
@@ -163,14 +178,32 @@
      * True when this activity has been launched for the first time.
      */
     private boolean mFirstLaunch;
-    private View mSearchViewContainer;
+
+    /**
+     * Search query to be applied to the SearchView in the ActionBar once
+     * onCreateOptionsMenu has been called.
+     */
+    private String mPendingSearchViewQuery;
+
+    private EditText mSearchView;
     private View mSearchViewCloseButton;
     private View mVoiceSearchButton;
-    private EditText mSearchView;
+    /**
+     * View that contains the "Remove" dialog that shows up when the user long presses a contact.
+     * If the user releases a contact when hovering on top of this, the contact is unfavorited and
+     * removed from the speed dial list.
+     */
+    private View mRemoveViewContainer;
 
+    final Interpolator hideActionBarInterpolator = new AccelerateInterpolator(1.5f);
+    final Interpolator showActionBarInterpolator = new DecelerateInterpolator(1.5f);
     private String mSearchQuery;
 
     private DialerDatabaseHelper mDialerDatabaseHelper;
+    private DragDropController mDragDropController;
+
+    private int mDialerBackgroundColor;
+    private int mContactListBackgroundColor;
 
     private class OverflowPopupMenu extends PopupMenu {
         public OverflowPopupMenu(Context context, View anchor) {
@@ -181,12 +214,28 @@
         public void show() {
             final Menu menu = getMenu();
             final MenuItem clearFrequents = menu.findItem(R.id.menu_clear_frequents);
-            clearFrequents.setVisible(mPhoneFavoriteFragment.hasFrequents());
+            // TODO: Check mSpeedDialFragment.hasFrequents()
+            clearFrequents.setVisible(true);
             super.show();
         }
     }
 
     /**
+     * Listener that listens to drag events and sends their x and y coordinates to a
+     * {@link DragDropController}.
+     */
+    private class LayoutOnDragListener implements OnDragListener {
+        @Override
+        public boolean onDrag(View v, DragEvent event) {
+            if (event.getAction() == DragEvent.ACTION_DRAG_LOCATION) {
+                mDragDropController.handleDragHovered(v, (int) event.getX(),
+                        (int) event.getY());
+            }
+            return true;
+        }
+    }
+
+    /**
      * Listener used when one of phone numbers in search UI is selected. This will initiate a
      * phone call using the phone number.
      */
@@ -238,7 +287,7 @@
                 }
                 mSearchQuery = newText;
                 if (DEBUG) {
-                    Log.d(TAG, "onTextChange for mSearchView called with new query: " + s);
+                    Log.d(TAG, "onTextChange for mSearchView called with new query: " + newText);
                 }
                 final boolean dialpadSearch = isDialpadShowing();
 
@@ -266,6 +315,7 @@
                     mVoiceSearchButton.setVisibility(View.GONE);
                     return;
                 }
+                return;
             }
 
             @Override
@@ -282,22 +332,33 @@
         super.onCreate(savedInstanceState);
         mFirstLaunch = true;
 
-        final Intent intent = getIntent();
-        fixIntent(intent);
-
         setContentView(R.layout.dialtacts_activity);
+        getWindow().setBackgroundDrawable(null);
 
-        getActionBar().hide();
+        final ActionBar actionBar = getActionBar();
+        actionBar.setCustomView(R.layout.search_edittext);
+        actionBar.setDisplayShowCustomEnabled(true);
+
+        final View customView = actionBar.getCustomView();
+
+        mSearchView = (EditText) customView.findViewById(R.id.search_view);
+        mSearchView.addTextChangedListener(mPhoneSearchQueryTextListener);
+
+        mSearchViewCloseButton = customView.findViewById(R.id.search_close_button);
+        mSearchViewCloseButton.setOnClickListener(this);
+
+        final TypedArray styledAttributes = getTheme().obtainStyledAttributes(
+                new int[] { android.R.attr.actionBarSize });
+        mActionBarHeight = (int) styledAttributes.getDimension(0, 0);
+        styledAttributes.recycle();
 
         // Add the favorites fragment, and the dialpad fragment, but only if savedInstanceState
         // is null. Otherwise the fragment manager takes care of recreating these fragments.
         if (savedInstanceState == null) {
-            final PhoneFavoriteFragment phoneFavoriteFragment = new PhoneFavoriteFragment();
-
-            final FragmentTransaction ft = getFragmentManager().beginTransaction();
-            ft.add(R.id.dialtacts_frame, phoneFavoriteFragment, TAG_FAVORITES_FRAGMENT);
-            ft.add(R.id.dialtacts_container, new DialpadFragment(), TAG_DIALPAD_FRAGMENT);
-            ft.commit();
+            getFragmentManager().beginTransaction()
+                    .add(R.id.dialtacts_frame, new ListsFragment(), TAG_FAVORITES_FRAGMENT)
+                    .add(R.id.dialtacts_container, new DialpadFragment(), TAG_DIALPAD_FRAGMENT)
+                    .commit();
         } else {
             mSearchQuery = savedInstanceState.getString(KEY_SEARCH_QUERY);
             mInRegularSearch = savedInstanceState.getBoolean(KEY_IN_REGULAR_SEARCH_UI);
@@ -305,17 +366,23 @@
             mFirstLaunch = savedInstanceState.getBoolean(KEY_FIRST_LAUNCH);
         }
 
-        mBottomPaddingView = findViewById(R.id.dialtacts_bottom_padding);
+        parentLayout = (RelativeLayout) findViewById(R.id.dialtacts_mainlayout);
+        parentLayout.getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
+        parentLayout.setOnDragListener(new LayoutOnDragListener());
+
+        mDialerBackgroundColor = getResources().getColor(R.color.background_dialer_light);
+        mContactListBackgroundColor =
+                getResources().getColor(R.color.contact_list_background_color);
+
         mFragmentsFrame = findViewById(R.id.dialtacts_frame);
-        mActionBar = findViewById(R.id.fake_action_bar);
-        prepareSearchView();
 
-        if (UI.FILTER_CONTACTS_ACTION.equals(intent.getAction())
-                && savedInstanceState == null) {
-            setupFilterText(intent);
-        }
+        mFloatingActionButtonContainer = findViewById(R.id.floating_action_button_container);
+        ViewUtil.setupFloatingActionButton(mFloatingActionButtonContainer, getResources());
 
-        setupFakeActionBarItems();
+        mFloatingActionButton = (ImageButton) findViewById(R.id.floating_action_button);
+        mFloatingActionButton.setOnClickListener(this);
+
+        mRemoveViewContainer = findViewById(R.id.remove_view_container);
 
         mDialerDatabaseHelper = DatabaseHelperManager.getDatabaseHelper(this);
         SmartDialPrefix.initializeNanpSettings(this);
@@ -330,8 +397,8 @@
             hideDialpadFragment(false, true);
             mInCallDialpadUp = false;
         }
-
         mFirstLaunch = false;
+        prepareVoiceSearchButton();
         mDialerDatabaseHelper.startSmartDialUpdateThread();
     }
 
@@ -364,50 +431,22 @@
             mSmartDialSearchFragment = (SmartDialSearchFragment) fragment;
             mSmartDialSearchFragment.setOnPhoneNumberPickerActionListener(
                     mPhoneNumberPickerActionListener);
+            if (mFragmentsFrame != null) {
+                mFragmentsFrame.setAlpha(1.0f);
+            }
         } else if (fragment instanceof SearchFragment) {
             mRegularSearchFragment = (RegularSearchFragment) fragment;
             mRegularSearchFragment.setOnPhoneNumberPickerActionListener(
                     mPhoneNumberPickerActionListener);
-        } else if (fragment instanceof PhoneFavoriteFragment) {
-            mPhoneFavoriteFragment = (PhoneFavoriteFragment) fragment;
-            mPhoneFavoriteFragment.setListener(mPhoneFavoriteListener);
+            if (mFragmentsFrame != null) {
+                mFragmentsFrame.setAlpha(1.0f);
+            }
+        } else if (fragment instanceof ListsFragment) {
+            mListsFragment = (ListsFragment) fragment;
+            mListsFragment.addOnPageChangeListener(this);
         }
     }
 
-    @Override
-    public boolean onMenuItemClick(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.menu_import_export:
-                // We hard-code the "contactsAreAvailable" argument because doing it properly would
-                // involve querying a {@link ProviderStatusLoader}, which we don't want to do right
-                // now in Dialtacts for (potential) performance reasons. Compare with how it is
-                // done in {@link PeopleActivity}.
-                ImportExportDialogFragment.show(getFragmentManager(), true,
-                        DialtactsActivity.class);
-                return true;
-            case R.id.menu_clear_frequents:
-                ClearFrequentsDialog.show(getFragmentManager());
-                return true;
-            case R.id.menu_add_contact:
-                try {
-                    startActivity(new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI));
-                } catch (ActivityNotFoundException e) {
-                    Toast toast = Toast.makeText(this,
-                            R.string.add_contact_not_available,
-                            Toast.LENGTH_SHORT);
-                    toast.show();
-                }
-                return true;
-            case R.id.menu_call_settings:
-                handleMenuSettings();
-                return true;
-            case R.id.menu_all_contacts:
-                onShowAllContacts();
-                return true;
-        }
-        return false;
-    }
-
     protected void handleMenuSettings() {
         openTelephonySetting(this);
     }
@@ -420,35 +459,30 @@
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
-            case R.id.overflow_menu: {
-                mOverflowMenu.show();
-                break;
-            }
-            case R.id.dialpad_button:
-                // Reset the boolean flag that tracks whether the dialpad was up because
-                // we were in call. Regardless of whether it was true before, we want to
-                // show the dialpad because the user has explicitly clicked the dialpad
-                // button.
-                mInCallDialpadUp = false;
-                showDialpadFragment(true);
-                break;
-            case R.id.call_history_on_dialpad_button:
-            case R.id.call_history_button:
-                // Use explicit CallLogActivity intent instead of ACTION_VIEW +
-                // CONTENT_TYPE, so that we always open our call log from our dialer
-                final Intent intent = new Intent(this, CallLogActivity.class);
-                startActivity(intent);
+            case R.id.floating_action_button:
+                if (!isDialpadShown) {
+                    mInCallDialpadUp = false;
+                    showDialpadFragment(true);
+                } else {
+                    // Dial button was pressed; tell the Dialpad fragment
+                    mDialpadFragment.dialButtonPressed();
+                }
                 break;
             case R.id.search_close_button:
                 // Clear the search field
                 if (!TextUtils.isEmpty(mSearchView.getText())) {
                     mDialpadFragment.clearDialpad();
-                    mSearchView.setText("");
+                    mSearchView.setText(null);
                 }
                 break;
             case R.id.voice_search_button:
-                final Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
-                startActivityForResult(voiceIntent, ACTIVITY_REQUEST_CODE_VOICE_SEARCH);
+                try {
+                    startActivityForResult(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH),
+                            ACTIVITY_REQUEST_CODE_VOICE_SEARCH);
+                } catch (ActivityNotFoundException e) {
+                    Toast.makeText(DialtactsActivity.this, R.string.voice_search_not_available,
+                            Toast.LENGTH_SHORT).show();
+                }
                 break;
             default: {
                 Log.wtf(TAG, "Unexpected onClick event from " + view);
@@ -458,6 +492,58 @@
     }
 
     @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case R.id.menu_history:
+                showCallHistory();
+                break;
+            case R.id.menu_add_contact:
+                try {
+                    startActivity(new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI));
+                } catch (ActivityNotFoundException e) {
+                    Toast toast = Toast.makeText(this,
+                            R.string.add_contact_not_available,
+                            Toast.LENGTH_SHORT);
+                    toast.show();
+                }
+                break;
+            case R.id.menu_import_export:
+                // We hard-code the "contactsAreAvailable" argument because doing it properly would
+                // involve querying a {@link ProviderStatusLoader}, which we don't want to do right
+                // now in Dialtacts for (potential) performance reasons. Compare with how it is
+                // done in {@link PeopleActivity}.
+                ImportExportDialogFragment.show(getFragmentManager(), true,
+                        DialtactsActivity.class);
+                return true;
+            case R.id.menu_clear_frequents:
+                // TODO: This should be enabled/disabled based on
+                // SpeedDialFragment.hasFrequents
+                ClearFrequentsDialog.show(getFragmentManager());
+                return true;
+            case R.id.menu_call_settings:
+                handleMenuSettings();
+                return true;
+        }
+        return false;
+    }
+
+    @Override
+    public boolean onLongClick(View view) {
+        switch (view.getId()) {
+            case R.id.floating_action_button:
+                if (isDialpadShown) {
+                    // Dial button was pressed; tell the Dialpad fragment
+                    mDialpadFragment.dialButtonPressed();
+                    return true;  // Consume the event
+                }
+            default:
+                Log.wtf(TAG, "Unexpected onClick event from " + view);
+                break;
+        }
+        return false;
+    }
+
+    @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (requestCode == ACTIVITY_REQUEST_CODE_VOICE_SEARCH) {
             if (resultCode == RESULT_OK) {
@@ -477,7 +563,8 @@
     }
 
     private void showDialpadFragment(boolean animate) {
-        mDialpadFragment.setAdjustTranslationForAnimation(animate);
+        mDialpadFragment.setAnimate(animate);
+
         final FragmentTransaction ft = getFragmentManager().beginTransaction();
         if (animate) {
             ft.setCustomAnimations(R.anim.slide_in, 0);
@@ -494,7 +581,7 @@
             mDialpadFragment.clearDialpad();
         }
         if (!mDialpadFragment.isVisible()) return;
-        mDialpadFragment.setAdjustTranslationForAnimation(animate);
+        mDialpadFragment.setAnimate(animate);
         final FragmentTransaction ft = getFragmentManager().beginTransaction();
         if (animate) {
             ft.setCustomAnimations(0, R.anim.slide_out);
@@ -503,36 +590,6 @@
         ft.commit();
     }
 
-    private void prepareSearchView() {
-        mSearchViewContainer = findViewById(R.id.search_view_container);
-        mSearchViewCloseButton = findViewById(R.id.search_close_button);
-        mSearchViewCloseButton.setOnClickListener(this);
-        mVoiceSearchButton = findViewById(R.id.voice_search_button);
-        mVoiceSearchButton.setOnClickListener(this);
-        mSearchView = (EditText) findViewById(R.id.search_view);
-        mSearchView.addTextChangedListener(mPhoneSearchQueryTextListener);
-
-        final String hintText = getString(R.string.dialer_hint_find_contact);
-
-        // The following code is used to insert an icon into a CharSequence (copied from
-        // SearchView)
-        final SpannableStringBuilder ssb = new SpannableStringBuilder("   "); // for the icon
-        ssb.append(hintText);
-        final Drawable searchIcon = getResources().getDrawable(R.drawable.ic_ab_search);
-        final int textSize = (int) (mSearchView.getTextSize() * 1.20);
-        searchIcon.setBounds(0, 0, textSize, textSize);
-        ssb.setSpan(new ImageSpan(searchIcon), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-
-        mSearchView.setHint(ssb);
-    }
-
-    final AnimatorListener mHideListener = new AnimatorListenerAdapter() {
-        @Override
-        public void onAnimationEnd(Animator animation) {
-            mSearchViewContainer.setVisibility(View.GONE);
-        }
-    };
-
     private boolean getInSearchUi() {
         return mInDialpadSearch || mInRegularSearch;
     }
@@ -547,94 +604,96 @@
         hideDialpadFragment(false, true);
     }
 
-    public void hideSearchBar() {
-       hideSearchBar(true);
+    /**
+     * Callback from child DialpadFragment when the dialpad is shown.
+     */
+    public void onDialpadShown() {
+        isDialpadShown = true;
+        mFloatingActionButton.setImageResource(R.drawable.fab_ic_call);
+        mFloatingActionButton.setContentDescription(
+                getResources().getString(R.string.description_dial_button));
+
+        SearchFragment fragment = null;
+        if (mInDialpadSearch) {
+            fragment = mSmartDialSearchFragment;
+        } else if (mInRegularSearch) {
+            fragment = mRegularSearchFragment;
+        }
+        if (fragment != null && fragment.isVisible()) {
+            fragment.getView().animate().translationY(-mActionBarHeight)
+                    .setInterpolator(hideActionBarInterpolator).setDuration(ANIMATION_DURATION);
+        }
+
+        if (mListsFragment != null && mListsFragment.isResumed() && mListsFragment.isVisible()) {
+            // If the favorites fragment is showing, fade to blank.
+            mFragmentsFrame.animate().alpha(0.0f);
+            parentLayout.setBackgroundColor(mContactListBackgroundColor);
+        }
+        getActionBar().hide();
+        alignFloatingActionButtonMiddle();
     }
 
-    public void hideSearchBar(boolean shiftView) {
-        if (shiftView) {
-            mSearchViewContainer.animate().cancel();
-            mSearchViewContainer.setAlpha(1);
-            mSearchViewContainer.setTranslationY(0);
-            mSearchViewContainer.animate().withLayer().alpha(0).translationY(-mSearchView.getHeight())
-                    .setDuration(200).setListener(mHideListener);
+    /**
+     * Callback from child DialpadFragment when the dialpad is hidden.
+     */
+    public void onDialpadHidden() {
+        isDialpadShown = false;
+        mFloatingActionButton.setImageResource(R.drawable.fab_ic_dial);
+        mFloatingActionButton.setContentDescription(
+                getResources().getString(R.string.action_menu_dialpad_button));
 
-            mFragmentsFrame.animate().withLayer()
-                    .translationY(-mSearchViewContainer.getHeight()).setDuration(200).setListener(
-                    new AnimatorListenerAdapter() {
-                        @Override
-                        public void onAnimationEnd(Animator animation) {
-                            mBottomPaddingView.setVisibility(View.VISIBLE);
-                            mFragmentsFrame.setTranslationY(0);
-                            mActionBar.setVisibility(View.INVISIBLE);
-                        }
-                    });
+        SearchFragment fragment = null;
+        if (mInDialpadSearch) {
+            fragment = mSmartDialSearchFragment;
+        } else if (mInRegularSearch) {
+            fragment = mRegularSearchFragment;
+        }
+        if (fragment != null && fragment.isVisible()) {
+            fragment.getView().animate().translationY(0)
+                    .setInterpolator(showActionBarInterpolator).setDuration(ANIMATION_DURATION);
+        }
+
+        if (mListsFragment != null && mListsFragment.isVisible()) {
+            mFragmentsFrame.animate().alpha(1.0f);
+            parentLayout.setBackgroundColor(mDialerBackgroundColor);
+
+        }
+        getActionBar().show();
+        alignFloatingActionButtonByTab(mCurrentTabPosition);
+    }
+
+    private void hideInputMethod(View view) {
+        final InputMethodManager imm = (InputMethodManager) getSystemService(
+                Context.INPUT_METHOD_SERVICE);
+        if (imm != null && view != null) {
+            imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
+        }
+    }
+
+    private void prepareVoiceSearchButton() {
+        mVoiceSearchButton = getActionBar().getCustomView().findViewById(R.id.voice_search_button);
+        final Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
+        if (canIntentBeHandled(voiceIntent)) {
+            mVoiceSearchButton.setVisibility(View.VISIBLE);
+            mVoiceSearchButton.setOnClickListener(this);
         } else {
-            mSearchViewContainer.setTranslationY(-mSearchView.getHeight());
-            mActionBar.setVisibility(View.INVISIBLE);
+            mVoiceSearchButton.setVisibility(View.GONE);
         }
     }
 
-    public void showSearchBar() {
-        mSearchViewContainer.animate().cancel();
-        mSearchViewContainer.setAlpha(0);
-        mSearchViewContainer.setTranslationY(-mSearchViewContainer.getHeight());
-        mSearchViewContainer.animate().withLayer().alpha(1).translationY(0).setDuration(200)
-                .setListener(new AnimatorListenerAdapter() {
-                    @Override
-                    public void onAnimationStart(Animator animation) {
-                        mSearchViewContainer.setVisibility(View.VISIBLE);
-                        mActionBar.setVisibility(View.VISIBLE);
-                    }
-                });
-
-        mFragmentsFrame.setTranslationY(-mSearchViewContainer.getHeight());
-        mFragmentsFrame.animate().withLayer().translationY(0).setDuration(200)
-                .setListener(
-                        new AnimatorListenerAdapter() {
-                            @Override
-                            public void onAnimationStart(Animator animation) {
-                                mBottomPaddingView.setVisibility(View.GONE);
-                            }
-                        });
-    }
-
-
-    public void setupFakeActionBarItems() {
-        mMenuButton = findViewById(R.id.overflow_menu);
-        if (mMenuButton != null) {
-            mMenuButton.setOnClickListener(this);
-
-            mOverflowMenu = new OverflowPopupMenu(DialtactsActivity.this, mMenuButton);
-            final Menu menu = mOverflowMenu.getMenu();
-            mOverflowMenu.inflate(R.menu.dialtacts_options);
-            mOverflowMenu.setOnMenuItemClickListener(this);
-            mMenuButton.setOnTouchListener(mOverflowMenu.getDragToOpenListener());
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        if (DEBUG) {
+            Log.d(TAG, "onCreateOptionsMenu");
         }
+        MenuInflater inflater = getMenuInflater();
+        inflater.inflate(R.menu.dialtacts_options, menu);
 
-        mCallHistoryButton = findViewById(R.id.call_history_button);
-        // mCallHistoryButton.setMinimumWidth(fakeMenuItemWidth);
-        mCallHistoryButton.setOnClickListener(this);
-
-        mDialpadButton = findViewById(R.id.dialpad_button);
-        // DialpadButton.setMinimumWidth(fakeMenuItemWidth);
-        mDialpadButton.setOnClickListener(this);
-    }
-
-    public void setupFakeActionBarItemsForDialpadFragment() {
-        final View callhistoryButton = findViewById(R.id.call_history_on_dialpad_button);
-        callhistoryButton.setOnClickListener(this);
-    }
-
-    private void fixIntent(Intent intent) {
-        // This should be cleaned up: the call key used to send an Intent
-        // that just said to go to the recent calls list.  It now sends this
-        // abstract action, but this class hasn't been rewritten to deal with it.
-        if (Intent.ACTION_CALL_BUTTON.equals(intent.getAction())) {
-            intent.setDataAndType(Calls.CONTENT_URI, Calls.CONTENT_TYPE);
-            intent.putExtra("call_key", true);
-            setIntent(intent);
+        if (mPendingSearchViewQuery != null) {
+            mSearchView.setText(mPendingSearchViewQuery);
+            mPendingSearchViewQuery = null;
         }
+        return super.onCreateOptionsMenu(menu);
     }
 
     /**
@@ -642,22 +701,20 @@
      * KEYCODE_CALL) while in a call.
      *
      * @param intent the intent that launched this activity
-     * @param recentCallsRequest true if the intent is requesting to view recent calls
      * @return true if the intent is due to hitting the green send key while in a call
      */
-    private boolean isSendKeyWhileInCall(Intent intent, boolean recentCallsRequest) {
-        // If there is a call in progress go to the call screen
-        if (recentCallsRequest) {
-            final boolean callKey = intent.getBooleanExtra("call_key", false);
+    private boolean isSendKeyWhileInCall(Intent intent) {
+        // If there is a call in progress and the user launched the dialer by hitting the call
+        // button, go straight to the in-call screen.
+        final boolean callKey = Intent.ACTION_CALL_BUTTON.equals(intent.getAction());
 
-            try {
-                ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
-                if (callKey && phone != null && phone.showCallScreen()) {
-                    return true;
-                }
-            } catch (RemoteException e) {
-                Log.e(TAG, "Failed to handle send while in call", e);
+        try {
+            ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
+            if (callKey && phone != null && phone.showCallScreen()) {
+                return true;
             }
+        } catch (RemoteException e) {
+            Log.e(TAG, "Failed to handle send while in call", e);
         }
 
         return false;
@@ -670,9 +727,7 @@
      */
     private void displayFragment(Intent intent) {
         // If we got here by hitting send and we're in call forward along to the in-call activity
-        boolean recentCallsRequest = Calls.CONTENT_TYPE.equals(intent.resolveType(
-            getContentResolver()));
-        if (isSendKeyWhileInCall(intent, recentCallsRequest)) {
+        if (isSendKeyWhileInCall(intent)) {
             finish();
             return;
         }
@@ -692,9 +747,7 @@
     @Override
     public void onNewIntent(Intent newIntent) {
         setIntent(newIntent);
-        fixIntent(newIntent);
         displayFragment(newIntent);
-        final String action = newIntent.getAction();
 
         invalidateOptionsMenu();
     }
@@ -725,90 +778,6 @@
     }
 
     /**
-     * Retrieves the filter text stored in {@link #setupFilterText(Intent)}.
-     * This text originally came from a FILTER_CONTACTS_ACTION intent received
-     * by this activity. The stored text will then be cleared after after this
-     * method returns.
-     *
-     * @return The stored filter text
-     */
-    public String getAndClearFilterText() {
-        String filterText = mFilterText;
-        mFilterText = null;
-        return filterText;
-    }
-
-    /**
-     * Stores the filter text associated with a FILTER_CONTACTS_ACTION intent.
-     * This is so child activities can check if they are supposed to display a filter.
-     *
-     * @param intent The intent received in {@link #onNewIntent(Intent)}
-     */
-    private void setupFilterText(Intent intent) {
-        // If the intent was relaunched from history, don't apply the filter text.
-        if ((intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0) {
-            return;
-        }
-        String filter = intent.getStringExtra(UI.FILTER_TEXT_EXTRA_KEY);
-        if (filter != null && filter.length() > 0) {
-            mFilterText = filter;
-        }
-    }
-
-    private final PhoneFavoriteFragment.Listener mPhoneFavoriteListener =
-            new PhoneFavoriteFragment.Listener() {
-        @Override
-        public void onContactSelected(Uri contactUri) {
-            PhoneNumberInteraction.startInteractionForPhoneCall(
-                        DialtactsActivity.this, contactUri, getCallOrigin());
-        }
-
-        @Override
-        public void onCallNumberDirectly(String phoneNumber) {
-            Intent intent = CallUtil.getCallIntent(phoneNumber, getCallOrigin());
-            startActivity(intent);
-        }
-    };
-
-    /* TODO krelease: This is only relevant for phones that have a hard button search key (i.e.
-     * Nexus S). Supporting it is a little more tricky because of the dialpad fragment might
-     * be showing when the search key is pressed so there is more state management involved.
-
-    @Override
-    public void startSearch(String initialQuery, boolean selectInitialQuery,
-            Bundle appSearchData, boolean globalSearch) {
-        if (mRegularSearchFragment != null && mRegularSearchFragment.isAdded() && !globalSearch) {
-            if (mInSearchUi) {
-                if (mSearchView.hasFocus()) {
-                    showInputMethod(mSearchView.findFocus());
-                } else {
-                    mSearchView.requestFocus();
-                }
-            } else {
-                enterSearchUi();
-            }
-        } else {
-            super.startSearch(initialQuery, selectInitialQuery, appSearchData, globalSearch);
-        }
-    }*/
-
-    private void showInputMethod(View view) {
-        final InputMethodManager imm = (InputMethodManager) getSystemService(
-                Context.INPUT_METHOD_SERVICE);
-        if (imm != null) {
-            imm.showSoftInput(view, 0);
-        }
-    }
-
-    private void hideInputMethod(View view) {
-        final InputMethodManager imm = (InputMethodManager) getSystemService(
-                Context.INPUT_METHOD_SERVICE);
-        if (imm != null && view != null) {
-            imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
-        }
-    }
-
-    /**
      * Shows the search fragment
      */
     private void enterSearchUi(boolean smartDialSearch, String query) {
@@ -824,15 +793,12 @@
         }
 
         final FragmentTransaction transaction = getFragmentManager().beginTransaction();
-        transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
 
         SearchFragment fragment;
-        if (mInDialpadSearch) {
+        if (mInDialpadSearch && mSmartDialSearchFragment != null) {
             transaction.remove(mSmartDialSearchFragment);
-        } else if (mInRegularSearch) {
+        } else if (mInRegularSearch && mRegularSearchFragment != null) {
             transaction.remove(mRegularSearchFragment);
-        } else {
-            transaction.remove(mPhoneFavoriteFragment);
         }
 
         final String tag;
@@ -852,6 +818,8 @@
                 fragment = new RegularSearchFragment();
             }
         }
+        // DialtactsActivity will provide the options menu
+        fragment.setHasOptionsMenu(false);
         transaction.replace(R.id.dialtacts_frame, fragment, tag);
         transaction.addToBackStack(null);
         fragment.setQueryString(query, false);
@@ -870,6 +838,10 @@
         // transitioned between search fragments
         getFragmentManager().popBackStack(0, FragmentManager.POP_BACK_STACK_INCLUSIVE);
         setNotInSearchUi();
+
+        if (isDialpadShowing()) {
+            mFragmentsFrame.setAlpha(0);
+        }
     }
 
     /** Returns an Intent to launch Call Settings screen */
@@ -887,12 +859,6 @@
         } else if (getInSearchUi()) {
             mSearchView.setText(null);
             mDialpadFragment.clearDialpad();
-        } else if (isTaskRoot()) {
-            // Instead of stopping, simply push this to the back of the stack.
-            // This is only done when running at the top of the stack;
-            // otherwise, we have been launched by someone else so need to
-            // allow the user to go back to the caller.
-            moveTaskToBack(false);
         } else {
             super.onBackPressed();
         }
@@ -900,8 +866,12 @@
 
     @Override
     public void onDialpadQueryChanged(String query) {
+        if (mSmartDialSearchFragment != null) {
+            mSmartDialSearchFragment.setAddToContactNumber(query);
+        }
         final String normalizedQuery = SmartDialNameMatcher.normalizeNumber(query,
                 SmartDialNameMatcher.LATIN_SMART_DIAL_MAP);
+
         if (!TextUtils.equals(mSearchView.getText(), normalizedQuery)) {
             if (DEBUG) {
                 Log.d(TAG, "onDialpadQueryChanged - new query: " + query);
@@ -912,6 +882,9 @@
                 // that would bring the user back to the search fragment regardless of the
                 // previous state of the application. Instead, just return here and let the
                 // fragment manager correctly figure out whatever fragment was last displayed.
+                if (!TextUtils.isEmpty(normalizedQuery)) {
+                    mPendingSearchViewQuery = normalizedQuery;
+                }
                 return;
             }
             mSearchView.setText(normalizedQuery);
@@ -927,8 +900,15 @@
     }
 
     @Override
-    public void onDialpadFragmentStarted() {
-        setupFakeActionBarItemsForDialpadFragment();
+    public void onListFragmentScroll(int firstVisibleItem, int visibleItemCount,
+            int totalItemCount) {
+        // TODO: No-op for now. This should eventually show/hide the actionBar based on
+        // interactions with the ListsFragments.
+    }
+
+    @Override
+    public void setFloatingActionButtonVisible(boolean visible) {
+        mFloatingActionButtonContainer.setVisibility(visible ? View.VISIBLE : View.GONE);
     }
 
     private boolean phoneIsInUse() {
@@ -937,12 +917,6 @@
         return tm.getCallState() != TelephonyManager.CALL_STATE_IDLE;
     }
 
-    @Override
-    public void onShowAllContacts() {
-        final Intent intent = new Intent(this, AllContactsActivity.class);
-        startActivity(intent);
-    }
-
     public static Intent getAddNumberToContactIntent(CharSequence text) {
         final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
         intent.putExtra(Intents.Insert.PHONE, text);
@@ -950,9 +924,120 @@
         return intent;
     }
 
-    public static Intent getInsertContactWithNameIntent(CharSequence text) {
-        final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
-        intent.putExtra(Intents.Insert.NAME, text);
-        return intent;
+    private boolean canIntentBeHandled(Intent intent) {
+        final PackageManager packageManager = getPackageManager();
+        final List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent,
+                PackageManager.MATCH_DEFAULT_ONLY);
+        return resolveInfo != null && resolveInfo.size() > 0;
+    }
+
+    @Override
+    public void showCallHistory() {
+        // Use explicit CallLogActivity intent instead of ACTION_VIEW +
+        // CONTENT_TYPE, so that we always open our call log from our dialer
+        final Intent intent = new Intent(this, CallLogActivity.class);
+        startActivity(intent);
+    }
+
+    /**
+     * Called when the user has long-pressed a contact tile to start a drag operation.
+     */
+    @Override
+    public void onDragStarted(int x, int y, PhoneFavoriteSquareTileView view) {
+        getActionBar().hide();
+        mRemoveViewContainer.setVisibility(View.VISIBLE);
+    }
+
+    @Override
+    public void onDragHovered(int x, int y, PhoneFavoriteSquareTileView view) {
+    }
+
+    /**
+     * Called when the user has released a contact tile after long-pressing it.
+     */
+    @Override
+    public void onDragFinished(int x, int y) {
+        getActionBar().show();
+        mRemoveViewContainer.setVisibility(View.GONE);
+    }
+
+    @Override
+    public void onDroppedOnRemove() {}
+
+    /**
+     * Allows the SpeedDialFragment to attach the drag controller to mRemoveViewContainer
+     * once it has been attached to the activity.
+     */
+    @Override
+    public void setDragDropController(DragDropController dragController) {
+        mDragDropController = dragController;
+        ((RemoveView) findViewById(R.id.remove_view))
+                .setDragDropController(dragController);
+    }
+
+    @Override
+    public void onPickPhoneNumberAction(Uri dataUri) {
+        mPhoneNumberPickerActionListener.onPickPhoneNumberAction(dataUri);
+    }
+
+    @Override
+    public void onCallNumberDirectly(String phoneNumber) {
+        mPhoneNumberPickerActionListener.onCallNumberDirectly(phoneNumber);
+    }
+
+    @Override
+    public void onShortcutIntentCreated(Intent intent) {
+        mPhoneNumberPickerActionListener.onShortcutIntentCreated(intent);
+    }
+
+    @Override
+    public void onHomeInActionBarSelected() {
+        mPhoneNumberPickerActionListener.onHomeInActionBarSelected();
+    }
+
+    public int getActionBarHeight() {
+        return mActionBarHeight;
+    }
+
+    @Override
+    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+    }
+
+    @Override
+    public void onPageSelected(int position) {
+        mCurrentTabPosition = position;
+        // If the dialpad is showing, the floating action button should always be middle aligned.
+        if (!isDialpadShowing()) {
+            alignFloatingActionButtonByTab(mCurrentTabPosition);
+        }
+    }
+
+    @Override
+    public void onPageScrollStateChanged(int state) {
+    }
+
+    private void alignFloatingActionButtonByTab(int position) {
+        if (position == ListsFragment.TAB_INDEX_SPEED_DIAL) {
+            alignFloatingActionButtonMiddle();
+        } else {
+            alignFloatingActionButtonRight();
+        }
+    }
+
+    private void alignFloatingActionButtonRight() {
+        final RelativeLayout.LayoutParams params =
+                (RelativeLayout.LayoutParams) mFloatingActionButtonContainer.getLayoutParams();
+        params.removeRule(RelativeLayout.CENTER_HORIZONTAL);
+        params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
+        mFloatingActionButtonContainer.setLayoutParams(params);
+    }
+
+    private void alignFloatingActionButtonMiddle() {
+        final RelativeLayout.LayoutParams params =
+                (RelativeLayout.LayoutParams) mFloatingActionButtonContainer.getLayoutParams();
+        params.removeRule(RelativeLayout.ALIGN_PARENT_RIGHT);
+        params.addRule(RelativeLayout.CENTER_HORIZONTAL);
+        mFloatingActionButtonContainer.setLayoutParams(params);
     }
 }
diff --git a/src/com/android/dialer/PhoneCallDetails.java b/src/com/android/dialer/PhoneCallDetails.java
index c380b65..4e01ab5 100644
--- a/src/com/android/dialer/PhoneCallDetails.java
+++ b/src/com/android/dialer/PhoneCallDetails.java
@@ -59,13 +59,17 @@
      * This is meant to store the high-res photo only.
      */
     public final Uri photoUri;
+    /**
+     * The source type of the contact associated with this call.
+     */
+    public final int sourceType;
 
     /** Create the details for a call with a number not associated with a contact. */
     public PhoneCallDetails(CharSequence number, int numberPresentation,
             CharSequence formattedNumber, String countryIso, String geocode,
             int[] callTypes, long date, long duration) {
         this(number, numberPresentation, formattedNumber, countryIso, geocode,
-                callTypes, date, duration, "", 0, "", null, null);
+                callTypes, date, duration, "", 0, "", null, null, 0);
     }
 
     /** Create the details for a call with a number associated with a contact. */
@@ -73,7 +77,7 @@
             CharSequence formattedNumber, String countryIso, String geocode,
             int[] callTypes, long date, long duration, CharSequence name,
             int numberType, CharSequence numberLabel, Uri contactUri,
-            Uri photoUri) {
+            Uri photoUri, int sourceType) {
         this.number = number;
         this.numberPresentation = numberPresentation;
         this.formattedNumber = formattedNumber;
@@ -87,5 +91,6 @@
         this.numberLabel = numberLabel;
         this.contactUri = contactUri;
         this.photoUri = photoUri;
+        this.sourceType = sourceType;
     }
 }
diff --git a/src/com/android/dialer/PhoneCallDetailsHelper.java b/src/com/android/dialer/PhoneCallDetailsHelper.java
index 2a4a142..ab59972 100644
--- a/src/com/android/dialer/PhoneCallDetailsHelper.java
+++ b/src/com/android/dialer/PhoneCallDetailsHelper.java
@@ -18,9 +18,7 @@
 
 import android.content.res.Resources;
 import android.graphics.Typeface;
-import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.telephony.PhoneNumberUtils;
 import android.text.SpannableString;
 import android.text.Spanned;
 import android.text.TextUtils;
@@ -36,6 +34,10 @@
 import com.android.dialer.calllog.ContactInfo;
 import com.android.dialer.calllog.PhoneNumberDisplayHelper;
 import com.android.dialer.calllog.PhoneNumberUtilsWrapper;
+import com.google.android.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Helper class to fill in the views in {@link PhoneCallDetailsViews}.
@@ -53,6 +55,11 @@
     private final PhoneNumberUtilsWrapper mPhoneNumberUtilsWrapper;
 
     /**
+     * List of items to be concatenated together for accessibility descriptions
+     */
+    private ArrayList<CharSequence> mDescriptionItems = Lists.newArrayList();
+
+    /**
      * Creates a new instance of the helper.
      * <p>
      * Generally you should have a single instance of this helper in any context.
@@ -68,8 +75,7 @@
     }
 
     /** Fills the call details views with content. */
-    public void setPhoneCallDetails(PhoneCallDetailsViews views, PhoneCallDetails details,
-            boolean isHighlighted) {
+    public void setPhoneCallDetails(PhoneCallDetailsViews views, PhoneCallDetails details) {
         // Display up to a given number of icons.
         views.callTypeIcons.clear();
         int count = details.callTypes.length;
@@ -86,24 +92,71 @@
         } else {
             callCount = null;
         }
-        // The color to highlight the count and date in, if any. This is based on the first call.
-        Integer highlightColor =
-                isHighlighted ? mCallTypeHelper.getHighlightedColor(details.callTypes[0]) : null;
 
+        CharSequence callLocationAndDate = getCallLocationAndDate(details);
+
+        // Set the call count, location and date.
+        setCallCountAndDate(views, callCount, callLocationAndDate);
+
+        final CharSequence nameText;
+        final CharSequence displayNumber =
+            mPhoneNumberHelper.getDisplayNumber(details.number,
+                    details.numberPresentation, details.formattedNumber);
+        if (TextUtils.isEmpty(details.name)) {
+            nameText = displayNumber;
+            // We have a real phone number as "nameView" so make it always LTR
+            views.nameView.setTextDirection(View.TEXT_DIRECTION_LTR);
+        } else {
+            nameText = details.name;
+        }
+
+        views.nameView.setText(nameText);
+
+        // TODO: At the current time the voicemail transcription is not supported.  This view
+        // is kept for future expansion when we may wish to show a transcription of voicemail.
+        views.voicemailTranscriptionView.setText("");
+        views.voicemailTranscriptionView.setVisibility(View.GONE);
+    }
+
+    /**
+     * Builds a string containing the call location and date.
+     *
+     * @param details The call details.
+     * @return The call location and date string.
+     */
+    private CharSequence getCallLocationAndDate(PhoneCallDetails details) {
+        mDescriptionItems.clear();
+
+        // Get type of call (ie mobile, home, etc) if known, or the caller's location.
+        CharSequence callTypeOrLocation = getCallTypeOrLocation(details);
+
+        // Only add the call type or location if its not empty.  It will be empty for unknown
+        // callers.
+        if (!TextUtils.isEmpty(callTypeOrLocation)) {
+            mDescriptionItems.add(callTypeOrLocation);
+        }
         // The date of this call, relative to the current time.
-        CharSequence dateText =
-            DateUtils.getRelativeTimeSpanString(details.date,
-                    getCurrentTimeMillis(),
-                    DateUtils.MINUTE_IN_MILLIS,
-                    DateUtils.FORMAT_ABBREV_RELATIVE);
+        mDescriptionItems.add(getCallDate(details));
 
-        // Set the call count and date.
-        setCallCountAndDate(views, callCount, dateText, highlightColor);
+        // Create a comma separated list from the call type or location, and call date.
+        // TextUtils.join ensures a locale appropriate list separator is used.
+        return TextUtils.join((List<CharSequence>)mDescriptionItems);
+    }
 
+    /**
+     * For a call, if there is an associated contact for the caller, return the known call type
+     * (e.g. mobile, home, work).  If there is no associated contact, attempt to use the caller's
+     * location if known.
+     * @param details Call details to use.
+     * @return Type of call (mobile/home) if known, or the location of the caller (if known).
+     */
+    public CharSequence getCallTypeOrLocation(PhoneCallDetails details) {
         CharSequence numberFormattedLabel = null;
         // Only show a label if the number is shown and it is not a SIP address.
         if (!TextUtils.isEmpty(details.number)
-                && !PhoneNumberHelper.isUriNumber(details.number.toString())) {
+                && !PhoneNumberHelper.isUriNumber(details.number.toString())
+                && !mPhoneNumberUtilsWrapper.isVoicemailNumber(details.number)) {
+
             if (details.numberLabel == ContactInfo.GEOCODE_AS_LABEL) {
                 numberFormattedLabel = details.geocode;
             } else {
@@ -112,33 +165,24 @@
             }
         }
 
-        final CharSequence nameText;
-        final CharSequence numberText;
-        final CharSequence labelText;
-        final CharSequence displayNumber =
-            mPhoneNumberHelper.getDisplayNumber(details.number,
+        if (!TextUtils.isEmpty(details.name) && TextUtils.isEmpty(numberFormattedLabel)) {
+            numberFormattedLabel = mPhoneNumberHelper.getDisplayNumber(details.number,
                     details.numberPresentation, details.formattedNumber);
-        if (TextUtils.isEmpty(details.name)) {
-            nameText = displayNumber;
-            if (TextUtils.isEmpty(details.geocode)
-                    || mPhoneNumberUtilsWrapper.isVoicemailNumber(details.number)) {
-                numberText = mResources.getString(R.string.call_log_empty_geocode);
-            } else {
-                numberText = details.geocode;
-            }
-            labelText = numberText;
-            // We have a real phone number as "nameView" so make it always LTR
-            views.nameView.setTextDirection(View.TEXT_DIRECTION_LTR);
-        } else {
-            nameText = details.name;
-            numberText = displayNumber;
-            labelText = TextUtils.isEmpty(numberFormattedLabel) ? numberText :
-                    numberFormattedLabel;
         }
+        return numberFormattedLabel;
+    }
 
-        views.nameView.setText(nameText);
-        views.labelView.setText(labelText);
-        views.labelView.setVisibility(TextUtils.isEmpty(labelText) ? View.GONE : View.VISIBLE);
+    /**
+     * Get the call date/time of the call, relative to the current time.
+     * e.g. 3 minutes ago
+     * @param details Call details to use.
+     * @return String representing when the call occurred.
+     */
+    public CharSequence getCallDate(PhoneCallDetails details) {
+        return DateUtils.getRelativeTimeSpanString(details.date,
+                getCurrentTimeMillis(),
+                DateUtils.MINUTE_IN_MILLIS,
+                DateUtils.FORMAT_ABBREV_RELATIVE);
     }
 
     /** Sets the text of the header view for the details page of a phone call. */
@@ -176,7 +220,7 @@
 
     /** Sets the call count and date. */
     private void setCallCountAndDate(PhoneCallDetailsViews views, Integer callCount,
-            CharSequence dateText, Integer highlightColor) {
+            CharSequence dateText) {
         // Combine the count (if present) and the date.
         final CharSequence text;
         if (callCount != null) {
@@ -186,23 +230,6 @@
             text = dateText;
         }
 
-        // Apply the highlight color if present.
-        final CharSequence formattedText;
-        if (highlightColor != null) {
-            formattedText = addBoldAndColor(text, highlightColor);
-        } else {
-            formattedText = text;
-        }
-
-        views.callTypeAndDate.setText(formattedText);
-    }
-
-    /** Creates a SpannableString for the given text which is bold and in the given color. */
-    private CharSequence addBoldAndColor(CharSequence text, int color) {
-        int flags = Spanned.SPAN_INCLUSIVE_INCLUSIVE;
-        SpannableString result = new SpannableString(text);
-        result.setSpan(new StyleSpan(Typeface.BOLD), 0, text.length(), flags);
-        result.setSpan(new ForegroundColorSpan(color), 0, text.length(), flags);
-        return result;
+        views.callLocationAndDate.setText(text);
     }
 }
diff --git a/src/com/android/dialer/PhoneCallDetailsViews.java b/src/com/android/dialer/PhoneCallDetailsViews.java
index 4e48210..30023ea 100644
--- a/src/com/android/dialer/PhoneCallDetailsViews.java
+++ b/src/com/android/dialer/PhoneCallDetailsViews.java
@@ -29,16 +29,17 @@
     public final TextView nameView;
     public final View callTypeView;
     public final CallTypeIconsView callTypeIcons;
-    public final TextView callTypeAndDate;
-    public final TextView labelView;
+    public final TextView callLocationAndDate;
+    public final TextView voicemailTranscriptionView;
 
     private PhoneCallDetailsViews(TextView nameView, View callTypeView,
-            CallTypeIconsView callTypeIcons, TextView callTypeAndDate, TextView labelView) {
+            CallTypeIconsView callTypeIcons, TextView callLocationAndDate,
+            TextView voicemailTranscriptionView) {
         this.nameView = nameView;
         this.callTypeView = callTypeView;
         this.callTypeIcons = callTypeIcons;
-        this.callTypeAndDate = callTypeAndDate;
-        this.labelView = labelView;
+        this.callLocationAndDate = callLocationAndDate;
+        this.voicemailTranscriptionView = voicemailTranscriptionView;
     }
 
     /**
@@ -52,8 +53,8 @@
         return new PhoneCallDetailsViews((TextView) view.findViewById(R.id.name),
                 view.findViewById(R.id.call_type),
                 (CallTypeIconsView) view.findViewById(R.id.call_type_icons),
-                (TextView) view.findViewById(R.id.call_count_and_date),
-                (TextView) view.findViewById(R.id.label));
+                (TextView) view.findViewById(R.id.call_location_and_date),
+                (TextView) view.findViewById(R.id.voicemail_transcription));
     }
 
     public static PhoneCallDetailsViews createForTest(Context context) {
diff --git a/src/com/android/dialer/SpecialCharSequenceMgr.java b/src/com/android/dialer/SpecialCharSequenceMgr.java
index f4f818a..9d622aa 100644
--- a/src/com/android/dialer/SpecialCharSequenceMgr.java
+++ b/src/com/android/dialer/SpecialCharSequenceMgr.java
@@ -30,6 +30,7 @@
 import android.os.Looper;
 import android.os.RemoteException;
 import android.os.ServiceManager;
+import android.provider.Settings;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.TelephonyManager;
 import android.util.Log;
@@ -39,8 +40,6 @@
 
 import com.android.contacts.common.database.NoNullCursorAsyncQueryHandler;
 import com.android.internal.telephony.ITelephony;
-import com.android.internal.telephony.TelephonyCapabilities;
-import com.android.internal.telephony.TelephonyIntents;
 
 /**
  * Helper class to listen for some magic character sequences
@@ -57,6 +56,7 @@
 public class SpecialCharSequenceMgr {
     private static final String TAG = "SpecialCharSequenceMgr";
 
+    private static final String SECRET_CODE_ACTION = "android.provider.Telephony.SECRET_CODE";
     private static final String MMI_IMEI_DISPLAY = "*#06#";
     private static final String MMI_REGULATORY_INFO_DISPLAY = "*#07#";
 
@@ -136,7 +136,7 @@
         // Secret codes are in the form *#*#<code>#*#*
         int len = input.length();
         if (len > 8 && input.startsWith("*#*#") && input.endsWith("#*#*")) {
-            Intent intent = new Intent(TelephonyIntents.SECRET_CODE_ACTION,
+            final Intent intent = new Intent(SECRET_CODE_ACTION,
                     Uri.parse("android_secret_code://" + input.substring(4, len - 4)));
             context.sendBroadcast(intent);
             return true;
@@ -259,10 +259,7 @@
     private static boolean handleRegulatoryInfoDisplay(Context context, String input) {
         if (input.equals(MMI_REGULATORY_INFO_DISPLAY)) {
             Log.d(TAG, "handleRegulatoryInfoDisplay() sending intent to settings app");
-            ComponentName regInfoDisplayActivity = new ComponentName(
-                    "com.android.settings", "com.android.settings.RegulatoryInfoDisplayActivity");
-            Intent showRegInfoIntent = new Intent("android.settings.SHOW_REGULATORY_INFO");
-            showRegInfoIntent.setComponent(regInfoDisplayActivity);
+            Intent showRegInfoIntent = new Intent(Settings.ACTION_SHOW_REGULATORY_INFO);
             try {
                 context.startActivity(showRegInfoIntent);
             } catch (ActivityNotFoundException e) {
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java
index 42318f0..13d5f03 100644
--- a/src/com/android/dialer/calllog/CallLogActivity.java
+++ b/src/com/android/dialer/calllog/CallLogActivity.java
@@ -19,38 +19,41 @@
 import android.app.Activity;
 import android.app.Fragment;
 import android.app.FragmentManager;
-import android.app.ActionBar.Tab;
-import android.app.ActionBar.TabListener;
-import android.app.FragmentTransaction;
 import android.content.Intent;
+import android.database.Cursor;
 import android.os.Bundle;
 import android.provider.CallLog.Calls;
 import android.support.v13.app.FragmentPagerAdapter;
-import android.support.v4.view.PagerTabStrip;
 import android.support.v4.view.ViewPager;
-import android.support.v4.view.ViewPager.OnPageChangeListener;
-import android.text.Spannable;
-import android.text.SpannableString;
-import android.text.style.TypefaceSpan;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 
 import com.android.dialer.DialtactsActivity;
 import com.android.dialer.R;
-import com.android.dialer.calllog.CallLogFragment;
+import com.android.dialer.list.ViewPagerTabs;
+import com.android.dialer.voicemail.VoicemailStatusHelper;
+import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
 
-public class CallLogActivity extends Activity {
-
+public class CallLogActivity extends Activity implements CallLogQueryHandler.Listener {
     private ViewPager mViewPager;
+    private ViewPagerTabs mViewPagerTabs;
     private ViewPagerAdapter mViewPagerAdapter;
     private CallLogFragment mAllCallsFragment;
     private CallLogFragment mMissedCallsFragment;
+    private CallLogFragment mVoicemailFragment;
+    private VoicemailStatusHelper mVoicemailStatusHelper;
+
+    private String[] mTabTitles;
 
     private static final int TAB_INDEX_ALL = 0;
     private static final int TAB_INDEX_MISSED = 1;
+    private static final int TAB_INDEX_VOICEMAIL = 2;
 
-    private static final int TAB_INDEX_COUNT = 2;
+    private static final int TAB_INDEX_COUNT_DEFAULT = 2;
+    private static final int TAB_INDEX_COUNT_WITH_VOICEMAIL = 3;
+
+    private boolean mHasActiveVoicemailProvider;
 
     public class ViewPagerAdapter extends FragmentPagerAdapter {
         public ViewPagerAdapter(FragmentManager fm) {
@@ -66,81 +69,61 @@
                 case TAB_INDEX_MISSED:
                     mMissedCallsFragment = new CallLogFragment(Calls.MISSED_TYPE);
                     return mMissedCallsFragment;
+                case TAB_INDEX_VOICEMAIL:
+                    mVoicemailFragment = new CallLogFragment(Calls.VOICEMAIL_TYPE);
+                    return mVoicemailFragment;
             }
             throw new IllegalStateException("No fragment at position " + position);
         }
 
         @Override
+        public CharSequence getPageTitle(int position) {
+            return mTabTitles[position];
+        }
+
+        @Override
         public int getCount() {
-            return TAB_INDEX_COUNT;
+            return mHasActiveVoicemailProvider ? TAB_INDEX_COUNT_WITH_VOICEMAIL :
+                    TAB_INDEX_COUNT_DEFAULT;
         }
     }
 
-    private final TabListener mTabListener = new TabListener() {
-        @Override
-        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
-        }
-
-        @Override
-        public void onTabSelected(Tab tab, FragmentTransaction ft) {
-            if (mViewPager != null && mViewPager.getCurrentItem() != tab.getPosition()) {
-                mViewPager.setCurrentItem(tab.getPosition(), true);
-            }
-        }
-
-        @Override
-        public void onTabReselected(Tab tab, FragmentTransaction ft) {
-        }
-    };
-
-    private final OnPageChangeListener mOnPageChangeListener = new OnPageChangeListener() {
-
-        @Override
-        public void onPageScrolled(
-                int position, float positionOffset, int positionOffsetPixels) {}
-
-        @Override
-        public void onPageSelected(int position) {
-            final ActionBar actionBar = getActionBar();
-            actionBar.selectTab(actionBar.getTabAt(position));
-        }
-
-        @Override
-        public void onPageScrollStateChanged(int arg0) {
-        }
-    };
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
         setContentView(R.layout.call_log_activity);
+        getWindow().setBackgroundDrawable(null);
 
         final ActionBar actionBar = getActionBar();
-        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
         actionBar.setDisplayShowHomeEnabled(true);
         actionBar.setDisplayHomeAsUpEnabled(true);
         actionBar.setDisplayShowTitleEnabled(true);
 
-        final Tab allTab = actionBar.newTab();
-        final String allTitle = getString(R.string.call_log_all_title);
-        allTab.setContentDescription(allTitle);
-        allTab.setText(allTitle);
-        allTab.setTabListener(mTabListener);
-        actionBar.addTab(allTab);
-
-        final Tab missedTab = actionBar.newTab();
-        final String missedTitle = getString(R.string.call_log_missed_title);
-        missedTab.setContentDescription(missedTitle);
-        missedTab.setText(missedTitle);
-        missedTab.setTabListener(mTabListener);
-        actionBar.addTab(missedTab);
+        mTabTitles = new String[TAB_INDEX_COUNT_WITH_VOICEMAIL];
+        mTabTitles[0] = getString(R.string.call_log_all_title);
+        mTabTitles[1] = getString(R.string.call_log_missed_title);
+        mTabTitles[2] = getString(R.string.call_log_voicemail_title);
 
         mViewPager = (ViewPager) findViewById(R.id.call_log_pager);
+
         mViewPagerAdapter = new ViewPagerAdapter(getFragmentManager());
         mViewPager.setAdapter(mViewPagerAdapter);
-        mViewPager.setOnPageChangeListener(mOnPageChangeListener);
-        mViewPager.setOffscreenPageLimit(1);
+        mViewPager.setOffscreenPageLimit(2);
+
+        mViewPagerTabs = (ViewPagerTabs) findViewById(R.id.viewpager_header);
+        mViewPagerTabs.setViewPager(mViewPager);
+        mViewPager.setOnPageChangeListener(mViewPagerTabs);
+
+        mVoicemailStatusHelper = new VoicemailStatusHelperImpl();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        CallLogQueryHandler callLogQueryHandler =
+                new CallLogQueryHandler(this.getContentResolver(), this);
+        callLogQueryHandler.fetchVoicemailStatus();
     }
 
     @Override
@@ -176,4 +159,24 @@
         }
         return super.onOptionsItemSelected(item);
     }
-}
+
+    @Override
+    public void onVoicemailStatusFetched(Cursor statusCursor) {
+        if (this.isFinishing()) {
+            return;
+        }
+
+        // Update mHasActiveVoicemailProvider, which controls the number of tabs displayed.
+        int activeSources = mVoicemailStatusHelper.getNumberActivityVoicemailSources(statusCursor);
+        if (activeSources > 0 != mHasActiveVoicemailProvider) {
+            mHasActiveVoicemailProvider = activeSources > 0;
+            mViewPagerAdapter.notifyDataSetChanged();
+            mViewPagerTabs.setViewPager(mViewPager);
+        }
+    }
+
+    @Override
+    public void onCallsFetched(Cursor statusCursor) {
+        // Do nothing. Implemented to satisfy CallLogQueryHandler.Listener.
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index a668196..0aca913 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -22,6 +22,7 @@
 import android.content.res.Resources;
 import android.database.Cursor;
 import android.net.Uri;
+import android.os.AsyncTask;
 import android.os.Handler;
 import android.os.Message;
 import android.provider.CallLog.Calls;
@@ -34,17 +35,23 @@
 import android.view.ViewTreeObserver;
 import android.widget.ImageView;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.android.common.widget.GroupingListAdapter;
 import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
 import com.android.contacts.common.util.UriUtils;
 import com.android.dialer.PhoneCallDetails;
 import com.android.dialer.PhoneCallDetailsHelper;
 import com.android.dialer.R;
+import com.android.dialer.util.AsyncTaskExecutor;
+import com.android.dialer.util.AsyncTaskExecutors;
 import com.android.dialer.util.ExpirableCache;
+
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Objects;
 
+import java.util.HashMap;
 import java.util.LinkedList;
 
 /**
@@ -53,6 +60,21 @@
 public class CallLogAdapter extends GroupingListAdapter
         implements ViewTreeObserver.OnPreDrawListener, CallLogGroupBuilder.GroupCreator {
 
+
+    /** The enumeration of {@link android.os.AsyncTask} objects used in this class. */
+    public enum Tasks {
+        REMOVE_CALL_LOG_ENTRIES,
+    }
+
+    /** Interface used to inform a parent UI element that a list item has been expanded. */
+    public interface CallItemExpandedListener {
+        /**
+         * @param view The {@link CallLogListItemView} that represents the item that was clicked
+         *         on.
+         */
+        public void onItemExpanded(CallLogListItemView view);
+    }
+
     /** Interface used to initiate a refresh of the content. */
     public interface CallFetcher {
         public void fetchCalls();
@@ -100,6 +122,9 @@
     private final CallFetcher mCallFetcher;
     private ViewTreeObserver mViewTreeObserver = null;
 
+    /** Aynchronous task executor, lazy instantiated as needed. */
+    private AsyncTaskExecutor mAsyncTaskExecutor;
+
     /**
      * A cache of the contact details for the phone numbers in the call log.
      * <p>
@@ -110,6 +135,9 @@
      */
     private ExpirableCache<NumberWithCountryIso, ContactInfo> mContactInfoCache;
 
+    /** Hashmap, keyed by call Id, used to track which call log entries have been expanded or not */
+    private HashMap<Long,Boolean> mIsExpanded = new HashMap<Long,Boolean>();
+
     /**
      * A request for contact details for the given number.
      */
@@ -180,13 +208,11 @@
     /** Helper to group call log entries. */
     private final CallLogGroupBuilder mCallLogGroupBuilder;
 
+    private CallItemExpandedListener mCallItemExpandedListener;
+
     /** Can be set to true by tests to disable processing of requests. */
     private volatile boolean mRequestProcessingDisabled = false;
 
-    /** True if CallLogAdapter is created from the PhoneFavoriteFragment, where the primary
-     * action should be set to call a number instead of opening the detail page. */
-    private boolean mUseCallAsPrimaryAction = false;
-
     private boolean mIsCallLog = true;
     private int mNumMissedCalls = 0;
     private int mNumMissedCallsShown = 0;
@@ -206,6 +232,47 @@
         }
     };
 
+    /**
+     * Click listener for the delete from call log button.  Removes the current call log
+     * entry and its associated calls from the call log.
+     */
+    private final View.OnClickListener mDeleteListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            // Retrieve the views from the call log view.
+            final CallLogListItemViews views =
+                    (CallLogListItemViews)
+                            ((View)v.getParent().getParent().getParent().getParent()).getTag();
+
+            deleteCalls(views.callIds);
+            notifyDataSetChanged();
+        }
+    };
+
+    /**
+     * The onClickListener used to expand or collapse the action buttons section for a call log
+     * entry.
+     */
+    private final View.OnClickListener mExpandCollapseListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            final CallLogListItemView callLogItem = (CallLogListItemView) v.getParent().getParent();
+            final CallLogListItemViews views = (CallLogListItemViews) callLogItem.getTag();
+
+            // Hide or show the actions view.
+            boolean expanded = toggleExpansion(views.rowId);
+
+            // Trigger loading of the viewstub and visual expand or collapse.
+            expandOrCollapseActions(callLogItem, expanded);
+
+            if (mCallItemExpandedListener != null) {
+                mCallItemExpandedListener.onItemExpanded(callLogItem);
+            }
+
+            notifyDataSetChanged();
+        }
+    };
+
     private void startActivityForAction(View view) {
         final IntentProvider intentProvider = (IntentProvider) view.getTag();
         if (intentProvider != null) {
@@ -246,15 +313,15 @@
     };
 
     public CallLogAdapter(Context context, CallFetcher callFetcher,
-            ContactInfoHelper contactInfoHelper, boolean useCallAsPrimaryAction,
+            ContactInfoHelper contactInfoHelper, CallItemExpandedListener callItemExpandedListener,
             boolean isCallLog) {
         super(context);
 
         mContext = context;
         mCallFetcher = callFetcher;
         mContactInfoHelper = contactInfoHelper;
-        mUseCallAsPrimaryAction = useCallAsPrimaryAction;
         mIsCallLog = isCallLog;
+        mCallItemExpandedListener = callItemExpandedListener;
 
         mContactInfoCache = ExpirableCache.create(CONTACT_INFO_CACHE_SIZE);
         mRequests = new LinkedList<ContactInfoRequest>();
@@ -507,8 +574,6 @@
     private void findAndCacheViews(View view) {
         // Get the views to bind to.
         CallLogListItemViews views = CallLogListItemViews.fromView(view);
-        views.primaryActionView.setOnClickListener(mActionListener);
-        views.secondaryActionView.setOnClickListener(mActionListener);
         view.setTag(views);
     }
 
@@ -532,35 +597,50 @@
         final long duration = c.getLong(CallLogQuery.DURATION);
         final int callType = c.getInt(CallLogQuery.CALL_TYPE);
         final String countryIso = c.getString(CallLogQuery.COUNTRY_ISO);
+        final long rowId = c.getLong(CallLogQuery.ID);
+        views.rowId = rowId;
+
+        // Store some values used when the actions ViewStub is inflated on expansion of the actions
+        // section.
+        views.number = number;
+        views.numberPresentation = numberPresentation;
+        views.callType = callType;
+        views.voicemailUri = c.getString(CallLogQuery.VOICEMAIL_URI);
+        // Stash away the Ids of the calls so that we can support deleting a row in the call log.
+        views.callIds = getCallIds(c, rowId, count);
 
         final ContactInfo cachedContactInfo = getContactInfoFromCallLog(c);
 
-        if (!mUseCallAsPrimaryAction) {
-            // Sets the primary action to open call detail page.
-            views.primaryActionView.setTag(
-                    IntentProvider.getCallDetailIntentProvider(
-                            getCursor(), c.getPosition(), c.getLong(CallLogQuery.ID), count));
-        } else if (PhoneNumberUtilsWrapper.canPlaceCallsTo(number, numberPresentation)) {
-            // Sets the primary action to call the number.
-            views.primaryActionView.setTag(IntentProvider.getReturnCallIntentProvider(number));
+        final boolean isVoicemailNumber =
+                PhoneNumberUtilsWrapper.INSTANCE.isVoicemailNumber(number);
+
+        // Where binding and not in the call log, use default behaviour of invoking a call when
+        // tapping the primary view.
+        if (!mIsCallLog) {
+            views.primaryActionView.setOnClickListener(this.mActionListener);
+
+            // Set return call intent, otherwise null.
+            if (PhoneNumberUtilsWrapper.canPlaceCallsTo(number, numberPresentation)) {
+                // Sets the primary action to call the number.
+                views.primaryActionView.setTag(IntentProvider.getReturnCallIntentProvider(number));
+            } else {
+                // Number is not callable, so hide button.
+                views.primaryActionView.setTag(null);
+            }
         } else {
-            views.primaryActionView.setTag(null);
+            // In the call log, expand/collapse an actions section for the call log entry when
+            // the primary view is tapped.
+
+            // TODO: This needs to be changed to do the proper QP open/close animation.
+            views.primaryActionView.setOnClickListener(this.mExpandCollapseListener);
+
+            // Note: Binding of the action buttons is done as required in configureActionViews
+            // when the user expands the actions ViewStub.
         }
 
-        // Store away the voicemail information so we can play it directly.
-        if (callType == Calls.VOICEMAIL_TYPE) {
-            String voicemailUri = c.getString(CallLogQuery.VOICEMAIL_URI);
-            final long rowId = c.getLong(CallLogQuery.ID);
-            views.secondaryActionView.setTag(
-                    IntentProvider.getPlayVoicemailIntentProvider(rowId, voicemailUri));
-        } else if (!TextUtils.isEmpty(number)) {
-            // Store away the number so we can call it directly if you click on the call icon.
-            views.secondaryActionView.setTag(
-                    IntentProvider.getReturnCallIntentProvider(number));
-        } else {
-            // No action enabled.
-            views.secondaryActionView.setTag(null);
-        }
+        // Restore expansion state of the row on rebind.  Inflate the actions ViewStub if required,
+        // and set its visibility state accordingly.
+        expandOrCollapseActions(view, isExpanded(rowId));
 
         // Lookup contacts with this number
         NumberWithCountryIso numberCountryIso = new NumberWithCountryIso(number, countryIso);
@@ -568,7 +648,7 @@
                 mContactInfoCache.getCachedValue(numberCountryIso);
         ContactInfo info = cachedInfo == null ? null : cachedInfo.getValue();
         if (!PhoneNumberUtilsWrapper.canPlaceCallsTo(number, numberPresentation)
-                || new PhoneNumberUtilsWrapper().isVoicemailNumber(number)) {
+                || isVoicemailNumber) {
             // If this is a number that cannot be dialed, there is no point in looking up a contact
             // for it.
             info = ContactInfo.EMPTY;
@@ -608,6 +688,7 @@
         CharSequence formattedNumber = info.formattedNumber;
         final int[] callTypes = getCallTypes(c, count);
         final String geocode = c.getString(CallLogQuery.GEOCODED_LOCATION);
+        final int sourceType = info.sourceType;
         final PhoneCallDetails details;
 
         if (TextUtils.isEmpty(name)) {
@@ -617,24 +698,36 @@
         } else {
             details = new PhoneCallDetails(number, numberPresentation,
                     formattedNumber, countryIso, geocode, callTypes, date,
-                    duration, name, ntype, label, lookupUri, photoUri);
+                    duration, name, ntype, label, lookupUri, photoUri, sourceType);
         }
 
-        final boolean isNew = c.getInt(CallLogQuery.IS_READ) == 0;
-        // New items also use the highlighted version of the text.
-        final boolean isHighlighted = isNew;
-        mCallLogViewsHelper.setPhoneCallDetails(views, details, isHighlighted,
-                mUseCallAsPrimaryAction);
+        mCallLogViewsHelper.setPhoneCallDetails(views, details);
+
+        int contactType = ContactPhotoManager.TYPE_DEFAULT;
+
+        if (isVoicemailNumber) {
+            contactType = ContactPhotoManager.TYPE_VOICEMAIL;
+        } else if (mContactInfoHelper.isBusiness(info.sourceType)) {
+            contactType = ContactPhotoManager.TYPE_BUSINESS;
+        }
+
+        String lookupKey = lookupUri == null ? null
+                : ContactInfoHelper.getLookupKeyFromUri(lookupUri);
+
+        String nameForDefaultImage = null;
+        if (TextUtils.isEmpty(name)) {
+            nameForDefaultImage = mPhoneNumberHelper.getDisplayNumber(details.number,
+                    details.numberPresentation, details.formattedNumber).toString();
+        } else {
+            nameForDefaultImage = name;
+        }
 
         if (photoId == 0 && photoUri != null) {
-            setPhoto(views, photoUri, lookupUri);
+            setPhoto(views, photoUri, lookupUri, nameForDefaultImage, lookupKey, contactType);
         } else {
-            setPhoto(views, photoId, lookupUri);
+            setPhoto(views, photoId, lookupUri, nameForDefaultImage, lookupKey, contactType);
         }
 
-        views.quickContactView.setContentDescription(views.phoneCallDetailsViews.nameView.
-                getText());
-
         // Listen for the first draw
         if (mViewTreeObserver == null) {
             mViewTreeObserver = view.getViewTreeObserver();
@@ -644,6 +737,140 @@
         bindBadge(view, info, details, callType);
     }
 
+    /**
+     * Determines if a call log row with the given Id is expanded to show the action buttons or
+     * not. If the row Id is not yet tracked, add a new entry assuming the row is collapsed.
+     * @param rowId
+     * @return
+     */
+    private boolean isExpanded(long rowId) {
+        if (!mIsExpanded.containsKey(rowId)) {
+            mIsExpanded.put(rowId, false);
+        }
+
+        return mIsExpanded.get(rowId);
+    }
+
+    /**
+     * Toggles the expansion state tracked for the call log row identified by rowId and returns
+     * the new expansion state.
+     *
+     * @param rowId The row Id associated with the call log row to expand/collapse.
+     * @return True where the row is now expanded, false otherwise.
+     */
+    private boolean toggleExpansion(long rowId) {
+        boolean isExpanded = isExpanded(rowId);
+
+        mIsExpanded.put(rowId, !isExpanded);
+        return !isExpanded;
+    }
+
+    /**
+     * Expands or collapses the view containing the CALLBACK, VOICEMAIL and DELETE action buttons.
+     *
+     * @param callLogItem The call log entry parent view.
+     * @param isExpanded The new expansion state of the view.
+     */
+    private void expandOrCollapseActions(View callLogItem, boolean isExpanded) {
+        final CallLogListItemViews views = (CallLogListItemViews)callLogItem.getTag();
+
+        if (isExpanded) {
+            // Inflate the view stub if necessary, and wire up the event handlers.
+            inflateActionViewStub(callLogItem);
+
+            views.actionsView.setVisibility(View.VISIBLE);
+            callLogItem.setBackgroundColor(
+                    callLogItem.getResources().getColor(R.color.background_dialer_light));
+            callLogItem.setElevation(
+                    callLogItem.getResources().getDimension(R.dimen.call_log_expanded_elevation));
+
+            // Attempt to give accessibility focus to one of the action buttons.
+            // This ensures that a user realizes the expansion occurred.
+            // NOTE(tgunn): requestAccessibilityFocus returns true if the requested
+            // focus was successful.  The first successful focus will satisfy the OR
+            // block and block further attempts to set focus.
+            boolean focused = views.callBackButtonView.requestAccessibilityFocus() ||
+                    views.voicemailButtonView.requestAccessibilityFocus() ||
+                    views.deleteButtonView.requestAccessibilityFocus();
+        } else {
+            // When recycling a view, it is possible the actionsView ViewStub was previously
+            // inflated so we should hide it in this case.
+            if (views.actionsView != null ) {
+                views.actionsView.setVisibility(View.GONE);
+            }
+
+            callLogItem.setBackgroundColor(
+                    callLogItem.getResources().getColor(R.color.background_dialer_list_items));
+            callLogItem.setElevation(0);
+        }
+    }
+
+    /**
+     * Configures the action buttons in the expandable actions ViewStub.  The ViewStub is not
+     * inflated during initial binding, so click handlers, tags and accessibility text must be set
+     * here, if necessary.
+     *
+     * @param callLogItem The call log list item view.
+     */
+    private void inflateActionViewStub(View callLogItem) {
+        final CallLogListItemViews views = (CallLogListItemViews)callLogItem.getTag();
+
+        ViewStub stub = (ViewStub)callLogItem.findViewById(R.id.call_log_entry_actions_stub);
+        if (stub != null) {
+            views.actionsView = stub.inflate();
+        }
+
+        if (views.callBackButtonView == null) {
+            views.callBackButtonView = (TextView)views.actionsView.findViewById(R.id.call_back_action);
+        }
+
+        if (views.voicemailButtonView == null) {
+            views.voicemailButtonView = (TextView)views.actionsView.findViewById(R.id.voicemail_action);
+        }
+
+        if ( views.deleteButtonView == null) {
+            views.deleteButtonView = (TextView)views.actionsView.findViewById(R.id.delete_action);
+        }
+
+        bindActionButtons(views);
+    }
+
+    /***
+     * Binds click handlers and intents to the voicemail, delete and callback action buttons.
+     *
+     * @param views  The call log item views.
+     */
+    private void bindActionButtons(CallLogListItemViews views) {
+        // Set return call intent, otherwise null.
+        if (PhoneNumberUtilsWrapper.canPlaceCallsTo(views.number, views.numberPresentation)) {
+            // Sets the primary action to call the number.
+            views.callBackButtonView.setTag(
+                    IntentProvider.getReturnCallIntentProvider(views.number));
+            views.callBackButtonView.setVisibility(View.VISIBLE);
+            views.callBackButtonView.setOnClickListener(mActionListener);
+        } else {
+            // Number is not callable, so hide button.
+            views.callBackButtonView.setTag(null);
+            views.callBackButtonView.setVisibility(View.GONE);
+        }
+
+        // For voicemail calls, show the "VOICEMAIL" action button; hide otherwise.
+        if (views.callType == Calls.VOICEMAIL_TYPE) {
+            views.voicemailButtonView.setOnClickListener(mActionListener);
+            views.voicemailButtonView.setTag(
+                    IntentProvider.getPlayVoicemailIntentProvider(
+                            views.rowId, views.voicemailUri));
+            views.voicemailButtonView.setVisibility(View.VISIBLE);
+        } else {
+            views.voicemailButtonView.setTag(null);
+            views.voicemailButtonView.setVisibility(View.GONE);
+        }
+
+        views.deleteButtonView.setOnClickListener(this.mDeleteListener);
+
+        mCallLogViewsHelper.setActionContentDescriptions(views);
+    }
+
     protected void bindBadge(View view, ContactInfo info, PhoneCallDetails details, int callType) {
 
         // Do not show badge in call log.
@@ -855,17 +1082,39 @@
         return callTypes;
     }
 
-    private void setPhoto(CallLogListItemViews views, long photoId, Uri contactUri) {
+    private void setPhoto(CallLogListItemViews views, long photoId, Uri contactUri,
+            String displayName, String identifier, int contactType) {
         views.quickContactView.assignContactUri(contactUri);
-        mContactPhotoManager.loadThumbnail(views.quickContactView, photoId, false /* darkTheme */);
+        views.quickContactView.setOverlay(null);
+        DefaultImageRequest request = new DefaultImageRequest(displayName, identifier,
+                contactType, true /* isCircular */);
+        mContactPhotoManager.loadThumbnail(views.quickContactView, photoId, false /* darkTheme */,
+                true /* isCircular */, request);
     }
 
-    private void setPhoto(CallLogListItemViews views, Uri photoUri, Uri contactUri) {
+    private void setPhoto(CallLogListItemViews views, Uri photoUri, Uri contactUri,
+            String displayName, String identifier, int contactType) {
         views.quickContactView.assignContactUri(contactUri);
+        views.quickContactView.setOverlay(null);
+        DefaultImageRequest request = new DefaultImageRequest(displayName, identifier,
+                contactType, true /* isCircular */);
         mContactPhotoManager.loadDirectoryPhoto(views.quickContactView, photoUri,
-                false /* darkTheme */);
+                false /* darkTheme */, true /* isCircular */, request);
     }
 
+    /**
+     * Bind a call log entry view for testing purposes.  Also inflates the action view stub so
+     * unit tests can access the buttons contained within.
+     *
+     * @param view The current call log row.
+     * @param context The current context.
+     * @param cursor The cursor to bind from.
+     */
+    @VisibleForTesting
+    void bindViewForTest(View view, Context context, Cursor cursor) {
+        bindStandAloneView(view, context, cursor);
+        inflateActionViewStub(view);
+    }
 
     /**
      * Sets whether processing of requests for contact details should be enabled.
@@ -927,4 +1176,76 @@
         }
         return number;
     }
+
+    /**
+     * Retrieves the call Ids represented by the current call log row.
+     *
+     * @param cursor Call log cursor to retrieve call Ids from.
+     * @param id Id of the first call of the grouping.
+     * @param groupSize Number of calls associated with the current call log row.
+     * @return Array of call Ids.
+     */
+    private long[] getCallIds(final Cursor cursor, final long id, final int groupSize) {
+        // We want to restore the position in the cursor at the end.
+        int startingPosition = cursor.getPosition();
+        long[] ids = new long[groupSize];
+        // Copy the ids of the rows in the group.
+        for (int index = 0; index < groupSize; ++index) {
+            ids[index] = cursor.getLong(CallLogQuery.ID);
+            cursor.moveToNext();
+        }
+        cursor.moveToPosition(startingPosition);
+        return ids;
+    }
+
+    /**
+     * Retrieves an instance of the asynchronous task executor, creating one if required.
+     * @return The {@link com.android.dialer.util.AsyncTaskExecutor}
+     */
+    private AsyncTaskExecutor getTaskExecutor() {
+        if (mAsyncTaskExecutor == null) {
+            mAsyncTaskExecutor = AsyncTaskExecutors.createAsyncTaskExecutor();
+        }
+        return mAsyncTaskExecutor;
+    }
+
+    /**
+     * Deletes the calls specified in the callIds array, asynchronously.
+     *
+     * @param callIds Ids of calls to be deleted.
+     */
+    private void deleteCalls(long[] callIds) {
+        if (callIds == null) {
+            return;
+        }
+
+        // Build comma separated list of ids to delete.
+        final StringBuilder callIdString = new StringBuilder();
+        for (long callId : callIds) {
+            if (callIdString.length() != 0) {
+                callIdString.append(",");
+            }
+            callIdString.append(callId);
+        }
+
+        // Perform removal of call log entries asynchronously.
+        getTaskExecutor().submit(Tasks.REMOVE_CALL_LOG_ENTRIES,
+                new AsyncTask<Void, Void, Void>() {
+                    @Override
+                    public Void doInBackground(Void... params) {
+                        // Issue delete.
+                        mContext.getContentResolver().delete(Calls.CONTENT_URI_WITH_VOICEMAIL,
+                                Calls._ID + " IN (" + callIdString + ")", null);
+                        return null;
+                    }
+
+                    @Override
+                    public void onPostExecute(Void result) {
+                        // Somewhere went wrong: we're going to bail out and show error to users.
+                        Toast.makeText(mContext, R.string.toast_entry_removed,
+                                Toast.LENGTH_SHORT).show();
+                    }
+                }
+        );
+    }
 }
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index 4fb4b0a..2b2d43c 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -16,6 +16,9 @@
 
 package com.android.dialer.calllog;
 
+import android.animation.Animator;
+import android.animation.ValueAnimator;
+import android.animation.Animator.AnimatorListener;
 import android.app.Activity;
 import android.app.KeyguardManager;
 import android.app.ListFragment;
@@ -29,11 +32,15 @@
 import android.provider.CallLog;
 import android.provider.CallLog.Calls;
 import android.provider.ContactsContract;
-import android.telephony.PhoneNumberUtils;
-import android.telephony.TelephonyManager;
+import android.provider.VoicemailContract.Status;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
+import android.view.ViewGroup.LayoutParams;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.TextView;
 
@@ -47,7 +54,6 @@
 import com.android.dialer.voicemail.VoicemailStatusHelper.StatusMessage;
 import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
 import com.android.dialerbind.ObjectFactory;
-import com.android.internal.telephony.ITelephony;
 
 import java.util.List;
 
@@ -56,7 +62,9 @@
  * (all, missed or voicemails), specify it in the constructor.
  */
 public class CallLogFragment extends ListFragment
-        implements CallLogQueryHandler.Listener, CallLogAdapter.CallFetcher {
+        implements CallLogQueryHandler.Listener,
+        CallLogAdapter.CallFetcher,
+        CallLogAdapter.CallItemExpandedListener {
     private static final String TAG = "CallLogFragment";
 
     /**
@@ -76,14 +84,15 @@
     private TextView mStatusMessageText;
     private TextView mStatusMessageAction;
     private KeyguardManager mKeyguardManager;
+    private View mFooterView;
 
     private boolean mEmptyLoaderRunning;
     private boolean mCallLogFetched;
     private boolean mVoicemailStatusFetched;
 
-    private final Handler mHandler = new Handler();
+    private float mExpandedItemElevation;
 
-    private TelephonyManager mTelephonyManager;
+    private final Handler mHandler = new Handler();
 
     private class CustomContentObserver extends ContentObserver {
         public CustomContentObserver() {
@@ -98,6 +107,7 @@
     // See issue 6363009
     private final ContentObserver mCallLogObserver = new CustomContentObserver();
     private final ContentObserver mContactsObserver = new CustomContentObserver();
+    private final ContentObserver mVoicemailStatusObserver = new CustomContentObserver();
     private boolean mRefreshDataRequired = true;
 
     // Exactly same variable is in Fragment as a package private.
@@ -110,6 +120,10 @@
     // will be used.
     private int mLogLimit = -1;
 
+    // Date limit (in millis since epoch) - when non-zero, only calls which occurred on or after
+    // the date filter are included.  If zero, no date-based filtering occurs.
+    private long mDateLimit = 0;
+
     public CallLogFragment() {
         this(CallLogQueryHandler.CALL_TYPE_ALL, -1);
     }
@@ -124,10 +138,36 @@
         mLogLimit = logLimit;
     }
 
+    /**
+     * Creates a call log fragment, filtering to include only calls of the desired type, occurring
+     * after the specified date.
+     * @param filterType type of calls to include.
+     * @param dateLimit limits results to calls occurring on or after the specified date.
+     */
+    public CallLogFragment(int filterType, long dateLimit) {
+        this(filterType, -1, dateLimit);
+    }
+
+    /**
+     * Creates a call log fragment, filtering to include only calls of the desired type, occurring
+     * after the specified date.  Also provides a means to limit the number of results returned.
+     * @param filterType type of calls to include.
+     * @param logLimit limits the number of results to return.
+     * @param dateLimit limits results to calls occurring on or after the specified date.
+     */
+    public CallLogFragment(int filterType, int logLimit, long dateLimit) {
+        this(filterType, logLimit);
+        mDateLimit = dateLimit;
+    }
+
     @Override
     public void onCreate(Bundle state) {
         super.onCreate(state);
 
+        String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
+        mAdapter = ObjectFactory.newCallLogAdapter(getActivity(), this, new ContactInfoHelper(
+                getActivity(), currentCountryIso), this, true);
+        setListAdapter(mAdapter);
         mCallLogQueryHandler = new CallLogQueryHandler(getActivity().getContentResolver(),
                 this, mLogLimit);
         mKeyguardManager =
@@ -136,8 +176,12 @@
                 mCallLogObserver);
         getActivity().getContentResolver().registerContentObserver(
                 ContactsContract.Contacts.CONTENT_URI, true, mContactsObserver);
+        getActivity().getContentResolver().registerContentObserver(
+                Status.CONTENT_URI, true, mVoicemailStatusObserver);
         setHasOptionsMenu(true);
-        updateCallList(mCallTypeFilter);
+        updateCallList(mCallTypeFilter, mDateLimit);
+
+        mExpandedItemElevation = getResources().getDimension(R.dimen.call_log_expanded_elevation);
     }
 
     /** Called by the CallLogQueryHandler when the list of calls has been fetched or updated. */
@@ -229,11 +273,8 @@
     public void onViewCreated(View view, Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
         updateEmptyMessage(mCallTypeFilter);
-        String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
-        mAdapter = ObjectFactory.newCallLogAdapter(getActivity(), this, new ContactInfoHelper(
-                getActivity(), currentCountryIso), false, true);
-        setListAdapter(mAdapter);
         getListView().setItemsCanFocus(true);
+        assignFooterViewToListView();
     }
 
     /**
@@ -315,24 +356,25 @@
         mAdapter.changeCursor(null);
         getActivity().getContentResolver().unregisterContentObserver(mCallLogObserver);
         getActivity().getContentResolver().unregisterContentObserver(mContactsObserver);
+        getActivity().getContentResolver().unregisterContentObserver(mVoicemailStatusObserver);
     }
 
     @Override
     public void fetchCalls() {
-        mCallLogQueryHandler.fetchCalls(mCallTypeFilter);
+        mCallLogQueryHandler.fetchCalls(mCallTypeFilter, mDateLimit);
     }
 
     public void startCallsQuery() {
         mAdapter.setLoading(true);
-        mCallLogQueryHandler.fetchCalls(mCallTypeFilter);
+        mCallLogQueryHandler.fetchCalls(mCallTypeFilter, mDateLimit);
     }
 
     private void startVoicemailStatusQuery() {
         mCallLogQueryHandler.fetchVoicemailStatus();
     }
 
-    private void updateCallList(int filterType) {
-        mCallLogQueryHandler.fetchCalls(filterType);
+    private void updateCallList(int filterType, long dateLimit) {
+        mCallLogQueryHandler.fetchCalls(filterType, dateLimit);
     }
 
     private void updateEmptyMessage(int filterType) {
@@ -341,6 +383,9 @@
             case Calls.MISSED_TYPE:
                 message = getString(R.string.recentMissed_empty);
                 break;
+            case Calls.VOICEMAIL_TYPE:
+                message = getString(R.string.recentVoicemails_empty);
+                break;
             case CallLogQueryHandler.CALL_TYPE_ALL:
                 message = getString(R.string.recentCalls_empty);
                 break;
@@ -449,4 +494,94 @@
             CallLogNotificationsHelper.updateVoicemailNotifications(getActivity());
         }
     }
+
+    /**
+     * Assigns a view to be used as a footer view in the call log.
+     *
+     * @param view View to be used as the footer view.
+     */
+    public void setFooterView(View view) {
+        mFooterView = view;
+        // Content view not created yet, defer addition of the footerview to onCreate
+        if (getView() == null) {
+            return;
+        }
+        assignFooterViewToListView();
+    }
+
+    private void assignFooterViewToListView() {
+        if (mFooterView == null) {
+            return;
+        }
+        final ListView listView = getListView();
+        listView.removeFooterView(mFooterView);
+        listView.addFooterView(mFooterView);
+    }
+
+    @Override
+    public void onItemExpanded(final CallLogListItemView view) {
+        final int startingHeight = view.getHeight();
+        final CallLogListItemViews viewHolder = (CallLogListItemViews) view.getTag();
+        final ViewTreeObserver observer = getListView().getViewTreeObserver();
+        observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
+            @Override
+            public boolean onPreDraw() {
+                // We don't want to continue getting called for every draw.
+                if (observer.isAlive()) {
+                    observer.removeOnPreDrawListener(this);
+                }
+                // Calculate some values to help with the animation.
+                final int endingHeight = view.getHeight();
+                final int distance = Math.abs(endingHeight - startingHeight);
+                final int baseHeight = Math.min(endingHeight, startingHeight);
+                final boolean isExpand = endingHeight > startingHeight;
+
+                // Set the views back to the start state of the animation
+                view.getLayoutParams().height = startingHeight;
+                if (!isExpand) {
+                    viewHolder.actionsView.setVisibility(View.VISIBLE);
+                }
+                view.requestLayout();
+
+                // Set up the animator to animate the expansion.
+                ValueAnimator animator = isExpand ? ValueAnimator.ofFloat(0f, 1f)
+                        : ValueAnimator.ofFloat(1f, 0f);
+
+                animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+                    @Override
+                    public void onAnimationUpdate(ValueAnimator animator) {
+                        Float value = (Float) animator.getAnimatedValue();
+
+                        // For each value from 0 to 1, animate the various parts of the layout.
+                        view.getLayoutParams().height =
+                                (int) (value * distance + baseHeight);
+                        view.setElevation(mExpandedItemElevation * value);
+                        view.requestLayout();
+                    }
+                });
+                // Set everything to their final values when the animation's done.
+                animator.addListener(new AnimatorListener() {
+                    @Override
+                    public void onAnimationEnd(Animator animation) {
+                        view.getLayoutParams().height = LayoutParams.WRAP_CONTENT;
+                        if (!isExpand) {
+                            viewHolder.actionsView.setVisibility(View.GONE);
+                        }
+                    }
+
+                    @Override
+                    public void onAnimationCancel(Animator animation) {}
+                    @Override
+                    public void onAnimationRepeat(Animator animation) { }
+                    @Override
+                    public void onAnimationStart(Animator animation) { }
+                });
+                animator.start();
+
+                // Return false so this draw does not occur to prevent the final frame from
+                // being drawn for the single frame before the animations start.
+                return false;
+            }
+        });
+    }
 }
diff --git a/src/com/android/dialer/calllog/CallLogListItemHelper.java b/src/com/android/dialer/calllog/CallLogListItemHelper.java
index a38ef01..976726d 100644
--- a/src/com/android/dialer/calllog/CallLogListItemHelper.java
+++ b/src/com/android/dialer/calllog/CallLogListItemHelper.java
@@ -19,7 +19,6 @@
 import android.content.res.Resources;
 import android.provider.CallLog.Calls;
 import android.text.TextUtils;
-import android.view.View;
 
 import com.android.dialer.PhoneCallDetails;
 import com.android.dialer.PhoneCallDetailsHelper;
@@ -54,38 +53,156 @@
      *
      * @param views the views to populate
      * @param details the details of a phone call needed to fill in the data
-     * @param isHighlighted whether to use the highlight text for the call
      */
-    public void setPhoneCallDetails(CallLogListItemViews views, PhoneCallDetails details,
-            boolean isHighlighted, boolean useCallAsPrimaryAction) {
-        mPhoneCallDetailsHelper.setPhoneCallDetails(views.phoneCallDetailsViews, details,
-                isHighlighted);
-        boolean canCall = PhoneNumberUtilsWrapper.canPlaceCallsTo(details.number,
-                details.numberPresentation);
-        boolean canPlay = details.callTypes[0] == Calls.VOICEMAIL_TYPE;
+    public void setPhoneCallDetails(CallLogListItemViews views, PhoneCallDetails details) {
+        mPhoneCallDetailsHelper.setPhoneCallDetails(views.phoneCallDetailsViews, details);
 
-        if (canPlay) {
-            // Playback action takes preference.
-            configurePlaySecondaryAction(views, isHighlighted);
-        } else if (canCall && !useCallAsPrimaryAction) {
-            // Call is the secondary action.
-            configureCallSecondaryAction(views, details);
+        // Set the accessibility text for the contact badge
+        views.quickContactView.setContentDescription(getContactBadgeDescription(details));
+
+        // Set the primary action accessibility description
+        views.primaryActionView.setContentDescription(getCallDescription(details));
+
+        // Cache name or number of caller.  Used when setting the content descriptions of buttons
+        // when the actions ViewStub is inflated.
+        views.nameOrNumber = this.getNameOrNumber(details);
+    }
+
+    /**
+     * Sets the accessibility descriptions for the action buttons in the action button ViewStub.
+     *
+     * @param views The views associated with the current call log entry.
+     */
+    public void setActionContentDescriptions(CallLogListItemViews views) {
+        views.callBackButtonView.setContentDescription(
+                mResources.getString(R.string.description_call_back_action, views.nameOrNumber));
+
+        views.voicemailButtonView.setContentDescription(
+                mResources.getString(R.string.description_voicemail_action, views.nameOrNumber));
+
+        views.deleteButtonView.setContentDescription(
+                mResources.getString(R.string.description_delete_action, views.nameOrNumber));
+    }
+
+    /**
+     * Returns the accessibility description for the contact badge for a call log entry.
+     *
+     * @param details Details of call.
+     * @return Accessibility description.
+     */
+    private CharSequence getContactBadgeDescription(PhoneCallDetails details) {
+        return mResources.getString(R.string.description_contact_details, getNameOrNumber(details));
+    }
+
+    /**
+     * Returns the accessibility description of the "return call/call" action for a call log
+     * entry.
+     * Accessibility text is a combination of:
+     * {Voicemail Prefix}. {Number of Calls}. {Caller information}.
+     * If most recent call is a voicemail, {Voicemail Prefix} is "New Voicemail.", otherwise "".
+     *
+     * If more than one call for the caller, {Number of Calls} is:
+     * "{number of calls} calls.", otherwise "".
+     *
+     * The {Caller Information} references the most recent call associated with the caller.
+     * For incoming calls:
+     * If missed call:  Missed call from {Name/Number} {Call Type} {Call Time}.
+     * If answered call: Answered call from {Name/Number} {Call Type} {Call Time}.
+     *
+     * For outgoing calls:
+     * If outgoing:  Call to {Name/Number] {Call Type} {Call Time}.
+     *
+     * Where:
+     * {Name/Number} is the name or number of the caller (as shown in call log).
+     * {Call type} is the contact phone number type (eg mobile) or location.
+     * {Call Time} is the time since the last call for the contact occurred.
+     *
+     * Examples:
+     * 3 calls.  New Voicemail.  Missed call from Joe Smith mobile 2 hours ago.
+     * 2 calls.  Answered call from John Doe mobile.  Last called 1 hour ago.
+     * @param details Details of call.
+     * @return Return call action description.
+     */
+    public CharSequence getCallDescription(PhoneCallDetails details) {
+        int lastCallType = getLastCallType(details.callTypes);
+        boolean isVoiceMail = lastCallType == Calls.VOICEMAIL_TYPE;
+
+        // Get the name or number of the caller.
+        final CharSequence nameOrNumber = getNameOrNumber(details);
+
+        // Get the call type or location of the caller; null if not applicable
+        final CharSequence typeOrLocation = mPhoneCallDetailsHelper.getCallTypeOrLocation(details);
+
+        // Get the time/date of the call
+        final CharSequence timeOfCall = mPhoneCallDetailsHelper.getCallDate(details);
+
+        StringBuilder callDescription = new StringBuilder();
+
+        // Prepend the voicemail indication.
+        if (isVoiceMail) {
+            callDescription.append(mResources.getString(R.string.description_new_voicemail));
+        }
+
+        // Add number of calls if more than one.
+        if (details.callTypes.length > 1) {
+            callDescription.append(mResources.getString(R.string.description_num_calls,
+                    details.callTypes.length));
+        }
+
+        int stringID = getCallDescriptionStringID(details);
+
+        // Use chosen string resource to build up the message.
+        callDescription.append(mResources.getString(stringID,
+                nameOrNumber,
+                // If no type or location can be determined, sub in empty string.
+                typeOrLocation == null ? "" : typeOrLocation,
+                timeOfCall));
+
+        return callDescription;
+    }
+
+    /**
+     * Determine the appropriate string ID to describe a call for accessibility purposes.
+     *
+     * @param details Call details.
+     * @return String resource ID to use.
+     */
+    public int getCallDescriptionStringID(PhoneCallDetails details) {
+        int lastCallType = getLastCallType(details.callTypes);
+        int stringID;
+
+        if (lastCallType == Calls.VOICEMAIL_TYPE || lastCallType == Calls.MISSED_TYPE) {
+            //Message: Missed call from <NameOrNumber>, <TypeOrLocation>, <TimeOfCall>.
+            stringID = R.string.description_incoming_missed_call;
+        } else if (lastCallType == Calls.INCOMING_TYPE) {
+            //Message: Answered call from <NameOrNumber>, <TypeOrLocation>, <TimeOfCall>.
+            stringID = R.string.description_incoming_answered_call;
         } else {
-            // No action available.
-            views.secondaryActionView.setVisibility(View.GONE);
+            //Message: Call to <NameOrNumber>, <TypeOrLocation>, <TimeOfCall>.
+            stringID = R.string.description_outgoing_call;
+        }
+        return stringID;
+    }
+
+    /**
+     * Determine the call type for the most recent call.
+     * @param callTypes Call types to check.
+     * @return Call type.
+     */
+    private int getLastCallType(int[] callTypes) {
+        if (callTypes.length > 0) {
+            return callTypes[0];
+        } else {
+            return Calls.MISSED_TYPE;
         }
     }
 
-    /** Sets the secondary action to correspond to the call button. */
-    private void configureCallSecondaryAction(CallLogListItemViews views,
-            PhoneCallDetails details) {
-        views.secondaryActionView.setVisibility(View.VISIBLE);
-        views.secondaryActionView.setImageResource(R.drawable.ic_phone_dk);
-        views.secondaryActionView.setContentDescription(getCallActionDescription(details));
-    }
-
-    /** Returns the description used by the call action for this phone call. */
-    private CharSequence getCallActionDescription(PhoneCallDetails details) {
+    /**
+     * Return the name or number of the caller specified by the details.
+     * @param details Call details
+     * @return the name (if known) of the caller, otherwise the formatted number.
+     */
+    private CharSequence getNameOrNumber(PhoneCallDetails details) {
         final CharSequence recipient;
         if (!TextUtils.isEmpty(details.name)) {
             recipient = details.name;
@@ -93,15 +210,6 @@
             recipient = mPhoneNumberHelper.getDisplayNumber(
                     details.number, details.numberPresentation, details.formattedNumber);
         }
-        return mResources.getString(R.string.description_call, recipient);
-    }
-
-    /** Sets the secondary action to correspond to the play button. */
-    private void configurePlaySecondaryAction(CallLogListItemViews views, boolean isHighlighted) {
-        views.secondaryActionView.setVisibility(View.VISIBLE);
-        views.secondaryActionView.setImageResource(
-                isHighlighted ? R.drawable.ic_play_active_holo_dark : R.drawable.ic_play_holo_light);
-        views.secondaryActionView.setContentDescription(
-                mResources.getString(R.string.description_call_log_play_button));
+        return recipient;
     }
 }
diff --git a/src/com/android/dialer/calllog/CallLogListItemView.java b/src/com/android/dialer/calllog/CallLogListItemView.java
index 113b02a..b8990f5 100644
--- a/src/com/android/dialer/calllog/CallLogListItemView.java
+++ b/src/com/android/dialer/calllog/CallLogListItemView.java
@@ -35,12 +35,4 @@
     public CallLogListItemView(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
     }
-
-    @Override
-    public void requestLayout() {
-        // We will assume that once measured this will not need to resize
-        // itself, so there is no need to pass the layout request to the parent
-        // view (ListView).
-        forceLayout();
-    }
 }
diff --git a/src/com/android/dialer/calllog/CallLogListItemViews.java b/src/com/android/dialer/calllog/CallLogListItemViews.java
index ed6218f..333769d 100644
--- a/src/com/android/dialer/calllog/CallLogListItemViews.java
+++ b/src/com/android/dialer/calllog/CallLogListItemViews.java
@@ -34,19 +34,67 @@
     public final QuickContactBadge quickContactView;
     /** The primary action view of the entry. */
     public final View primaryActionView;
-    /** The secondary action button on the entry. */
-    public final ImageView secondaryActionView;
     /** The details of the phone call. */
     public final PhoneCallDetailsViews phoneCallDetailsViews;
     /** The text of the header of a section. */
     public final TextView listHeaderTextView;
+    /** The view containing call log item actions.  Null until the ViewStub is inflated. */
+    public View actionsView;
+    /** The "call back" action button - assigned only when the action section is expanded. */
+    public TextView callBackButtonView;
+    /** The "delete" action button - assigned only when the action section is expanded. */
+    public TextView deleteButtonView;
+    /** The "voicemail" action button - assigned only when the action section is expanded. */
+    public TextView voicemailButtonView;
+
+    /**
+     * The row Id for the first call associated with the call log entry.  Used as a key for the
+     * map used to track which call log entries have the action button section expanded.
+     */
+    public long rowId;
+
+    /**
+     * The call Ids for the calls represented by the current call log entry.  Used when the user
+     * deletes a call log entry.
+     */
+    public long[] callIds;
+
+    /**
+     * The callable phone number for the current call log entry.  Cached here as the call back
+     * intent is set only when the actions ViewStub is inflated.
+     */
+    public String number;
+
+    /**
+     * The phone number presentation for the current call log entry.  Cached here as the call back
+     * intent is set only when the actions ViewStub is inflated.
+     */
+    public int numberPresentation;
+
+    /**
+     * The type of call for the current call log entry.  Cached here as the call back
+     * intent is set only when the actions ViewStub is inflated.
+     */
+    public int callType;
+
+    /**
+     * If the call has an associated voicemail message, the URI of the voicemail message for
+     * playback.  Cached here as the voicemail intent is only set when the actions ViewStub is
+     * inflated.
+     */
+    public String voicemailUri;
+
+    /**
+     * The name or number associated with the call.  Cached here for use when setting content
+     * descriptions on buttons in the actions ViewStub when it is inflated.
+     */
+    public CharSequence nameOrNumber;
 
     private CallLogListItemViews(QuickContactBadge quickContactView, View primaryActionView,
-            ImageView secondaryActionView, PhoneCallDetailsViews phoneCallDetailsViews,
+            PhoneCallDetailsViews phoneCallDetailsViews,
             TextView listHeaderTextView) {
         this.quickContactView = quickContactView;
         this.primaryActionView = primaryActionView;
-        this.secondaryActionView = secondaryActionView;
         this.phoneCallDetailsViews = phoneCallDetailsViews;
         this.listHeaderTextView = listHeaderTextView;
     }
@@ -55,18 +103,21 @@
         return new CallLogListItemViews(
                 (QuickContactBadge) view.findViewById(R.id.quick_contact_photo),
                 view.findViewById(R.id.primary_action_view),
-                (ImageView) view.findViewById(R.id.secondary_action_icon),
                 PhoneCallDetailsViews.fromView(view),
                 (TextView) view.findViewById(R.id.call_log_header));
     }
 
     @NeededForTesting
     public static CallLogListItemViews createForTest(Context context) {
-        return new CallLogListItemViews(
+        CallLogListItemViews views = new CallLogListItemViews(
                 new QuickContactBadge(context),
                 new View(context),
-                new ImageView(context),
                 PhoneCallDetailsViews.createForTest(context),
                 new TextView(context));
+        views.callBackButtonView = new TextView(context);
+        views.deleteButtonView = new TextView(context);
+        views.voicemailButtonView = new TextView(context);
+        views.actionsView = new View(context);
+        return views;
     }
 }
diff --git a/src/com/android/dialer/calllog/CallLogNotificationsService.java b/src/com/android/dialer/calllog/CallLogNotificationsService.java
index 3270963..ccd9335 100644
--- a/src/com/android/dialer/calllog/CallLogNotificationsService.java
+++ b/src/com/android/dialer/calllog/CallLogNotificationsService.java
@@ -70,6 +70,10 @@
 
     @Override
     protected void onHandleIntent(Intent intent) {
+        if (intent == null) {
+            Log.d(TAG, "onHandleIntent: could not handle null intent");
+            return;
+        }
         if (ACTION_MARK_NEW_VOICEMAILS_AS_OLD.equals(intent.getAction())) {
             mCallLogQueryHandler.markNewVoicemailsAsOld();
         } else if (ACTION_UPDATE_NOTIFICATIONS.equals(intent.getAction())) {
diff --git a/src/com/android/dialer/calllog/CallLogQueryHandler.java b/src/com/android/dialer/calllog/CallLogQueryHandler.java
index def3c97..64eddec 100644
--- a/src/com/android/dialer/calllog/CallLogQueryHandler.java
+++ b/src/com/android/dialer/calllog/CallLogQueryHandler.java
@@ -112,6 +112,8 @@
                 Log.w(TAG, "Exception on background worker thread", e);
             } catch (SQLiteDatabaseCorruptException e) {
                 Log.w(TAG, "Exception on background worker thread", e);
+            } catch (IllegalArgumentException e) {
+                Log.w(TAG, "ContactsProvider not present on device", e);
             }
         }
     }
@@ -258,7 +260,7 @@
     }
 
     @Override
-    protected void onNotNullableQueryComplete(int token, Object cookie, Cursor cursor) {
+    protected synchronized void onNotNullableQueryComplete(int token, Object cookie, Cursor cursor) {
         if (token == QUERY_CALLLOG_TOKEN) {
             int requestId = ((Integer) cookie).intValue();
             if (requestId != mCallsRequestId) {
diff --git a/src/com/android/dialer/calllog/CallTypeIconsView.java b/src/com/android/dialer/calllog/CallTypeIconsView.java
index a65f2c2..125ba6f 100644
--- a/src/com/android/dialer/calllog/CallTypeIconsView.java
+++ b/src/com/android/dialer/calllog/CallTypeIconsView.java
@@ -17,7 +17,11 @@
 package com.android.dialer.calllog;
 
 import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
 import android.graphics.Canvas;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.provider.CallLog.Calls;
 import android.util.AttributeSet;
@@ -112,19 +116,80 @@
     }
 
     private static class Resources {
+
+        /**
+         * Drawable representing an incoming answered call.
+         */
         public final Drawable incoming;
+
+        /**
+         * Drawable respresenting an outgoing call.
+         */
         public final Drawable outgoing;
+
+        /**
+         * Drawable representing an incoming missed call.
+         */
         public final Drawable missed;
+
+        /**
+         * Drawable representing a voicemail.
+         */
         public final Drawable voicemail;
+
+        /**
+         * The margin to use for icons.
+         */
         public final int iconMargin;
 
+        /**
+         * Configures the call icon drawables.
+         * A single white call arrow which points down and left is used as a basis for all of the
+         * call arrow icons, applying rotation and colors as needed.
+         *
+         * @param context The current context.
+         */
         public Resources(Context context) {
             final android.content.res.Resources r = context.getResources();
-            incoming = r.getDrawable(R.drawable.ic_call_incoming_holo_dark);
-            outgoing = r.getDrawable(R.drawable.ic_call_outgoing_holo_dark);
-            missed = r.getDrawable(R.drawable.ic_call_missed_holo_dark);
+
+            incoming = r.getDrawable(R.drawable.ic_call_arrow);
+            incoming.setColorFilter(r.getColor(R.color.answered_call), PorterDuff.Mode.MULTIPLY);
+
+            // Create a rotated instance of the call arrow for outgoing calls.
+            outgoing = getRotatedDrawable(r, R.drawable.ic_call_arrow, 180f);
+            outgoing.setColorFilter(r.getColor(R.color.answered_call), PorterDuff.Mode.MULTIPLY);
+
+            // Need to make a copy of the arrow drawable, otherwise the same instance colored
+            // above will be recolored here.
+            missed = r.getDrawable(R.drawable.ic_call_arrow).mutate();
+            missed.setColorFilter(r.getColor(R.color.missed_call), PorterDuff.Mode.MULTIPLY);
+
             voicemail = r.getDrawable(R.drawable.ic_call_voicemail_holo_dark);
             iconMargin = r.getDimensionPixelSize(R.dimen.call_log_icon_margin);
         }
+
+        /**
+         * Retrieves a copy of the specified drawable resource, rotated by a specified angle.
+         *
+         * @param resources The current resources.
+         * @param resourceId The resource ID of the drawable to rotate.
+         * @param angle The angle of rotation.
+         * @return Rotated drawable.
+         */
+        private Drawable getRotatedDrawable(
+                android.content.res.Resources resources, int resourceId, float angle) {
+
+            // Get the original drawable and make a copy which will be rotated.
+            Bitmap original = BitmapFactory.decodeResource(resources, resourceId);
+            Bitmap rotated = Bitmap.createBitmap(
+                    original.getWidth(), original.getHeight(), Bitmap.Config.ARGB_8888);
+
+            // Perform the rotation.
+            Canvas tempCanvas = new Canvas(rotated);
+            tempCanvas.rotate(angle, original.getWidth()/2, original.getHeight()/2);
+            tempCanvas.drawBitmap(original, 0, 0, null);
+
+            return new BitmapDrawable(resources,rotated);
+        }
     }
 }
diff --git a/src/com/android/dialer/calllog/ContactInfo.java b/src/com/android/dialer/calllog/ContactInfo.java
index 601f552..41afa5a 100644
--- a/src/com/android/dialer/calllog/ContactInfo.java
+++ b/src/com/android/dialer/calllog/ContactInfo.java
@@ -27,6 +27,7 @@
  */
 public class ContactInfo {
     public Uri lookupUri;
+    public String lookupKey;
     public String name;
     public int type;
     public String label;
diff --git a/src/com/android/dialer/calllog/ContactInfoHelper.java b/src/com/android/dialer/calllog/ContactInfoHelper.java
index d248c70..5d99ef4 100644
--- a/src/com/android/dialer/calllog/ContactInfoHelper.java
+++ b/src/com/android/dialer/calllog/ContactInfoHelper.java
@@ -1,17 +1,15 @@
 /*
  * Copyright (C) 2011 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
+ * 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
+ * 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.
+ * 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.
  */
 
 package com.android.dialer.calllog;
@@ -37,6 +35,8 @@
 import org.json.JSONException;
 import org.json.JSONObject;
 
+import java.util.List;
+
 /**
  * Utility class to look up the contact information for a given number.
  */
@@ -101,7 +101,7 @@
                 updatedInfo = new ContactInfo();
                 updatedInfo.number = number;
                 updatedInfo.formattedNumber = formatPhoneNumber(number, null, countryIso);
-                updatedInfo.lookupUri = createTemporaryContactUri(number);
+                updatedInfo.lookupUri = createTemporaryContactUri(updatedInfo.formattedNumber);
             } else {
                 updatedInfo = info;
             }
@@ -113,23 +113,20 @@
      * Creates a JSON-encoded lookup uri for a unknown number without an associated contact
      *
      * @param number - Unknown phone number
-     * @return JSON-encoded URI that can be used to perform a lookup when clicking
-     * on the quick contact card.
+     * @return JSON-encoded URI that can be used to perform a lookup when clicking on the quick
+     *         contact card.
      */
     private static Uri createTemporaryContactUri(String number) {
         try {
-            final JSONObject contactRows = new JSONObject()
-                    .put(Phone.CONTENT_ITEM_TYPE, new JSONObject()
-                            .put(Phone.NUMBER, number)
-                                    .put(Phone.TYPE, Phone.TYPE_CUSTOM));
+            final JSONObject contactRows = new JSONObject().put(Phone.CONTENT_ITEM_TYPE,
+                    new JSONObject().put(Phone.NUMBER, number).put(Phone.TYPE, Phone.TYPE_CUSTOM));
 
-            final String jsonString = new JSONObject()
-                    .put(Contacts.DISPLAY_NAME, number)
-                            .put(Contacts.DISPLAY_NAME_SOURCE, DisplayNameSources.PHONE)
-                            .put(Contacts.CONTENT_ITEM_TYPE, contactRows)
-                            .toString();
+            final String jsonString = new JSONObject().put(Contacts.DISPLAY_NAME, number)
+                    .put(Contacts.DISPLAY_NAME_SOURCE, DisplayNameSources.PHONE)
+                    .put(Contacts.CONTENT_ITEM_TYPE, contactRows).toString();
 
-            return Contacts.CONTENT_LOOKUP_URI.buildUpon()
+            return Contacts.CONTENT_LOOKUP_URI
+                    .buildUpon()
                     .appendPath(Constants.LOOKUP_URI_ENCODED)
                     .appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
                             String.valueOf(Long.MAX_VALUE))
@@ -152,8 +149,7 @@
     private ContactInfo lookupContactFromUri(Uri uri) {
         final ContactInfo info;
         Cursor phonesCursor =
-                mContext.getContentResolver().query(
-                        uri, PhoneQuery._PROJECTION, null, null, null);
+                mContext.getContentResolver().query(uri, PhoneQuery._PROJECTION, null, null, null);
 
         if (phonesCursor != null) {
             try {
@@ -161,6 +157,7 @@
                     info = new ContactInfo();
                     long contactId = phonesCursor.getLong(PhoneQuery.PERSON_ID);
                     String lookupKey = phonesCursor.getString(PhoneQuery.LOOKUP_KEY);
+                    info.lookupKey = lookupKey;
                     info.lookupUri = Contacts.getLookupUri(contactId, lookupKey);
                     info.name = phonesCursor.getString(PhoneQuery.NAME);
                     info.type = phonesCursor.getInt(PhoneQuery.PHONE_TYPE);
@@ -230,8 +227,8 @@
         if (info != null && info != ContactInfo.EMPTY) {
             info.formattedNumber = formatPhoneNumber(number, null, countryIso);
         } else if (mCachedNumberLookupService != null) {
-            CachedContactInfo cacheInfo = mCachedNumberLookupService
-                .lookupCachedContactFromNumber(mContext, number);
+            CachedContactInfo cacheInfo =
+                    mCachedNumberLookupService.lookupCachedContactFromNumber(mContext, number);
             info = cacheInfo != null ? cacheInfo.getContactInfo() : null;
         }
         return info;
@@ -242,14 +239,12 @@
      *
      * @param number the number to be formatted.
      * @param normalizedNumber the normalized number of the given number.
-     * @param countryIso the ISO 3166-1 two letters country code, the country's
-     *        convention will be used to format the number if the normalized
-     *        phone is null.
+     * @param countryIso the ISO 3166-1 two letters country code, the country's convention will be
+     *        used to format the number if the normalized phone is null.
      *
      * @return the formatted number, or the given number if it was formatted.
      */
-    private String formatPhoneNumber(String number, String normalizedNumber,
-            String countryIso) {
+    private String formatPhoneNumber(String number, String normalizedNumber, String countryIso) {
         if (TextUtils.isEmpty(number)) {
             return "";
         }
@@ -262,4 +257,33 @@
         }
         return PhoneNumberUtils.formatNumber(number, normalizedNumber, countryIso);
     }
+
+    /**
+     * Parses the given URI to determine the original lookup key of the contact.
+     */
+    public static String getLookupKeyFromUri(Uri lookupUri) {
+        // Would be nice to be able to persist the lookup key somehow to avoid having to parse
+        // the uri entirely just to retrieve the lookup key, but every uri is already parsed
+        // once anyway to check if it is an encoded JSON uri, so this has negligible effect
+        // on performance.
+        if (lookupUri != null && !UriUtils.isEncodedContactUri(lookupUri)) {
+            final List<String> segments = lookupUri.getPathSegments();
+            // This returns the third path segment of the uri, where the lookup key is located.
+            // See {@link android.provider.ContactsContract.Contacts#CONTENT_LOOKUP_URI}.
+            return (segments.size() < 3) ? null : Uri.encode(segments.get(2));
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Given a contact's sourceType, return true if the contact is a business
+     *
+     * @param sourceType sourceType of the contact. This is usually populated by
+     *        {@link #mCachedNumberLookupService}.
+     */
+    public boolean isBusiness(int sourceType) {
+        return mCachedNumberLookupService != null
+                && mCachedNumberLookupService.isBusiness(sourceType);
+    }
 }
diff --git a/src/com/android/dialer/calllog/PhoneNumberUtilsWrapper.java b/src/com/android/dialer/calllog/PhoneNumberUtilsWrapper.java
index 9c83768..00a260a 100644
--- a/src/com/android/dialer/calllog/PhoneNumberUtilsWrapper.java
+++ b/src/com/android/dialer/calllog/PhoneNumberUtilsWrapper.java
@@ -30,7 +30,7 @@
  *
  */
 public class PhoneNumberUtilsWrapper {
-    private static final PhoneNumberUtilsWrapper INSTANCE = new PhoneNumberUtilsWrapper();
+    public static final PhoneNumberUtilsWrapper INSTANCE = new PhoneNumberUtilsWrapper();
     private static final Set<String> LEGACY_UNKNOWN_NUMBERS = Sets.newHashSet("-1", "-2", "-3");
 
     /** Returns true if it is possible to place a call to the given number. */
diff --git a/src/com/android/dialer/database/DialerDatabaseHelper.java b/src/com/android/dialer/database/DialerDatabaseHelper.java
index 555c171..95249a6 100644
--- a/src/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/src/com/android/dialer/database/DialerDatabaseHelper.java
@@ -163,6 +163,17 @@
         /** Selects only rows that have been updated after a certain time stamp.*/
         static final String SELECT_UPDATED_CLAUSE =
                 Phone.CONTACT_LAST_UPDATED_TIMESTAMP + " > ?";
+
+        /** Ignores contacts that have an unreasonably long lookup key. These are likely to be
+         * the result of multiple (> 50) merged raw contacts, and are likely to cause
+         * OutOfMemoryExceptions within SQLite, or cause memory allocation problems later on
+         * when iterating through the cursor set (see b/13133579)
+         */
+        static final String SELECT_IGNORE_LOOKUP_KEY_TOO_LONG_CLAUSE =
+                "length(" + Phone.LOOKUP_KEY + ") < 1000";
+
+        static final String SELECTION = SELECT_UPDATED_CLAUSE + " AND " +
+                SELECT_IGNORE_LOOKUP_KEY_TOO_LONG_CLAUSE;
     }
 
     /** Query options for querying the deleted contact database.*/
@@ -511,6 +522,9 @@
                 DeleteContactQuery.PROJECTION,
                 DeleteContactQuery.SELECT_UPDATED_CLAUSE,
                 new String[] {last_update_time}, null);
+        if (deletedContactCursor == null) {
+            return;
+        }
 
         db.beginTransaction();
         try {
@@ -628,10 +642,26 @@
 
             updatedContactCursor.moveToPosition(-1);
             while (updatedContactCursor.moveToNext()) {
-                insert.bindLong(1, updatedContactCursor.getLong(PhoneQuery.PHONE_ID));
-                insert.bindString(2, updatedContactCursor.getString(PhoneQuery.PHONE_NUMBER));
-                insert.bindLong(3, updatedContactCursor.getLong(PhoneQuery.PHONE_CONTACT_ID));
-                insert.bindString(4, updatedContactCursor.getString(PhoneQuery.PHONE_LOOKUP_KEY));
+                insert.clearBindings();
+
+                // Handle string columns which can possibly be null first. In the case of certain
+                // null columns (due to malformed rows possibly inserted by third-party apps
+                // or sync adapters), skip the phone number row.
+                final String number = updatedContactCursor.getString(PhoneQuery.PHONE_NUMBER);
+                if (TextUtils.isEmpty(number)) {
+                    continue;
+                } else {
+                    insert.bindString(2, number);
+                }
+
+                final String lookupKey = updatedContactCursor.getString(
+                        PhoneQuery.PHONE_LOOKUP_KEY);
+                if (TextUtils.isEmpty(lookupKey)) {
+                    continue;
+                } else {
+                    insert.bindString(4, lookupKey);
+                }
+
                 final String displayName = updatedContactCursor.getString(
                         PhoneQuery.PHONE_DISPLAY_NAME);
                 if (displayName == null) {
@@ -639,6 +669,8 @@
                 } else {
                     insert.bindString(5, displayName);
                 }
+                insert.bindLong(1, updatedContactCursor.getLong(PhoneQuery.PHONE_ID));
+                insert.bindLong(3, updatedContactCursor.getLong(PhoneQuery.PHONE_CONTACT_ID));
                 insert.bindLong(6, updatedContactCursor.getLong(PhoneQuery.PHONE_PHOTO_ID));
                 insert.bindLong(7, updatedContactCursor.getLong(PhoneQuery.PHONE_LAST_TIME_USED));
                 insert.bindLong(8, updatedContactCursor.getInt(PhoneQuery.PHONE_TIMES_USED));
@@ -648,8 +680,6 @@
                 insert.bindLong(12, updatedContactCursor.getInt(PhoneQuery.PHONE_IS_PRIMARY));
                 insert.bindLong(13, currentMillis);
                 insert.executeInsert();
-                insert.clearBindings();
-
                 final String contactPhoneNumber =
                         updatedContactCursor.getString(PhoneQuery.PHONE_NUMBER);
                 final ArrayList<String> numberPrefixes =
@@ -738,7 +768,7 @@
              * update time.
              */
             final Cursor updatedContactCursor = mContext.getContentResolver().query(PhoneQuery.URI,
-                    PhoneQuery.PROJECTION, PhoneQuery.SELECT_UPDATED_CLAUSE,
+                    PhoneQuery.PROJECTION, PhoneQuery.SELECTION,
                     new String[]{lastUpdateMillis}, null);
 
             /** Sets the time after querying the database as the current update time. */
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 91f2bda..4557bd4 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -35,11 +35,9 @@
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.ServiceManager;
-import android.provider.ContactsContract.Contacts;
 import android.provider.Contacts.People;
 import android.provider.Contacts.Phones;
 import android.provider.Contacts.PhonesColumns;
-import android.provider.ContactsContract.Intents;
 import android.provider.Settings;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.PhoneStateListener;
@@ -50,17 +48,13 @@
 import android.text.TextWatcher;
 import android.text.style.RelativeSizeSpan;
 import android.util.AttributeSet;
-import android.util.DisplayMetrics;
 import android.util.Log;
-import android.util.TypedValue;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.Menu;
-import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.MotionEvent;
 import android.view.View;
-import android.view.ViewConfiguration;
 import android.view.ViewGroup;
 import android.view.ViewTreeObserver;
 import android.view.ViewTreeObserver.OnPreDrawListener;
@@ -76,20 +70,19 @@
 
 import com.android.contacts.common.CallUtil;
 import com.android.contacts.common.GeoUtil;
-import com.android.contacts.common.activity.TransactionSafeActivity;
-import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.common.dialpad.DialpadKeyButton;
+import com.android.contacts.common.dialpad.DialpadView;
 import com.android.contacts.common.util.PhoneNumberFormatter;
 import com.android.contacts.common.util.StopWatch;
 import com.android.dialer.NeededForReflection;
 import com.android.dialer.DialtactsActivity;
 import com.android.dialer.R;
 import com.android.dialer.SpecialCharSequenceMgr;
-import com.android.dialer.database.DialerDatabaseHelper;
-import com.android.dialer.interactions.PhoneNumberInteraction;
-import com.android.dialer.util.OrientationUtil;
+import com.android.dialer.util.DialerUtils;
 import com.android.internal.telephony.ITelephony;
 import com.android.phone.common.CallLogAsync;
 import com.android.phone.common.HapticFeedback;
+
 import com.google.common.annotations.VisibleForTesting;
 
 import java.util.HashSet;
@@ -105,8 +98,18 @@
         DialpadKeyButton.OnPressedListener {
     private static final String TAG = DialpadFragment.class.getSimpleName();
 
-    public interface OnDialpadFragmentStartedListener {
-        public void onDialpadFragmentStarted();
+    /**
+     * This interface allows the DialpadFragment to tell its hosting Activity when and when not
+     * to display the "dial" button. While this is logically part of the DialpadFragment, the
+     * need to have a particular kind of slick animation puts the "dial" button in the parent.
+     *
+     * The parent calls dialButtonPressed() and optionsMenuInvoked() on the dialpad fragment
+     * when appropriate.
+     *
+     * TODO: Refactor the app so this interchange is a bit cleaner.
+     */
+    public interface HostInterface {
+        void setFloatingActionButtonVisible(boolean visible);
     }
 
     /**
@@ -140,30 +143,6 @@
         }
     }
 
-    /**
-     * LinearLayout that always returns true for onHoverEvent callbacks, to fix
-     * problems with accessibility due to the dialpad overlaying other fragments.
-     */
-    public static class HoverIgnoringLinearLayout extends LinearLayout {
-
-        public HoverIgnoringLinearLayout(Context context) {
-            super(context);
-        }
-
-        public HoverIgnoringLinearLayout(Context context, AttributeSet attrs) {
-            super(context, attrs);
-        }
-
-        public HoverIgnoringLinearLayout(Context context, AttributeSet attrs, int defStyle) {
-            super(context, attrs, defStyle);
-        }
-
-        @Override
-        public boolean onHoverEvent(MotionEvent event) {
-            return true;
-        }
-    }
-
     public interface OnDialpadQueryChangedListener {
         void onDialpadQueryChanged(String query);
     }
@@ -187,24 +166,18 @@
     /** Stream type used to play the DTMF tones off call, and mapped to the volume control keys */
     private static final int DIAL_TONE_STREAM_TYPE = AudioManager.STREAM_DTMF;
 
-    private ContactsPreferences mContactsPrefs;
-
     private OnDialpadQueryChangedListener mDialpadQueryListener;
 
-    /**
-     * View (usually FrameLayout) containing mDigits field. This can be null, in which mDigits
-     * isn't enclosed by the container.
-     */
-    private View mDigitsContainer;
+    private DialpadView mDialpadView;
     private EditText mDigits;
 
     /** Remembers if we need to clear digits field when the screen is completely gone. */
     private boolean mClearDigitsOnStop;
 
+    private View mOverflowMenuButton;
     private View mDelete;
     private ToneGenerator mToneGenerator;
     private final Object mToneGeneratorLock = new Object();
-    private View mDialpad;
     private View mSpacer;
 
     /**
@@ -212,8 +185,6 @@
      */
     private final HashSet<View> mPressedDialpadKeys = new HashSet<View>(12);
 
-    private View mDialButtonContainer;
-    private View mDialButton;
     private ListView mDialpadChooser;
     private DialpadChooserAdapter mDialpadChooserAdapter;
 
@@ -287,7 +258,7 @@
 
     private boolean mStartedFromNewIntent = false;
     private boolean mFirstLaunch = false;
-    private boolean mAdjustTranslationForAnimation = false;
+    private boolean mAnimate = false;
 
     private static final String PREF_DIGITS_FILLED_BY_INTENT = "pref_digits_filled_by_intent";
 
@@ -337,19 +308,22 @@
         if (isDigitsEmpty()) {
             mDigitsFilledByIntent = false;
             mDigits.setCursorVisible(false);
+            // Set to INVISIBLE instead of GONE so that text (eg. "Type number to add") is centered.
+            mOverflowMenuButton.setVisibility(View.INVISIBLE);
+        } else if (mDialpadView.canDigitsBeEdited()){
+            mOverflowMenuButton.setVisibility(View.VISIBLE);
         }
 
         if (mDialpadQueryListener != null) {
             mDialpadQueryListener.onDialpadQueryChanged(mDigits.getText().toString());
         }
-        updateDialAndDeleteButtonEnabledState();
+        updateDeleteButtonEnabledState();
     }
 
     @Override
     public void onCreate(Bundle state) {
         super.onCreate(state);
         mFirstLaunch = true;
-        mContactsPrefs = new ContactsPreferences(getActivity());
         mCurrentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
 
         try {
@@ -383,7 +357,7 @@
             public boolean onPreDraw() {
 
                 if (isHidden()) return true;
-                if (mAdjustTranslationForAnimation && fragmentView.getTranslationY() == 0) {
+                if (mAnimate && fragmentView.getTranslationY() == 0) {
                     ((DialpadSlidingLinearLayout) fragmentView).setYFraction(
                             DIALPAD_SLIDE_FRACTION);
                 }
@@ -396,34 +370,26 @@
 
         vto.addOnPreDrawListener(preDrawListener);
 
-        // Load up the resources for the text field.
         Resources r = getResources();
 
-        mDialButtonContainer = fragmentView.findViewById(R.id.dialButtonContainer);
-        mDigitsContainer = fragmentView.findViewById(R.id.digits_container);
-        mDigits = (EditText) fragmentView.findViewById(R.id.digits);
+        mDialpadView = (DialpadView) fragmentView.findViewById(R.id.dialpad_view);
+        mDialpadView.setCanDigitsBeEdited(true);
+        mDigits = mDialpadView.getDigits();
         mDigits.setKeyListener(UnicodeDialerKeyListener.INSTANCE);
         mDigits.setOnClickListener(this);
         mDigits.setOnKeyListener(this);
         mDigits.setOnLongClickListener(this);
         mDigits.addTextChangedListener(this);
+        mDigits.setElegantTextHeight(false);
         PhoneNumberFormatter.setPhoneNumberFormattingTextWatcher(getActivity(), mDigits);
         // Check for the presence of the keypad
         View oneButton = fragmentView.findViewById(R.id.one);
         if (oneButton != null) {
-            setupKeypad(fragmentView);
+            configureKeypadListeners(fragmentView);
         }
 
-        mDialButton = fragmentView.findViewById(R.id.dialButton);
-        if (r.getBoolean(R.bool.config_show_onscreen_dial_button)) {
-            mDialButton.setOnClickListener(this);
-            mDialButton.setOnLongClickListener(this);
-        } else {
-            mDialButton.setVisibility(View.GONE); // It's VISIBLE by default
-            mDialButton = null;
-        }
+        mDelete = mDialpadView.getDeleteButton();
 
-        mDelete = fragmentView.findViewById(R.id.deleteButton);
         if (mDelete != null) {
             mDelete.setOnClickListener(this);
             mDelete.setOnLongClickListener(this);
@@ -434,46 +400,27 @@
             @Override
             public boolean onTouch(View v, MotionEvent event) {
                 if (isDigitsEmpty()) {
-                    hideAndClearDialpad();
+                    hideAndClearDialpad(true);
                     return true;
                 }
                 return false;
             }
         });
 
-        mDialpad = fragmentView.findViewById(R.id.dialpad);  // This is null in landscape mode.
-
-        // In landscape we put the keyboard in phone mode.
-        if (null == mDialpad) {
-            mDigits.setInputType(android.text.InputType.TYPE_CLASS_PHONE);
-        } else {
-            mDigits.setCursorVisible(false);
-        }
+        mDigits.setCursorVisible(false);
 
         // Set up the "dialpad chooser" UI; see showDialpadChooser().
         mDialpadChooser = (ListView) fragmentView.findViewById(R.id.dialpadChooser);
         mDialpadChooser.setOnItemClickListener(this);
 
+        mOverflowMenuButton = mDialpadView.getOverflowMenuButton();
+        mOverflowMenuButton.setOnClickListener(this);
+        final PopupMenu overflowMenu = buildOptionsMenu(mOverflowMenuButton);
+        mOverflowMenuButton.setOnTouchListener(overflowMenu.getDragToOpenListener());
+
         return fragmentView;
     }
 
-    @Override
-    public void onStart() {
-        super.onStart();
-
-        final Activity activity = getActivity();
-
-        try {
-            ((OnDialpadFragmentStartedListener) activity).onDialpadFragmentStarted();
-        } catch (ClassCastException e) {
-            throw new ClassCastException(activity.toString()
-                    + " must implement OnDialpadFragmentStartedListener");
-        }
-
-        final View overflowButton = getView().findViewById(R.id.overflow_menu_on_dialpad);
-        overflowButton.setOnClickListener(this);
-    }
-
     private boolean isLayoutReady() {
         return mDigits != null;
     }
@@ -623,53 +570,24 @@
         }
     }
 
-    private void setupKeypad(View fragmentView) {
-        final int[] buttonIds = new int[] {R.id.zero, R.id.one, R.id.two, R.id.three, R.id.four,
-                R.id.five, R.id.six, R.id.seven, R.id.eight, R.id.nine, R.id.star, R.id.pound};
-
-        final int[] numberIds = new int[] {R.string.dialpad_0_number, R.string.dialpad_1_number,
-                R.string.dialpad_2_number, R.string.dialpad_3_number, R.string.dialpad_4_number,
-                R.string.dialpad_5_number, R.string.dialpad_6_number, R.string.dialpad_7_number,
-                R.string.dialpad_8_number, R.string.dialpad_9_number, R.string.dialpad_star_number,
-                R.string.dialpad_pound_number};
-
-        final int[] letterIds = new int[] {R.string.dialpad_0_letters, R.string.dialpad_1_letters,
-                R.string.dialpad_2_letters, R.string.dialpad_3_letters, R.string.dialpad_4_letters,
-                R.string.dialpad_5_letters, R.string.dialpad_6_letters, R.string.dialpad_7_letters,
-                R.string.dialpad_8_letters, R.string.dialpad_9_letters,
-                R.string.dialpad_star_letters, R.string.dialpad_pound_letters};
-
-        final Resources resources = getResources();
+    private void configureKeypadListeners(View fragmentView) {
+        final int[] buttonIds = new int[] {R.id.one, R.id.two, R.id.three, R.id.four, R.id.five,
+                R.id.six, R.id.seven, R.id.eight, R.id.nine, R.id.star, R.id.zero, R.id.pound};
 
         DialpadKeyButton dialpadKey;
-        TextView numberView;
-        TextView lettersView;
 
         for (int i = 0; i < buttonIds.length; i++) {
             dialpadKey = (DialpadKeyButton) fragmentView.findViewById(buttonIds[i]);
-            dialpadKey.setLayoutParams(new TableRow.LayoutParams(
-                    TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT));
             dialpadKey.setOnPressedListener(this);
-            numberView = (TextView) dialpadKey.findViewById(R.id.dialpad_key_number);
-            lettersView = (TextView) dialpadKey.findViewById(R.id.dialpad_key_letters);
-            final String numberString = resources.getString(numberIds[i]);
-            numberView.setText(numberString);
-            dialpadKey.setContentDescription(numberString);
-            if (lettersView != null) {
-                lettersView.setText(resources.getString(letterIds[i]));
-                if (buttonIds[i] == R.id.zero) {
-                    lettersView.setTextSize(TypedValue.COMPLEX_UNIT_PX, resources.getDimension(
-                            R.dimen.dialpad_key_plus_size));
-                }
-            }
         }
 
         // Long-pressing one button will initiate Voicemail.
-        fragmentView.findViewById(R.id.one).setOnLongClickListener(this);
+        final DialpadKeyButton one = (DialpadKeyButton) fragmentView.findViewById(R.id.one);
+        one.setOnLongClickListener(this);
 
         // Long-pressing zero button will enter '+' instead.
-        fragmentView.findViewById(R.id.zero).setOnLongClickListener(this);
-
+        final DialpadKeyButton zero = (DialpadKeyButton) fragmentView.findViewById(R.id.zero);
+        zero.setOnLongClickListener(this);
     }
 
     @Override
@@ -754,7 +672,7 @@
 
         stopWatch.lap("hnt");
 
-        updateDialAndDeleteButtonEnabledState();
+        updateDeleteButtonEnabledState();
 
         stopWatch.lap("bes");
 
@@ -801,22 +719,6 @@
         outState.putBoolean(PREF_DIGITS_FILLED_BY_INTENT, mDigitsFilledByIntent);
     }
 
-    private void setupMenuItems(Menu menu) {
-        final MenuItem addToContactMenuItem = menu.findItem(R.id.menu_add_contacts);
-
-        // We show "add to contacts" menu only when the user is
-        // seeing usual dialpad and has typed at least one digit.
-        // We never show a menu if the "choose dialpad" UI is up.
-        if (dialpadChooserVisible() || isDigitsEmpty()) {
-            addToContactMenuItem.setVisible(false);
-        } else {
-            final CharSequence digits = mDigits.getText();
-            // Put the current digits string into an intent
-            addToContactMenuItem.setIntent(DialtactsActivity.getAddNumberToContactIntent(digits));
-            addToContactMenuItem.setVisible(true);
-        }
-    }
-
     private void keyPressed(int keyCode) {
         if (getView().getTranslationY() != 0) {
             return;
@@ -878,7 +780,7 @@
         switch (view.getId()) {
             case R.id.digits:
                 if (keyCode == KeyEvent.KEYCODE_ENTER) {
-                    dialButtonPressed();
+                    handleDialButtonPressed();
                     return true;
                 }
                 break;
@@ -960,33 +862,45 @@
         }
     }
 
+    /**
+     * Called by the containing Activity to tell this Fragment to build an overflow options
+     * menu for display by the container when appropriate.
+     *
+     * @param invoker the View that invoked the options menu, to act as an anchor location.
+     */
+    public PopupMenu buildOptionsMenu(View invoker) {
+        final PopupMenu popupMenu = new PopupMenu(getActivity(), invoker);
+        popupMenu.inflate(R.menu.dialpad_options);
+        popupMenu.setOnMenuItemClickListener(this);
+        return popupMenu;
+    }
+
+    /**
+     * Called by the containing Activity to tell this Fragment that the dial button has been
+     * pressed.
+     */
+    public void dialButtonPressed() {
+        mHaptic.vibrate();
+        handleDialButtonPressed();
+    }
+
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
-            case R.id.overflow_menu_on_dialpad: {
-                final PopupMenu popupMenu = new PopupMenu(getActivity(), view);
-                final Menu menu = popupMenu.getMenu();
-                popupMenu.inflate(R.menu.dialpad_options);
-                popupMenu.setOnMenuItemClickListener(this);
-                setupMenuItems(menu);
-                popupMenu.show();
-                break;
-            }
             case R.id.deleteButton: {
                 keyPressed(KeyEvent.KEYCODE_DEL);
                 return;
             }
-            case R.id.dialButton: {
-                mHaptic.vibrate();  // Vibrate here too, just like we do for the regular keys
-                dialButtonPressed();
-                return;
-            }
             case R.id.digits: {
                 if (!isDigitsEmpty()) {
                     mDigits.setCursorVisible(true);
                 }
                 return;
             }
+            case R.id.dialpad_overflow: {
+                buildOptionsMenu(view).show();
+                break;
+            }
             default: {
                 Log.wtf(TAG, "Unexpected onClick() event from: " + view);
                 return;
@@ -1001,10 +915,6 @@
         switch (id) {
             case R.id.deleteButton: {
                 digits.clear();
-                // TODO: The framework forgets to clear the pressed
-                // status of disabled button. Until this is fixed,
-                // clear manually the pressed status. b/2133127
-                mDelete.setPressed(false);
                 return true;
             }
             case R.id.one: {
@@ -1055,16 +965,6 @@
                 mDigits.setCursorVisible(true);
                 return false;
             }
-            case R.id.dialButton: {
-                if (isDigitsEmpty()) {
-                    handleDialButtonClickWithEmptyDigits();
-                    // This event should be consumed so that onClick() won't do the exactly same
-                    // thing.
-                    return true;
-                } else {
-                    return false;
-                }
-            }
         }
         return false;
     }
@@ -1074,7 +974,6 @@
      * the previous digit or cancel previously entered character.
      */
     private void removePreviousDigitIfPossible() {
-        final Editable editable = mDigits.getText();
         final int currentPosition = mDigits.getSelectionStart();
         if (currentPosition > 0) {
             mDigits.setSelection(currentPosition);
@@ -1084,11 +983,11 @@
 
     public void callVoicemail() {
         startActivity(getVoicemailIntent());
-        hideAndClearDialpad();
+        hideAndClearDialpad(false);
     }
 
-    private void hideAndClearDialpad() {
-        ((DialtactsActivity) getActivity()).hideDialpadFragment(false, true);
+    private void hideAndClearDialpad(boolean animate) {
+        ((DialtactsActivity) getActivity()).hideDialpadFragment(animate, true);
     }
 
     public static class ErrorDialogFragment extends DialogFragment {
@@ -1157,7 +1056,7 @@
      * user needs to press the dial button again, to dial it (general
      * case described above).
      */
-    public void dialButtonPressed() {
+    private void handleDialButtonPressed() {
         if (isDigitsEmpty()) { // No number entered.
             handleDialButtonClickWithEmptyDigits();
         } else {
@@ -1177,13 +1076,13 @@
                 }
 
                 // Clear the digits just in case.
-                mDigits.getText().clear();
+                clearDialpad();
             } else {
                 final Intent intent = CallUtil.getCallIntent(number,
                         (getActivity() instanceof DialtactsActivity ?
                                 ((DialtactsActivity) getActivity()).getCallOrigin() : null));
                 startActivity(intent);
-                hideAndClearDialpad();
+                hideAndClearDialpad(false);
             }
         }
     }
@@ -1192,11 +1091,6 @@
         mDigits.getText().clear();
     }
 
-    private String getCallOrigin() {
-        return (getActivity() instanceof DialtactsActivity) ?
-                ((DialtactsActivity) getActivity()).getCallOrigin() : null;
-    }
-
     private void handleDialButtonClickWithEmptyDigits() {
         if (phoneIsCdma() && phoneIsOffhook()) {
             // This is really CDMA specific. On GSM is it possible
@@ -1320,14 +1214,10 @@
 
         if (enabled) {
             // Log.i(TAG, "Showing dialpad chooser!");
-            if (mDigitsContainer != null) {
-                mDigitsContainer.setVisibility(View.GONE);
-            } else {
-                // mDigits is not enclosed by the container. Make the digits field itself gone.
-                mDigits.setVisibility(View.GONE);
+            if (mDialpadView != null) {
+                mDialpadView.setVisibility(View.GONE);
             }
-            if (mDialpad != null) mDialpad.setVisibility(View.GONE);
-            if (mDialButtonContainer != null) mDialButtonContainer.setVisibility(View.GONE);
+            ((HostInterface) getActivity()).setFloatingActionButtonVisible(false);
 
             mDialpadChooser.setVisibility(View.VISIBLE);
 
@@ -1339,13 +1229,12 @@
             mDialpadChooser.setAdapter(mDialpadChooserAdapter);
         } else {
             // Log.i(TAG, "Displaying normal Dialer UI.");
-            if (mDigitsContainer != null) {
-                mDigitsContainer.setVisibility(View.VISIBLE);
+            if (mDialpadView != null) {
+                mDialpadView.setVisibility(View.VISIBLE);
             } else {
                 mDigits.setVisibility(View.VISIBLE);
             }
-            if (mDialpad != null) mDialpad.setVisibility(View.VISIBLE);
-            if (mDialButtonContainer != null) mDialButtonContainer.setVisibility(View.VISIBLE);
+            ((HostInterface) getActivity()).setFloatingActionButtonVisible(true);
             mDialpadChooser.setVisibility(View.GONE);
         }
     }
@@ -1540,8 +1429,12 @@
 
     @Override
     public boolean onMenuItemClick(MenuItem item) {
-        // R.id.menu_add_contacts already has an add to contact intent populated by setupMenuItems
         switch (item.getItemId()) {
+            case R.id.menu_add_contact:
+                final CharSequence digits = mDigits.getText();
+                DialerUtils.startActivityWithErrorToast(getActivity(),
+                        DialtactsActivity.getAddNumberToContactIntent(digits));
+                return true;
             case R.id.menu_2s_pause:
                 updateDialString(PAUSE);
                 return true;
@@ -1592,24 +1485,11 @@
     /**
      * Update the enabledness of the "Dial" and "Backspace" buttons if applicable.
      */
-    private void updateDialAndDeleteButtonEnabledState() {
-        final boolean digitsNotEmpty = !isDigitsEmpty();
-
-        if (mDialButton != null) {
-            // On CDMA phones, if we're already on a call, we *always*
-            // enable the Dial button (since you can press it without
-            // entering any digits to send an empty flash.)
-            if (phoneIsCdma() && phoneIsOffhook()) {
-                mDialButton.setEnabled(true);
-            } else {
-                // Common case: GSM, or CDMA but not on a call.
-                // Enable the Dial button if some digits have
-                // been entered, or if there is a last dialed number
-                // that could be redialed.
-                mDialButton.setEnabled(digitsNotEmpty ||
-                        !TextUtils.isEmpty(mLastNumberDialed));
-            }
+    private void updateDeleteButtonEnabledState() {
+        if (getActivity() == null) {
+            return;
         }
+        final boolean digitsNotEmpty = !isDigitsEmpty();
         mDelete.setEnabled(digitsNotEmpty);
     }
 
@@ -1695,7 +1575,7 @@
                             // doing anything here.
                             if (getActivity() == null) return;
                             mLastNumberDialed = number;
-                            updateDialAndDeleteButtonEnabledState();
+                            updateDeleteButtonEnabledState();
                         }
                     });
         mCallLog.getLastOutgoingCall(lastCallArgs);
@@ -1711,17 +1591,21 @@
     public void onHiddenChanged(boolean hidden) {
         super.onHiddenChanged(hidden);
         final DialtactsActivity activity = (DialtactsActivity) getActivity();
+        final DialpadView dialpadView = (DialpadView) getView().findViewById(R.id.dialpad_view);
         if (activity == null) return;
         if (hidden) {
-            activity.showSearchBar();
+            activity.onDialpadHidden();
         } else {
-            activity.hideSearchBar();
+            if (mAnimate) {
+                dialpadView.animateShow();
+            }
+            activity.onDialpadShown();
             mDigits.requestFocus();
         }
     }
 
-    public void setAdjustTranslationForAnimation(boolean value) {
-        mAdjustTranslationForAnimation = value;
+    public void setAnimate(boolean value) {
+        mAnimate = value;
     }
 
     public void setYFraction(float yFraction) {
diff --git a/src/com/android/dialer/dialpad/DialpadKeyButton.java b/src/com/android/dialer/dialpad/DialpadKeyButton.java
deleted file mode 100644
index 9a20993..0000000
--- a/src/com/android/dialer/dialpad/DialpadKeyButton.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-package com.android.dialer.dialpad;
-
-import android.content.Context;
-import android.graphics.Rect;
-import android.os.Bundle;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityManager;
-import android.view.accessibility.AccessibilityNodeInfo;
-import android.widget.FrameLayout;
-
-/**
- * Custom class for dialpad buttons.
- * <p>
- * This class implements lift-to-type interaction when touch exploration is
- * enabled.
- */
-public class DialpadKeyButton extends FrameLayout {
-    /** Accessibility manager instance used to check touch exploration state. */
-    private AccessibilityManager mAccessibilityManager;
-
-    /** Bounds used to filter HOVER_EXIT events. */
-    private Rect mHoverBounds = new Rect();
-
-    public interface OnPressedListener {
-        public void onPressed(View view, boolean pressed);
-    }
-
-    private OnPressedListener mOnPressedListener;
-
-    public void setOnPressedListener(OnPressedListener onPressedListener) {
-        mOnPressedListener = onPressedListener;
-    }
-
-    public DialpadKeyButton(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        initForAccessibility(context);
-    }
-
-    public DialpadKeyButton(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-        initForAccessibility(context);
-    }
-
-    private void initForAccessibility(Context context) {
-        mAccessibilityManager = (AccessibilityManager) context.getSystemService(
-                Context.ACCESSIBILITY_SERVICE);
-    }
-
-    @Override
-    public void setPressed(boolean pressed) {
-        super.setPressed(pressed);
-        if (mOnPressedListener != null) {
-            mOnPressedListener.onPressed(this, pressed);
-        }
-    }
-
-    @Override
-    public void onSizeChanged(int w, int h, int oldw, int oldh) {
-        super.onSizeChanged(w, h, oldw, oldh);
-
-        mHoverBounds.left = getPaddingLeft();
-        mHoverBounds.right = w - getPaddingRight();
-        mHoverBounds.top = getPaddingTop();
-        mHoverBounds.bottom = h - getPaddingBottom();
-    }
-
-    @Override
-    public boolean performAccessibilityAction(int action, Bundle arguments) {
-        if (action == AccessibilityNodeInfo.ACTION_CLICK) {
-            simulateClickForAccessibility();
-            return true;
-        }
-
-        return super.performAccessibilityAction(action, arguments);
-    }
-
-    @Override
-    public boolean onHoverEvent(MotionEvent event) {
-        // When touch exploration is turned on, lifting a finger while inside
-        // the button's hover target bounds should perform a click action.
-        if (mAccessibilityManager.isEnabled()
-                && mAccessibilityManager.isTouchExplorationEnabled()) {
-            switch (event.getActionMasked()) {
-                case MotionEvent.ACTION_HOVER_ENTER:
-                    // Lift-to-type temporarily disables double-tap activation.
-                    setClickable(false);
-                    break;
-                case MotionEvent.ACTION_HOVER_EXIT:
-                    if (mHoverBounds.contains((int) event.getX(), (int) event.getY())) {
-                        simulateClickForAccessibility();
-                    }
-                    setClickable(true);
-                    break;
-            }
-        }
-
-        return super.onHoverEvent(event);
-    }
-
-    /**
-     * When accessibility is on, simulate press and release to preserve the
-     * semantic meaning of performClick(). Required for Braille support.
-     */
-    private void simulateClickForAccessibility() {
-        // Checking the press state prevents double activation.
-        if (isPressed()) {
-            return;
-        }
-
-        setPressed(true);
-
-        // Stay consistent with performClick() by sending the event after
-        // setting the pressed state but before performing the action.
-        sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
-
-        setPressed(false);
-    }
-}
diff --git a/src/com/android/dialer/dialpad/DigitsEditText.java b/src/com/android/dialer/dialpad/DigitsEditText.java
deleted file mode 100644
index 1a092be..0000000
--- a/src/com/android/dialer/dialpad/DigitsEditText.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-
-package com.android.dialer.dialpad;
-
-import android.content.Context;
-import android.graphics.Rect;
-import android.text.InputType;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
-
-/**
- * EditText which suppresses IME show up.
- */
-public class DigitsEditText extends EditText {
-    public DigitsEditText(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        setInputType(getInputType() | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
-        setShowSoftInputOnFocus(false);
-    }
-
-    @Override
-    protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
-        super.onFocusChanged(focused, direction, previouslyFocusedRect);
-        final InputMethodManager imm = ((InputMethodManager) getContext()
-                .getSystemService(Context.INPUT_METHOD_SERVICE));
-        if (imm != null && imm.isActive(this)) {
-            imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);
-        }
-    }
-
-    @Override
-    public boolean onTouchEvent(MotionEvent event) {
-        final boolean ret = super.onTouchEvent(event);
-        // Must be done after super.onTouchEvent()
-        final InputMethodManager imm = ((InputMethodManager) getContext()
-                .getSystemService(Context.INPUT_METHOD_SERVICE));
-        if (imm != null && imm.isActive(this)) {
-            imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);
-        }
-        return ret;
-    }
-}
diff --git a/src/com/android/dialer/dialpad/SmartDialNameMatcher.java b/src/com/android/dialer/dialpad/SmartDialNameMatcher.java
index 43aeb26..0126864 100644
--- a/src/com/android/dialer/dialpad/SmartDialNameMatcher.java
+++ b/src/com/android/dialer/dialpad/SmartDialNameMatcher.java
@@ -34,7 +34,7 @@
  */
 public class SmartDialNameMatcher {
 
-    private final String mQuery;
+    private String mQuery;
 
     // Whether or not we allow matches like 57 - (J)ohn (S)mith
     private static final boolean ALLOW_INITIAL_MATCH = true;
@@ -416,6 +416,10 @@
         return new ArrayList<SmartDialMatchPosition>(mMatchPositions);
     }
 
+    public void setQuery(String query) {
+        mQuery = query;
+    }
+
     public String getNameMatchPositionsInString() {
         return mNameMatchMask;
     }
diff --git a/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java b/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
index fb9b1d1..c7e4c5f 100644
--- a/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
+++ b/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
@@ -68,6 +68,9 @@
                 Uri.encode(number));
         final Cursor cursor = context.getContentResolver().query(contactUri, new String[] {
                 PhoneLookup._ID}, null, null, null);
+        if (cursor == null) {
+            return NO_CONTACT_FOUND;
+        }
         try {
             if (cursor.moveToFirst()) {
                 final long id = cursor.getLong(0);
diff --git a/src/com/android/dialer/list/AllContactsActivity.java b/src/com/android/dialer/list/AllContactsActivity.java
deleted file mode 100644
index f5d739d..0000000
--- a/src/com/android/dialer/list/AllContactsActivity.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.
- */
-package com.android.dialer.list;
-
-import android.app.ActionBar;
-import android.app.Fragment;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import android.text.Spannable;
-import android.text.SpannableString;
-import android.text.style.TypefaceSpan;
-import android.util.Log;
-
-import com.android.contacts.common.CallUtil;
-import com.android.contacts.common.activity.TransactionSafeActivity;
-import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
-import com.android.dialer.DialtactsActivity;
-import com.android.dialer.R;
-import com.android.dialer.interactions.PhoneNumberInteraction;
-
-public class AllContactsActivity extends TransactionSafeActivity {
-    private static final String TAG = AllContactsActivity.class.getSimpleName();
-
-    private AllContactsFragment mAllContactsFragment;
-
-    // Same behavior as {@link DialtactsActivity}
-    private final OnPhoneNumberPickerActionListener mPhoneNumberPickerActionListener =
-            new OnPhoneNumberPickerActionListener() {
-                @Override
-                public void onPickPhoneNumberAction(Uri dataUri) {
-                    // Specify call-origin so that users will see the previous tab instead of
-                    // CallLog screen (search UI will be automatically exited).
-                    PhoneNumberInteraction.startInteractionForPhoneCall(
-                        AllContactsActivity.this, dataUri, null);
-                }
-
-                @Override
-                public void onCallNumberDirectly(String phoneNumber) {
-                final Intent intent = CallUtil.getCallIntent(phoneNumber, null);
-                    startActivity(intent);
-                }
-
-                @Override
-                public void onShortcutIntentCreated(Intent intent) {
-                    Log.w(TAG, "Unsupported intent has come (" + intent + "). Ignoring.");
-                }
-
-                @Override
-                public void onHomeInActionBarSelected() {
-                    // {@link PhoneNumberPickerFragment handles onClick on the home button
-                    // and performs the callback here. This means we don't have to handle it
-                    // ourself in the activity.
-                    final Intent intent = new Intent(AllContactsActivity.this,
-                            DialtactsActivity.class);
-                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-                    startActivity(intent);
-                }
-    };
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        final ActionBar actionBar = getActionBar();
-        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
-        actionBar.setDisplayShowHomeEnabled(true);
-        actionBar.setDisplayHomeAsUpEnabled(true);
-        actionBar.setDisplayShowTitleEnabled(true);
-
-        setContentView(R.layout.all_contacts_activity);
-    }
-
-    @Override
-    public void onAttachFragment(Fragment fragment) {
-        if (fragment instanceof AllContactsFragment) {
-            mAllContactsFragment = (AllContactsFragment) fragment;
-            mAllContactsFragment.setOnPhoneNumberPickerActionListener(
-                    mPhoneNumberPickerActionListener);
-        }
-    }
-}
diff --git a/src/com/android/dialer/list/AllContactsFragment.java b/src/com/android/dialer/list/AllContactsFragment.java
index 40d5c14..d05f66d 100644
--- a/src/com/android/dialer/list/AllContactsFragment.java
+++ b/src/com/android/dialer/list/AllContactsFragment.java
@@ -1,5 +1,4 @@
 /*
-
  * Copyright (C) 2013 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,39 +16,66 @@
 
 package com.android.dialer.list;
 
-import android.app.Activity;
-import android.os.Bundle;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract.QuickContact;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.QuickContactBadge;
 
+import com.android.contacts.common.list.ContactEntryListAdapter;
+import com.android.contacts.common.list.ContactEntryListFragment;
+import com.android.contacts.common.list.ContactListFilter;
 import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.list.PhoneNumberPickerFragment;
+import com.android.contacts.common.list.DefaultContactListAdapter;
 import com.android.dialer.R;
 
 /**
  * Fragments to show all contacts with phone numbers.
  */
-public class AllContactsFragment extends PhoneNumberPickerFragment{
+public class AllContactsFragment extends ContactEntryListFragment<ContactEntryListAdapter> {
 
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
+    public AllContactsFragment() {
+        setQuickContactEnabled(false);
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(true);
+        setDarkTheme(false);
+        setVisibleScrollbarEnabled(true);
     }
 
     @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-
-        // Customizes the listview according to the dialer specifics.
-        setQuickContactEnabled(true);
-        setDarkTheme(false);
-        setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(true /* opposite */));
-        setUseCallableUri(true);
+    protected ContactEntryListAdapter createListAdapter() {
+        final DefaultContactListAdapter adapter = new DefaultContactListAdapter(getActivity()) {
+            @Override
+            protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+                super.bindView(itemView, partition, cursor, position);
+                itemView.setTag(this.getContactUri(partition, cursor));
+            }
+        };
+        adapter.setDisplayPhotos(true);
+        adapter.setFilter(ContactListFilter.createFilterWithType(
+                ContactListFilter.FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY));
+        adapter.setSectionHeaderDisplayEnabled(isSectionHeaderDisplayEnabled());
+        return adapter;
     }
 
     @Override
     protected View inflateView(LayoutInflater inflater, ViewGroup container) {
         return inflater.inflate(R.layout.show_all_contacts_fragment, null);
     }
+
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        final Uri uri = (Uri) view.getTag();
+        if (uri != null) {
+            QuickContact.showQuickContact(getActivity(), view, uri, QuickContact.MODE_LARGE, null);
+        }
+    }
+
+    @Override
+    protected void onItemClick(int position, long id) {
+        // Do nothing. Implemented to satisfy ContactEntryListFragment.
+    }
 }
diff --git a/src/com/android/dialer/list/DragDropController.java b/src/com/android/dialer/list/DragDropController.java
new file mode 100644
index 0000000..8cd1046
--- /dev/null
+++ b/src/com/android/dialer/list/DragDropController.java
@@ -0,0 +1,83 @@
+package com.android.dialer.list;
+
+import android.util.Log;
+import android.view.View;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Class that handles and combines drag events generated from multiple views, and then fires
+ * off events to any OnDragDropListeners that have registered for callbacks.
+ */
+public class DragDropController {
+
+    private final List<OnDragDropListener> mOnDragDropListeners =
+            new ArrayList<OnDragDropListener>();
+    private final DragItemContainer mDragItemContainer;
+    private final int[] mLocationOnScreen = new int[2];
+
+    /**
+     * Callback interface used to retrieve views based on the current touch coordinates of the
+     * drag event. The {@link DragItemContainer} houses the draggable views that this
+     * {@link DragDropController} controls.
+     */
+    public interface DragItemContainer {
+        public PhoneFavoriteSquareTileView getViewForLocation(int x, int y);
+    }
+
+    public DragDropController(DragItemContainer dragItemContainer) {
+        mDragItemContainer = dragItemContainer;
+    }
+
+    /**
+     * @return True if the drag is started, false if the drag is cancelled for some reason.
+     */
+    boolean handleDragStarted(int x, int y) {
+        final PhoneFavoriteSquareTileView tileView = mDragItemContainer.getViewForLocation(x, y);
+        if (tileView == null) {
+            return false;
+        }
+        for (int i = 0; i < mOnDragDropListeners.size(); i++) {
+            mOnDragDropListeners.get(i).onDragStarted(x, y, tileView);
+        }
+
+        return true;
+    }
+
+    public void handleDragHovered(View v, int x, int y) {
+        v.getLocationOnScreen(mLocationOnScreen);
+        final int screenX = x + mLocationOnScreen[0];
+        final int screenY = y + mLocationOnScreen[1];
+        final PhoneFavoriteSquareTileView view = mDragItemContainer.getViewForLocation(
+                screenX, screenY);
+        for (int i = 0; i < mOnDragDropListeners.size(); i++) {
+            mOnDragDropListeners.get(i).onDragHovered(screenX, screenY, view);
+        }
+    }
+
+    public void handleDragFinished(int x, int y, boolean isRemoveView) {
+        if (isRemoveView) {
+            for (int i = 0; i < mOnDragDropListeners.size(); i++) {
+                mOnDragDropListeners.get(i).onDroppedOnRemove();
+            }
+        }
+
+        for (int i = 0; i < mOnDragDropListeners.size(); i++) {
+            mOnDragDropListeners.get(i).onDragFinished(x, y);
+        }
+    }
+
+    public void addOnDragDropListener(OnDragDropListener listener) {
+        if (!mOnDragDropListeners.contains(listener)) {
+            mOnDragDropListeners.add(listener);
+        }
+    }
+
+    public void removeOnDragDropListener(OnDragDropListener listener) {
+        if (mOnDragDropListeners.contains(listener)) {
+            mOnDragDropListeners.remove(listener);
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java
new file mode 100644
index 0000000..18fa531
--- /dev/null
+++ b/src/com/android/dialer/list/ListsFragment.java
@@ -0,0 +1,350 @@
+package com.android.dialer.list;
+
+import android.animation.LayoutTransition;
+import android.app.ActionBar;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.app.LoaderManager;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.Loader;
+import android.content.SharedPreferences;
+import android.database.Cursor;
+import android.graphics.Rect;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.CallLog;
+import android.support.v13.app.FragmentPagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.support.v4.view.ViewPager.OnPageChangeListener;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ListView;
+
+import com.android.contacts.common.GeoUtil;
+import com.android.dialer.DialtactsActivity;
+
+import android.view.View.OnClickListener;
+
+import com.android.dialer.R;
+import com.android.dialer.calllog.CallLogAdapter;
+import com.android.dialer.calllog.CallLogFragment;
+import com.android.dialer.calllog.CallLogQuery;
+import com.android.dialer.calllog.CallLogQueryHandler;
+import com.android.dialer.calllog.ContactInfoHelper;
+import com.android.dialer.list.ShortcutCardsAdapter.SwipeableShortcutCard;
+import com.android.dialer.widget.OverlappingPaneLayout;
+import com.android.dialer.widget.OverlappingPaneLayout.PanelSlideListener;
+import com.android.dialerbind.ObjectFactory;
+
+import java.util.ArrayList;
+
+/**
+ * Fragment that is used as the main screen of the Dialer.
+ *
+ * Contains a ViewPager that contains various contact lists like the Speed Dial list and the
+ * All Contacts list. This will also eventually contain the logic that allows sliding the
+ * ViewPager containing the lists up above the shortcut cards and pin it against the top of the
+ * screen.
+ */
+public class ListsFragment extends Fragment implements CallLogQueryHandler.Listener,
+        CallLogAdapter.CallFetcher, ViewPager.OnPageChangeListener {
+
+    public static final int TAB_INDEX_SPEED_DIAL = 0;
+    public static final int TAB_INDEX_RECENTS = 1;
+    public static final int TAB_INDEX_ALL_CONTACTS = 2;
+
+    private static final int TAB_INDEX_COUNT = 3;
+
+    private static final int MAX_RECENTS_ENTRIES = 20;
+    // Oldest recents entry to display is 2 weeks old.
+    private static final long OLDEST_RECENTS_DATE = 1000L * 60 * 60 * 24 * 14;
+
+    private static final String KEY_LAST_DISMISSED_CALL_SHORTCUT_DATE =
+            "key_last_dismissed_call_shortcut_date";
+
+    // Used with LoaderManager
+    private static int MISSED_CALL_LOADER = 1;
+
+    public interface HostInterface {
+        public void showCallHistory();
+    }
+
+    private ActionBar mActionBar;
+    private ViewPager mViewPager;
+    private ViewPagerTabs mViewPagerTabs;
+    private ViewPagerAdapter mViewPagerAdapter;
+    private ListView mShortcutCardsListView;
+    private SpeedDialFragment mSpeedDialFragment;
+    private CallLogFragment mRecentsFragment;
+    private AllContactsFragment mAllContactsFragment;
+    private ArrayList<OnPageChangeListener> mOnPageChangeListeners =
+            new ArrayList<OnPageChangeListener>();
+
+    private String[] mTabTitles;
+
+    private ShortcutCardsAdapter mMergedAdapter;
+    private CallLogAdapter mCallLogAdapter;
+    private CallLogQueryHandler mCallLogQueryHandler;
+
+    /**
+     * Call shortcuts older than this date (persisted in shared preferences) will not show up in
+     * at the top of the screen
+     */
+    private long mLastCallShortcutDate = 0;
+
+    /**
+     * The date of the current call shortcut that is showing on screen.
+     */
+    private long mCurrentCallShortcutDate = 0;
+
+    private class MissedCallLogLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
+
+        @Override
+        public Loader<Cursor> onCreateLoader(int id, Bundle args) {
+            final Uri uri = CallLog.Calls.CONTENT_URI;
+            final String[] projection = new String[] {CallLog.Calls.TYPE};
+            final String selection = CallLog.Calls.TYPE + " = " + CallLog.Calls.MISSED_TYPE +
+                    " AND " + CallLog.Calls.IS_READ + " = 0";
+            return new CursorLoader(getActivity(), uri, projection, selection, null, null);
+        }
+
+        @Override
+        public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor data) {
+            mCallLogAdapter.setMissedCalls(data);
+        }
+
+        @Override
+        public void onLoaderReset(Loader<Cursor> cursorLoader) {
+        }
+    }
+
+    private PanelSlideListener mPanelSlideListener = new PanelSlideListener() {
+        @Override
+        public void onPanelSlide(View panel, float slideOffset) {
+            // For every 2 percent that the panel is slid upwards, clip 3 percent from each edge
+            // of the shortcut card, to achieve the animated effect of the shortcut card
+            // rapidly shrinking and disappearing from view when the panel is slid upwards.
+            // slideOffset is 1 when the shortcut card is fully exposed, and 0 when completely
+            // hidden.
+            float ratioCardHidden = (1 - slideOffset) * 1.5f;
+            if (mShortcutCardsListView.getCount() > 0) {
+                SwipeableShortcutCard v =
+                        (SwipeableShortcutCard) mShortcutCardsListView.getChildAt(0);
+                v.clipCard(ratioCardHidden);
+            }
+
+            if (mActionBar != null) {
+                // Amount of available space that is not being hidden by the bottom pane
+                final int topPaneHeight = (int) (slideOffset * mShortcutCardsListView.getHeight());
+
+                final int availableActionBarHeight =
+                        Math.min(mActionBar.getHeight(), topPaneHeight);
+                mActionBar.setHideOffset(mActionBar.getHeight() - availableActionBarHeight);
+            }
+        }
+
+        @Override
+        public void onPanelOpened(View panel) {
+        }
+
+        @Override
+        public void onPanelClosed(View panel) {
+        }
+    };
+
+    public class ViewPagerAdapter extends FragmentPagerAdapter {
+        public ViewPagerAdapter(FragmentManager fm) {
+            super(fm);
+        }
+
+        @Override
+        public Fragment getItem(int position) {
+            switch (position) {
+                case TAB_INDEX_SPEED_DIAL:
+                    mSpeedDialFragment = new SpeedDialFragment();
+                    return mSpeedDialFragment;
+                case TAB_INDEX_RECENTS:
+                    mRecentsFragment = new CallLogFragment(CallLogQueryHandler.CALL_TYPE_ALL,
+                            MAX_RECENTS_ENTRIES, System.currentTimeMillis() - OLDEST_RECENTS_DATE);
+
+                    /*
+                     * Provide mViewPager as a parent viewgroup for the inflation of the footer,
+                     * to ensure that the footer view is inflated with the correct LayoutParams.
+                     * If root is null in
+                     * inflate(XmlPullParser parser, ViewGroup root, boolean attachToRoot),
+                     * the layout parameters specified in R.layout.recents_list_footer are not
+                     * correctly applied. The footer view is ultimately not attached to mViewPager.
+                     */
+                    final View viewFullHistoryFooter = getActivity().getLayoutInflater().inflate(
+                            R.layout.recents_list_footer, mViewPager, false);
+                    viewFullHistoryFooter.setOnClickListener(new OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            ((HostInterface) getActivity()).showCallHistory();
+                        }
+                    });
+                    mRecentsFragment.setFooterView(viewFullHistoryFooter);
+                    return mRecentsFragment;
+                case TAB_INDEX_ALL_CONTACTS:
+                    mAllContactsFragment = new AllContactsFragment();
+                    return mAllContactsFragment;
+            }
+            throw new IllegalStateException("No fragment at position " + position);
+        }
+
+        @Override
+        public int getCount() {
+            return TAB_INDEX_COUNT;
+        }
+
+        @Override
+        public CharSequence getPageTitle(int position) {
+            return mTabTitles[position];
+        }
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mCallLogQueryHandler = new CallLogQueryHandler(getActivity().getContentResolver(),
+                this, 1);
+        final String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
+        mCallLogAdapter = ObjectFactory.newCallLogAdapter(getActivity(), this,
+                new ContactInfoHelper(getActivity(), currentCountryIso), null, false);
+
+        mMergedAdapter = new ShortcutCardsAdapter(getActivity(), this, mCallLogAdapter);
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        getLoaderManager().initLoader(MISSED_CALL_LOADER, null, new MissedCallLogLoaderListener());
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        final SharedPreferences prefs = getActivity().getSharedPreferences(
+                DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
+        mLastCallShortcutDate = prefs.getLong(KEY_LAST_DISMISSED_CALL_SHORTCUT_DATE, 0);
+        mActionBar = getActivity().getActionBar();
+        fetchCalls();
+        mCallLogAdapter.setLoading(true);
+    }
+
+    @Override
+    public void onPause() {
+        // Wipe the cache to refresh the call shortcut item. This is not that expensive because
+        // it only contains one item.
+        mCallLogAdapter.invalidateCache();
+        mActionBar = null;
+        super.onPause();
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final View parentView = inflater.inflate(R.layout.lists_fragment, container, false);
+        mViewPager = (ViewPager) parentView.findViewById(R.id.lists_pager);
+        mViewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager());
+        mViewPager.setAdapter(mViewPagerAdapter);
+        mViewPager.setOffscreenPageLimit(2);
+        mViewPager.setOnPageChangeListener(this);
+
+        mTabTitles = new String[TAB_INDEX_COUNT];
+        mTabTitles[TAB_INDEX_SPEED_DIAL] = getResources().getString(R.string.tab_speed_dial);
+        mTabTitles[TAB_INDEX_RECENTS] = getResources().getString(R.string.tab_recents);
+        mTabTitles[TAB_INDEX_ALL_CONTACTS] = getResources().getString(R.string.tab_all_contacts);
+
+        mViewPagerTabs = (ViewPagerTabs) parentView.findViewById(R.id.lists_pager_header);
+        mViewPagerTabs.setViewPager(mViewPager);
+        addOnPageChangeListener(mViewPagerTabs);
+
+        mShortcutCardsListView = (ListView) parentView.findViewById(R.id.shortcut_card_list);
+        mShortcutCardsListView.setAdapter(mMergedAdapter);
+
+        setupPaneLayout((OverlappingPaneLayout) parentView);
+
+        return parentView;
+    }
+
+    @Override
+    public void onVoicemailStatusFetched(Cursor statusCursor) {
+        // no-op
+    }
+
+    @Override
+    public void onCallsFetched(Cursor cursor) {
+        mCallLogAdapter.setLoading(false);
+
+        // Save the date of the most recent call log item
+        if (cursor != null && cursor.moveToFirst()) {
+            mCurrentCallShortcutDate = cursor.getLong(CallLogQuery.DATE);
+        }
+
+        mCallLogAdapter.changeCursor(cursor);
+        mMergedAdapter.notifyDataSetChanged();
+    }
+
+    @Override
+    public void fetchCalls() {
+        mCallLogQueryHandler.fetchCalls(CallLogQueryHandler.CALL_TYPE_ALL, mLastCallShortcutDate);
+    }
+
+    public void dismissShortcut(View view) {
+        mLastCallShortcutDate = mCurrentCallShortcutDate;
+        final SharedPreferences prefs = view.getContext().getSharedPreferences(
+                DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
+        prefs.edit().putLong(KEY_LAST_DISMISSED_CALL_SHORTCUT_DATE, mLastCallShortcutDate)
+                .apply();
+        fetchCalls();
+    }
+
+    public void addOnPageChangeListener(OnPageChangeListener onPageChangeListener) {
+        if (!mOnPageChangeListeners.contains(onPageChangeListener)) {
+            mOnPageChangeListeners.add(onPageChangeListener);
+        }
+    }
+
+    @Override
+    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+        final int count = mOnPageChangeListeners.size();
+        for (int i = 0; i < count; i++) {
+            mOnPageChangeListeners.get(i).onPageScrolled(position, positionOffset,
+                    positionOffsetPixels);
+        }
+    }
+
+    @Override
+    public void onPageSelected(int position) {
+        final int count = mOnPageChangeListeners.size();
+        for (int i = 0; i < count; i++) {
+            mOnPageChangeListeners.get(i).onPageSelected(position);
+        }
+    }
+
+    @Override
+    public void onPageScrollStateChanged(int state) {
+        final int count = mOnPageChangeListeners.size();
+        for (int i = 0; i < count; i++) {
+            mOnPageChangeListeners.get(i).onPageScrollStateChanged(state);
+        }
+    }
+
+    private void setupPaneLayout(OverlappingPaneLayout paneLayout) {
+        // TODO: Remove the notion of a capturable view. The entire view be slideable, once
+        // the framework better supports nested scrolling.
+        paneLayout.setCapturableView(mViewPagerTabs);
+        paneLayout.openPane();
+        paneLayout.setPanelSlideListener(mPanelSlideListener);
+
+        LayoutTransition transition = paneLayout.getLayoutTransition();
+        // Turns on animations for all types of layout changes so that they occur for
+        // height changes.
+        transition.enableTransitionType(LayoutTransition.CHANGING);
+    }
+}
diff --git a/src/com/android/dialer/list/OnDragDropListener.java b/src/com/android/dialer/list/OnDragDropListener.java
new file mode 100644
index 0000000..c9ef50b
--- /dev/null
+++ b/src/com/android/dialer/list/OnDragDropListener.java
@@ -0,0 +1,41 @@
+package com.android.dialer.list;
+
+
+/**
+ * Classes that want to receive callbacks in response to drag events should implement this
+ * interface.
+ */
+public interface OnDragDropListener {
+    /**
+     * Called when a drag is started.
+     * @param x X-coordinate of the drag event
+     * @param y Y-coordinate of the drag event
+     * @param view The contact tile which the drag was started on
+     */
+    public void onDragStarted(int x, int y, PhoneFavoriteSquareTileView view);
+
+    /**
+     * Called when a drag is in progress and the user moves the dragged contact to a
+     * location.
+     *
+     * @param x X-coordinate of the drag event
+     * @param y Y-coordinate of the drag event
+     * @param view Contact tile in the ListView which is currently being displaced
+     * by the dragged contact
+     */
+    public void onDragHovered(int x, int y, PhoneFavoriteSquareTileView view);
+
+    /**
+     * Called when a drag is completed (whether by dropping it somewhere or simply by dragging
+     * the contact off the screen)
+     * @param x X-coordinate of the drag event
+     * @param y Y-coordinate of the drag event
+     */
+    public void onDragFinished(int x, int y);
+
+    /**
+     * Called when a contact has been dropped on the remove view, indicating that the user
+     * wants to remove this contact.
+     */
+    public void onDroppedOnRemove();
+}
\ No newline at end of file
diff --git a/src/com/android/dialer/list/OnListFragmentScrolledListener.java b/src/com/android/dialer/list/OnListFragmentScrolledListener.java
index cc5f3cd..5ed3a64 100644
--- a/src/com/android/dialer/list/OnListFragmentScrolledListener.java
+++ b/src/com/android/dialer/list/OnListFragmentScrolledListener.java
@@ -21,4 +21,6 @@
  */
 public interface OnListFragmentScrolledListener {
     public void onListFragmentScrollStateChange(int scrollState);
+    public void onListFragmentScroll(int firstVisibleItem, int visibleItemCount,
+            int totalItemCount);
 }
diff --git a/src/com/android/dialer/list/PhoneFavoriteFragment.java b/src/com/android/dialer/list/PhoneFavoriteFragment.java
deleted file mode 100644
index 19abcd7..0000000
--- a/src/com/android/dialer/list/PhoneFavoriteFragment.java
+++ /dev/null
@@ -1,684 +0,0 @@
-/*
- * 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.
- */
-package com.android.dialer.list;
-
-import android.animation.Animator;
-import android.animation.AnimatorSet;
-import android.animation.ArgbEvaluator;
-import android.animation.ObjectAnimator;
-import android.animation.ValueAnimator;
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.LoaderManager;
-import android.content.Context;
-import android.content.CursorLoader;
-import android.content.Loader;
-import android.content.SharedPreferences;
-import android.content.res.Resources;
-import android.database.Cursor;
-import android.graphics.Rect;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.CallLog;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewTreeObserver;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.ImageView;
-import android.widget.ListView;
-import android.widget.RelativeLayout;
-import android.widget.RelativeLayout.LayoutParams;
-
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.ContactTileLoaderFactory;
-import com.android.contacts.common.GeoUtil;
-import com.android.contacts.common.list.ContactEntry;
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.list.ContactTileView;
-import com.android.dialer.DialtactsActivity;
-import com.android.dialer.R;
-import com.android.dialer.calllog.CallLogQuery;
-import com.android.dialer.calllog.ContactInfoHelper;
-import com.android.dialer.calllog.CallLogAdapter;
-import com.android.dialer.calllog.CallLogQueryHandler;
-import com.android.dialer.list.PhoneFavoritesTileAdapter.ContactTileRow;
-import com.android.dialerbind.ObjectFactory;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-/**
- * Fragment for Phone UI's favorite screen.
- *
- * This fragment contains three kinds of contacts in one screen: "starred", "frequent", and "all"
- * contacts. To show them at once, this merges results from {@link com.android.contacts.common.list.ContactTileAdapter} and
- * {@link com.android.contacts.common.list.PhoneNumberListAdapter} into one unified list using {@link PhoneFavoriteMergedAdapter}.
- * A contact filter header is also inserted between those adapters' results.
- */
-public class PhoneFavoriteFragment extends Fragment implements OnItemClickListener,
-        CallLogQueryHandler.Listener, CallLogAdapter.CallFetcher,
-        PhoneFavoritesTileAdapter.OnDataSetChangedForAnimationListener {
-
-    /**
-     * By default, the animation code assumes that all items in a list view are of the same height
-     * when animating new list items into view (e.g. from the bottom of the screen into view).
-     * This can cause incorrect translation offsets when a item that is larger or smaller than
-     * other list item is removed from the list. This key is used to provide the actual height
-     * of the removed object so that the actual translation appears correct to the user.
-     */
-    private static final long KEY_REMOVED_ITEM_HEIGHT = Long.MAX_VALUE;
-
-    private static final String TAG = PhoneFavoriteFragment.class.getSimpleName();
-    private static final boolean DEBUG = false;
-
-    private int mAnimationDuration;
-
-    /**
-     * Used with LoaderManager.
-     */
-    private static int LOADER_ID_CONTACT_TILE = 1;
-    private static int MISSED_CALL_LOADER = 2;
-
-    private static final String KEY_LAST_DISMISSED_CALL_SHORTCUT_DATE =
-            "key_last_dismissed_call_shortcut_date";
-
-    public interface OnShowAllContactsListener {
-        public void onShowAllContacts();
-    }
-
-    public interface Listener {
-        public void onContactSelected(Uri contactUri);
-        public void onCallNumberDirectly(String phoneNumber);
-    }
-
-    private class MissedCallLogLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
-
-        @Override
-        public Loader<Cursor> onCreateLoader(int id, Bundle args) {
-            final Uri uri = CallLog.Calls.CONTENT_URI;
-            final String[] projection = new String[] {CallLog.Calls.TYPE};
-            final String selection = CallLog.Calls.TYPE + " = " + CallLog.Calls.MISSED_TYPE +
-                    " AND " + CallLog.Calls.IS_READ + " = 0";
-            return new CursorLoader(getActivity(), uri, projection, selection, null, null);
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor data) {
-            mCallLogAdapter.setMissedCalls(data);
-        }
-
-        @Override
-        public void onLoaderReset(Loader<Cursor> cursorLoader) {
-        }
-    }
-
-    private class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
-        @Override
-        public CursorLoader onCreateLoader(int id, Bundle args) {
-            if (DEBUG) Log.d(TAG, "ContactTileLoaderListener#onCreateLoader.");
-            return ContactTileLoaderFactory.createStrequentPhoneOnlyLoader(getActivity());
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-            if (DEBUG) Log.d(TAG, "ContactTileLoaderListener#onLoadFinished");
-            mContactTileAdapter.setContactCursor(data);
-            setEmptyViewVisibility(mContactTileAdapter.getCount() == 0);
-        }
-
-        @Override
-        public void onLoaderReset(Loader<Cursor> loader) {
-            if (DEBUG) Log.d(TAG, "ContactTileLoaderListener#onLoaderReset. ");
-        }
-    }
-
-    private class ContactTileAdapterListener implements ContactTileView.Listener {
-        @Override
-        public void onContactSelected(Uri contactUri, Rect targetRect) {
-            if (mListener != null) {
-                mListener.onContactSelected(contactUri);
-            }
-        }
-
-        @Override
-        public void onCallNumberDirectly(String phoneNumber) {
-            if (mListener != null) {
-                mListener.onCallNumberDirectly(phoneNumber);
-            }
-        }
-
-        @Override
-        public int getApproximateTileWidth() {
-            return getView().getWidth() / mContactTileAdapter.getColumnCount();
-        }
-    }
-
-    private class ScrollListener implements ListView.OnScrollListener {
-        @Override
-        public void onScroll(AbsListView view,
-                int firstVisibleItem, int visibleItemCount, int totalItemCount) {
-        }
-
-        @Override
-        public void onScrollStateChanged(AbsListView view, int scrollState) {
-            mActivityScrollListener.onListFragmentScrollStateChange(scrollState);
-        }
-    }
-
-    private final WifiWizardAdapter.WifiWizardModel mWifiWizardModel =
-            new WifiWizardAdapter.WifiWizardModel() {
-                @Override
-                public void setWifiCallState(int state) {
-                    // TODO(ihab): Implement based on real data
-                }
-
-                @Override
-                public int getWifiCallState() {
-                    // TODO(ihab): Implement based on real data
-                    return WIFI_CALL_STATE_ALWAYS;
-                }
-
-                @Override
-                public boolean shouldDisplayWifiSelection() {
-                    // TODO(ihab): Implement based on real data
-                    return true;
-                }
-            };
-
-    private Listener mListener;
-
-    private OnListFragmentScrolledListener mActivityScrollListener;
-    private OnShowAllContactsListener mShowAllContactsListener;
-    private PhoneFavoriteMergedAdapter mAdapter;
-    private PhoneFavoritesTileAdapter mContactTileAdapter;
-
-    private CallLogAdapter mCallLogAdapter;
-    private CallLogQueryHandler mCallLogQueryHandler;
-
-    private View mParentView;
-
-    private PhoneFavoriteListView mListView;
-
-    private View mShowAllContactsButton;
-    private View mShowAllContactsInEmptyViewButton;
-    private View mContactTileFrame;
-
-    private TileInteractionTeaserView mTileInteractionTeaserView;
-
-    private final HashMap<Long, Integer> mItemIdTopMap = new HashMap<Long, Integer>();
-    private final HashMap<Long, Integer> mItemIdLeftMap = new HashMap<Long, Integer>();
-
-    /**
-     * Layout used when there are no favorites.
-     */
-    private View mEmptyView;
-
-    /**
-     * Call shortcuts older than this date (persisted in shared preferences) will not show up in
-     * at the top of the screen
-     */
-    private long mLastCallShortcutDate = 0;
-
-    /**
-     * The date of the current call shortcut that is showing on screen.
-     */
-    private long mCurrentCallShortcutDate = 0;
-
-    private final ContactTileView.Listener mContactTileAdapterListener =
-            new ContactTileAdapterListener();
-    private final LoaderManager.LoaderCallbacks<Cursor> mContactTileLoaderListener =
-            new ContactTileLoaderListener();
-    private final ScrollListener mScrollListener = new ScrollListener();
-
-    @Override
-    public void onAttach(Activity activity) {
-        if (DEBUG) Log.d(TAG, "onAttach()");
-        super.onAttach(activity);
-
-        // Construct two base adapters which will become part of PhoneFavoriteMergedAdapter.
-        // We don't construct the resultant adapter at this moment since it requires LayoutInflater
-        // that will be available on onCreateView().
-        mContactTileAdapter = new PhoneFavoritesTileAdapter(activity, mContactTileAdapterListener,
-                this,
-                getResources().getInteger(R.integer.contact_tile_column_count_in_favorites_new),
-                1);
-        mContactTileAdapter.setPhotoLoader(ContactPhotoManager.getInstance(activity));
-    }
-
-    @Override
-    public void onCreate(Bundle savedState) {
-        if (DEBUG) Log.d(TAG, "onCreate()");
-        super.onCreate(savedState);
-
-        mAnimationDuration = getResources().getInteger(R.integer.fade_duration);
-        mCallLogQueryHandler = new CallLogQueryHandler(getActivity().getContentResolver(),
-                this, 1);
-        final String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
-        mCallLogAdapter = ObjectFactory.newCallLogAdapter(getActivity(), this,
-                new ContactInfoHelper(getActivity(), currentCountryIso), true, false);
-        setHasOptionsMenu(true);
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        final SharedPreferences prefs = getActivity().getSharedPreferences(
-                DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
-
-        mLastCallShortcutDate = prefs.getLong(KEY_LAST_DISMISSED_CALL_SHORTCUT_DATE, 0);
-
-        fetchCalls();
-        mCallLogAdapter.setLoading(true);
-        getLoaderManager().getLoader(LOADER_ID_CONTACT_TILE).forceLoad();
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        mParentView = inflater.inflate(R.layout.phone_favorites_fragment, container, false);
-
-        mListView = (PhoneFavoriteListView) mParentView.findViewById(R.id.contact_tile_list);
-        mListView.setItemsCanFocus(true);
-        mListView.setOnItemClickListener(this);
-        mListView.setVerticalScrollBarEnabled(false);
-        mListView.setVerticalScrollbarPosition(View.SCROLLBAR_POSITION_RIGHT);
-        mListView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
-        mListView.setOnItemSwipeListener(mContactTileAdapter);
-        mListView.setOnDragDropListener(mContactTileAdapter);
-
-        final ImageView dragShadowOverlay =
-                (ImageView) mParentView.findViewById(R.id.contact_tile_drag_shadow_overlay);
-        mListView.setDragShadowOverlay(dragShadowOverlay);
-
-        mEmptyView = mParentView.findViewById(R.id.phone_no_favorites_view);
-
-        mShowAllContactsInEmptyViewButton = mParentView.findViewById(
-                R.id.show_all_contact_button_in_nofav);
-        prepareAllContactsButton(mShowAllContactsInEmptyViewButton);
-
-        mShowAllContactsButton = inflater.inflate(R.layout.show_all_contact_button, mListView,
-                false);
-
-        prepareAllContactsButton(mShowAllContactsButton);
-
-        mContactTileFrame = mParentView.findViewById(R.id.contact_tile_frame);
-
-        mTileInteractionTeaserView = (TileInteractionTeaserView) inflater.inflate(
-                R.layout.tile_interactions_teaser_view, mListView, false);
-
-        mAdapter = new PhoneFavoriteMergedAdapter(getActivity(), this, mContactTileAdapter,
-                mCallLogAdapter, mShowAllContactsButton, mTileInteractionTeaserView,
-                mWifiWizardModel);
-
-        mTileInteractionTeaserView.setAdapter(mAdapter);
-
-        mListView.setAdapter(mAdapter);
-
-        mListView.setOnScrollListener(mScrollListener);
-        mListView.setFastScrollEnabled(false);
-        mListView.setFastScrollAlwaysVisible(false);
-
-        return mParentView;
-    }
-
-    public boolean hasFrequents() {
-        if (mContactTileAdapter == null) return false;
-        return mContactTileAdapter.getNumFrequents() > 0;
-    }
-
-    /* package */ void setEmptyViewVisibility(final boolean visible) {
-        final int previousVisibility = mEmptyView.getVisibility();
-        final int newVisibility = visible ? View.VISIBLE : View.GONE;
-
-        if (previousVisibility != newVisibility) {
-            final RelativeLayout.LayoutParams params = (LayoutParams) mContactTileFrame
-                    .getLayoutParams();
-            params.height = visible ? LayoutParams.WRAP_CONTENT : LayoutParams.MATCH_PARENT;
-            mContactTileFrame.setLayoutParams(params);
-            mEmptyView.setVisibility(newVisibility);
-        }
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-
-        final Activity activity = getActivity();
-
-        try {
-            mActivityScrollListener = (OnListFragmentScrolledListener) activity;
-        } catch (ClassCastException e) {
-            throw new ClassCastException(activity.toString()
-                    + " must implement OnListFragmentScrolledListener");
-        }
-
-        try {
-            mShowAllContactsListener = (OnShowAllContactsListener) activity;
-        } catch (ClassCastException e) {
-            throw new ClassCastException(activity.toString()
-                    + " must implement OnShowAllContactsListener");
-        }
-
-        // Use initLoader() instead of restartLoader() to refraining unnecessary reload.
-        // This method call implicitly assures ContactTileLoaderListener's onLoadFinished() will
-        // be called, on which we'll check if "all" contacts should be reloaded again or not.
-        getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, null, mContactTileLoaderListener);
-        getLoaderManager().initLoader(MISSED_CALL_LOADER, null, new MissedCallLogLoaderListener());
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * This is only effective for elements provided by {@link #mContactTileAdapter}.
-     * {@link #mContactTileAdapter} has its own logic for click events.
-     */
-    @Override
-    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-        final int contactTileAdapterCount = mContactTileAdapter.getCount();
-        if (position <= contactTileAdapterCount) {
-            Log.e(TAG, "onItemClick() event for unexpected position. "
-                    + "The position " + position + " is before \"all\" section. Ignored.");
-        }
-    }
-
-    /**
-     * Gets called when user click on the show all contacts button.
-     */
-    private void showAllContacts() {
-        mShowAllContactsListener.onShowAllContacts();
-    }
-
-    public void setListener(Listener listener) {
-        mListener = listener;
-    }
-
-    @Override
-    public void onVoicemailStatusFetched(Cursor statusCursor) {
-        // no-op
-    }
-
-    @Override
-    public void onCallsFetched(Cursor cursor) {
-        animateListView();
-        mCallLogAdapter.setLoading(false);
-
-        // Save the date of the most recent call log item
-        if (cursor != null && cursor.moveToFirst()) {
-            mCurrentCallShortcutDate = cursor.getLong(CallLogQuery.DATE);
-        }
-
-        mCallLogAdapter.changeCursor(cursor);
-        mAdapter.notifyDataSetChanged();
-    }
-
-    @Override
-    public void fetchCalls() {
-        mCallLogQueryHandler.fetchCalls(CallLogQueryHandler.CALL_TYPE_ALL, mLastCallShortcutDate);
-    }
-
-    @Override
-    public void onPause() {
-        // If there are any pending contact entries that are to be removed, remove them
-        mContactTileAdapter.removePendingContactEntry();
-        // Wipe the cache to refresh the call shortcut item. This is not that expensive because
-        // it only contains one item.
-        mCallLogAdapter.invalidateCache();
-        super.onPause();
-    }
-
-    /**
-     * Saves the current view offsets into memory
-     */
-    @SuppressWarnings("unchecked")
-    private void saveOffsets(int removedItemHeight) {
-        final int firstVisiblePosition = mListView.getFirstVisiblePosition();
-        if (DEBUG) {
-            Log.d(TAG, "Child count : " + mListView.getChildCount());
-        }
-        for (int i = 0; i < mListView.getChildCount(); i++) {
-            final View child = mListView.getChildAt(i);
-            final int position = firstVisiblePosition + i;
-            final long itemId = mAdapter.getItemId(position);
-            final int itemViewType = mAdapter.getItemViewType(position);
-            if (itemViewType == PhoneFavoritesTileAdapter.ViewTypes.TOP) {
-                // This is a tiled row, so save horizontal offsets instead
-                saveHorizontalOffsets((ContactTileRow) child, (ArrayList<ContactEntry>)
-                        mAdapter.getItem(position));
-            }
-            if (DEBUG) {
-                Log.d(TAG, "Saving itemId: " + itemId + " for listview child " + i + " Top: "
-                        + child.getTop());
-            }
-            mItemIdTopMap.put(itemId, child.getTop());
-        }
-
-        mItemIdTopMap.put(KEY_REMOVED_ITEM_HEIGHT, removedItemHeight);
-    }
-
-    private void saveHorizontalOffsets(ContactTileRow row, ArrayList<ContactEntry> list) {
-        for (int i = 0; i < list.size(); i++) {
-            final View child = row.getChildAt(i);
-            final ContactEntry entry = list.get(i);
-            final long itemId = mContactTileAdapter.getAdjustedItemId(entry.id);
-            if (DEBUG) {
-                Log.d(TAG, "Saving itemId: " + itemId + " for tileview child " + i + " Left: "
-                        + child.getTop());
-            }
-            mItemIdLeftMap.put(itemId, child.getLeft());
-        }
-    }
-
-    /*
-     * Performs a animations for a row of tiles
-     */
-    private void performHorizontalAnimations(ContactTileRow row, ArrayList<ContactEntry> list,
-            long[] idsInPlace) {
-        if (mItemIdLeftMap.isEmpty()) {
-            return;
-        }
-        final AnimatorSet animSet = new AnimatorSet();
-        final ArrayList<Animator> animators = new ArrayList<Animator>();
-        for (int i = 0; i < list.size(); i++) {
-            final View child = row.getChildAt(i);
-            final ContactEntry entry = list.get(i);
-            final long itemId = mContactTileAdapter.getAdjustedItemId(entry.id);
-
-            if (containsId(idsInPlace, itemId)) {
-                animators.add(ObjectAnimator.ofFloat(
-                        child, "alpha", 0.0f, 1.0f));
-                break;
-            } else {
-                Integer startLeft = mItemIdLeftMap.get(itemId);
-                int left = child.getLeft();
-                if (startLeft != null) {
-                    if (startLeft != left) {
-                        int delta = startLeft - left;
-                        if (DEBUG) {
-                            Log.d(TAG, "Found itemId: " + itemId + " for tileview child " + i +
-                                    " Left: " + left +
-                                    " Delta: " + delta);
-                        }
-                        animators.add(ObjectAnimator.ofFloat(
-                                child, "translationX", delta, 0.0f));
-                    }
-                } else {
-                    // In case the last square row is pushed up from the non-square section.
-                    animators.add(ObjectAnimator.ofFloat(
-                            child, "translationX", left, 0.0f));
-                }
-            }
-        }
-        if (animators.size() > 0) {
-            animSet.setDuration(mAnimationDuration).playTogether(animators);
-            animSet.start();
-        }
-    }
-
-    /*
-     * Performs animations for the list view. If the list item is a row of tiles, horizontal
-     * animations will be performed instead.
-     */
-    private void animateListView(final long... idsInPlace) {
-        if (mItemIdTopMap.isEmpty()) {
-            // Don't do animations if the database is being queried for the first time and
-            // the previous item offsets have not been cached, or the user hasn't done anything
-            // (dragging, swiping etc) that requires an animation.
-            return;
-        }
-
-        final int removedItemHeight = mItemIdTopMap.get(KEY_REMOVED_ITEM_HEIGHT);
-
-        final ViewTreeObserver observer = mListView.getViewTreeObserver();
-        observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
-            @SuppressWarnings("unchecked")
-            @Override
-            public boolean onPreDraw() {
-                observer.removeOnPreDrawListener(this);
-                final int firstVisiblePosition = mListView.getFirstVisiblePosition();
-                final AnimatorSet animSet = new AnimatorSet();
-                final ArrayList<Animator> animators = new ArrayList<Animator>();
-                for (int i = 0; i < mListView.getChildCount(); i++) {
-                    final View child = mListView.getChildAt(i);
-                    int position = firstVisiblePosition + i;
-                    final int itemViewType = mAdapter.getItemViewType(position);
-                    if (itemViewType == PhoneFavoritesTileAdapter.ViewTypes.TOP) {
-                        // This is a tiled row, so perform horizontal animations instead
-                        performHorizontalAnimations((ContactTileRow) child, (
-                                ArrayList<ContactEntry>) mAdapter.getItem(position), idsInPlace);
-                    }
-
-                    final long itemId = mAdapter.getItemId(position);
-
-                    if (containsId(idsInPlace, itemId)) {
-                        animators.add(ObjectAnimator.ofFloat(
-                                child, "alpha", 0.0f, 1.0f));
-                        break;
-                    } else {
-                        Integer startTop = mItemIdTopMap.get(itemId);
-                        final int top = child.getTop();
-                        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.
-
-                            final int itemHeight;
-                            if (removedItemHeight == 0) {
-                                itemHeight = child.getHeight() + mListView.getDividerHeight();
-                            } else {
-                                itemHeight = removedItemHeight;
-                            }
-                            startTop = top + (i > 0 ? itemHeight : -itemHeight);
-                            delta = startTop - top;
-                        } else {
-                            // In case the first non-square row is pushed down
-                            // from the square section.
-                            animators.add(ObjectAnimator.ofFloat(
-                                    child, "alpha", 0.0f, 1.0f));
-                        }
-                        if (DEBUG) {
-                            Log.d(TAG, "Found itemId: " + itemId + " for listview child " + i +
-                                    " Top: " + top +
-                                    " Delta: " + delta);
-                        }
-
-                        if (delta != 0) {
-                            animators.add(ObjectAnimator.ofFloat(
-                                    child, "translationY", delta, 0.0f));
-                        }
-                    }
-                }
-
-                if (animators.size() > 0) {
-                    animSet.setDuration(mAnimationDuration).playTogether(animators);
-                    animSet.start();
-                }
-
-                mItemIdTopMap.clear();
-                mItemIdLeftMap.clear();
-                return true;
-            }
-        });
-    }
-
-    private boolean containsId(long[] ids, long target) {
-        // Linear search on array is fine because this is typically only 0-1 elements long
-        for (int i = 0; i < ids.length; i++) {
-            if (ids[i] == target) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    @Override
-    public void onDataSetChangedForAnimation(long... idsInPlace) {
-        animateListView(idsInPlace);
-    }
-
-    @Override
-    public void cacheOffsetsForDatasetChange() {
-        saveOffsets(0);
-    }
-
-    public void dismissShortcut(int height) {
-        saveOffsets(height);
-        mLastCallShortcutDate = mCurrentCallShortcutDate;
-        final SharedPreferences prefs = getActivity().getSharedPreferences(
-                DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
-        prefs.edit().putLong(KEY_LAST_DISMISSED_CALL_SHORTCUT_DATE, mLastCallShortcutDate)
-                .apply();
-        fetchCalls();
-    }
-
-    /**
-     * Returns a view that is laid out and styled to look like a regular contact, with the correct
-     * click behavior (to launch the all contacts activity when it is clicked).
-     */
-    private View prepareAllContactsButton(View v) {
-        final ContactListItemView view = (ContactListItemView) v;
-        view.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                showAllContacts();
-            }
-        });
-
-        view.setPhotoPosition(ContactListItemView.PhotoPosition.LEFT);
-        final Resources resources = getResources();
-        view.setBackgroundResource(R.drawable.contact_list_item_background);
-
-        view.setPaddingRelative(
-                resources.getDimensionPixelSize(R.dimen.favorites_row_start_padding),
-                resources.getDimensionPixelSize(R.dimen.favorites_row_end_padding),
-                resources.getDimensionPixelSize(R.dimen.favorites_row_top_padding),
-                resources.getDimensionPixelSize(R.dimen.favorites_row_bottom_padding));
-
-        view.setDisplayName(resources.getString(R.string.show_all_contacts_button_text));
-        view.setDrawableResource(R.drawable.list_item_avatar_bg,
-                R.drawable.ic_menu_all_contacts_dk);
-        return view;
-    }
-}
diff --git a/src/com/android/dialer/list/PhoneFavoriteListView.java b/src/com/android/dialer/list/PhoneFavoriteListView.java
index 99979dd..4ecc1cd 100644
--- a/src/com/android/dialer/list/PhoneFavoriteListView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteListView.java
@@ -29,32 +29,20 @@
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewConfiguration;
-import android.widget.FrameLayout;
+import android.widget.GridView;
 import android.widget.ImageView;
-import android.widget.ListView;
 
 import com.android.dialer.R;
-import com.android.dialer.list.PhoneFavoritesTileAdapter.ContactTileRow;
-import com.android.dialer.list.SwipeHelper.OnItemGestureListener;
-import com.android.dialer.list.SwipeHelper.SwipeHelperCallback;
+import com.android.dialer.list.DragDropController.DragItemContainer;
 
 /**
- * The ListView composed of {@link ContactTileRow}.
- * This ListView handles both
- * - Swiping, which is borrowed from packages/apps/UnifiedEmail (com.android.mail.ui.Swipeable)
- * - Drag and drop
+ * Viewgroup that presents the user's speed dial contacts in a grid.
  */
-public class PhoneFavoriteListView extends ListView implements SwipeHelperCallback {
+public class PhoneFavoriteListView extends GridView implements OnDragDropListener,
+        DragItemContainer {
 
     public static final String LOG_TAG = PhoneFavoriteListView.class.getSimpleName();
 
-    private SwipeHelper mSwipeHelper;
-    private boolean mEnableSwipe = true;
-
-    private OnItemGestureListener mOnItemGestureListener;
-    private OnDragDropListener mOnDragDropListener;
-
-    private float mDensityScale;
     private float mTouchSlop;
 
     private int mTopScrollBound;
@@ -63,7 +51,7 @@
 
     private Handler mScrollHandler;
     private final long SCROLL_HANDLER_DELAY_MILLIS = 5;
-    private final int DRAG_SCROLL_PX_UNIT = 10;
+    private final int DRAG_SCROLL_PX_UNIT = 25;
 
     private boolean mIsDragScrollerRunning = false;
     private int mTouchDownForDragStartX;
@@ -71,8 +59,11 @@
 
     private Bitmap mDragShadowBitmap;
     private ImageView mDragShadowOverlay;
+    private View mDragShadowParent;
     private int mAnimationDuration;
 
+    final int[] mLocationOnScreen = new int[2];
+
     // X and Y offsets inside the item from where the user grabbed to the
     // child's left coordinate. This is used to aid in the drawing of the drag shadow.
     private int mTouchOffsetToChildLeft;
@@ -81,6 +72,8 @@
     private int mDragShadowLeft;
     private int mDragShadowTop;
 
+    private DragDropController mDragDropController = new DragDropController(this);
+
     private final float DRAG_SHADOW_ALPHA = 0.7f;
 
     /**
@@ -125,127 +118,45 @@
     public PhoneFavoriteListView(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
         mAnimationDuration = context.getResources().getInteger(R.integer.fade_duration);
-        mDensityScale = getResources().getDisplayMetrics().density;
         mTouchSlop = ViewConfiguration.get(context).getScaledPagingTouchSlop();
-        mSwipeHelper = new SwipeHelper(context, SwipeHelper.X, this,
-                mDensityScale, mTouchSlop);
-        setItemsCanFocus(true);
+        mDragDropController.addOnDragDropListener(this);
     }
 
     @Override
     protected void onConfigurationChanged(Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
-        mDensityScale= getResources().getDisplayMetrics().density;
         mTouchSlop = ViewConfiguration.get(getContext()).getScaledPagingTouchSlop();
-        mSwipeHelper.setDensityScale(mDensityScale);
-        mSwipeHelper.setPagingTouchSlop(mTouchSlop);
     }
 
     /**
-     * Enable swipe gestures.
+     * TODO: This is all swipe to remove code (nothing to do with drag to remove). This should
+     * be cleaned up and removed once drag to remove becomes the only way to remove contacts.
      */
-    public void enableSwipe(boolean enable) {
-        mEnableSwipe = enable;
-    }
-
-    public boolean isSwipeEnabled() {
-        return mEnableSwipe && mOnItemGestureListener.isSwipeEnabled();
-    }
-
-    public void setOnItemSwipeListener(OnItemGestureListener listener) {
-        mOnItemGestureListener = listener;
-    }
-
-    public void setOnDragDropListener(OnDragDropListener listener) {
-        mOnDragDropListener = listener;
-    }
-
     @Override
     public boolean onInterceptTouchEvent(MotionEvent ev) {
         if (ev.getAction() == MotionEvent.ACTION_DOWN) {
             mTouchDownForDragStartX = (int) ev.getX();
             mTouchDownForDragStartY = (int) ev.getY();
         }
-        if (isSwipeEnabled()) {
-            return mSwipeHelper.onInterceptTouchEvent(ev) || super.onInterceptTouchEvent(ev);
-        } else {
-            return super.onInterceptTouchEvent(ev);
-        }
+
+        return super.onInterceptTouchEvent(ev);
     }
 
     @Override
-    public boolean onTouchEvent(MotionEvent ev) {
-        if (mOnItemGestureListener != null) {
-            mOnItemGestureListener.onTouch();
-        }
-        if (isSwipeEnabled()) {
-            return mSwipeHelper.onTouchEvent(ev) || super.onTouchEvent(ev);
-        } else {
-            return super.onTouchEvent(ev);
-        }
-    }
-
-    @Override
-    public View getChildAtPosition(MotionEvent ev) {
-        final View view = getViewAtPosition((int) ev.getX(), (int) ev.getY());
-        if (view != null &&
-                SwipeHelper.isSwipeable(view) &&
-                view.getVisibility() != GONE) {
-            // If this view is swipable in this listview, then return it. Otherwise
-            // return a null view, which will simply be ignored by the swipe helper.
-            return view;
-        }
-        return null;
-    }
-
-    @Override
-    public View getChildContentView(View view) {
-        return view.findViewById(R.id.contact_favorite_card);
-    }
-
-    @Override
-    public void onScroll() {}
-
-    @Override
-    public boolean canChildBeDismissed(View v) {
-        return SwipeHelper.isSwipeable(v);
-    }
-
-    @Override
-    public void onChildDismissed(final View v) {
-        if (v != null) {
-            if (mOnItemGestureListener != null) {
-                mOnItemGestureListener.onSwipe(v);
-            }
-        }
-    }
-
-    @Override
-    public void onDragCancelled(View v) {}
-
-    @Override
-    public void onBeginDrag(View v) {
-        final View tileRow = (View) v.getParent();
-
-        // We do this so the underlying ScrollView knows that it won't get
-        // the chance to intercept events anymore
-        requestDisallowInterceptTouchEvent(true);
-    }
-
-    @Override
-    public boolean dispatchDragEvent(DragEvent event) {
+    public boolean onDragEvent(DragEvent event) {
         final int action = event.getAction();
         final int eX = (int) event.getX();
         final int eY = (int) event.getY();
         switch (action) {
-            case DragEvent.ACTION_DRAG_STARTED:
-                if (!handleDragStarted(mTouchDownForDragStartX, mTouchDownForDragStartY)) {
+            case DragEvent.ACTION_DRAG_STARTED: {
+                if (!mDragDropController.handleDragStarted(eX, eY)) {
                     return false;
-                };
+                }
                 break;
+            }
             case DragEvent.ACTION_DRAG_LOCATION:
                 mLastDragY = eY;
-                handleDragHovered(eX, eY);
+                mDragDropController.handleDragHovered(this, eX, eY);
                 // Kick off {@link #mScrollHandler} if it's not started yet.
                 if (!mIsDragScrollerRunning &&
                         // And if the distance traveled while dragging exceeds the touch slop
@@ -268,18 +179,19 @@
                 mIsDragScrollerRunning = false;
                 // Either a successful drop or it's ended with out drop.
                 if (action == DragEvent.ACTION_DROP || action == DragEvent.ACTION_DRAG_ENDED) {
-                    handleDragFinished(eX, eY);
+                    mDragDropController.handleDragFinished(eX, eY, false);
                 }
                 break;
             default:
                 break;
         }
-        // This ListView will consumer the drag events on behalf of its children.
+        // This ListView will consume the drag events on behalf of its children.
         return true;
     }
 
     public void setDragShadowOverlay(ImageView overlay) {
         mDragShadowOverlay = overlay;
+        mDragShadowParent = (View) mDragShadowOverlay.getParent();
     }
 
     /**
@@ -290,7 +202,8 @@
         View child;
         for (int childIdx = 0; childIdx < count; childIdx++) {
             child = getChildAt(childIdx);
-            if (y >= child.getTop() && y <= child.getBottom()) {
+            if (y >= child.getTop() && y <= child.getBottom() && x >= child.getLeft()
+                    && x <= child.getRight()) {
                 return child;
             }
         }
@@ -303,96 +216,61 @@
         }
     }
 
-    /**
-     * @return True if the drag is started.
-     */
-    private boolean handleDragStarted(int x, int y) {
-        final View child = getViewAtPosition(x, y);
-        if (!(child instanceof ContactTileRow)) {
-            // Bail early.
-            return false;
-        }
-
-        final ContactTileRow tile = (ContactTileRow) child;
-
-        if (tile.getTileAdapter().hasPotentialRemoveEntryIndex()) {
-            return false;
-        }
-
-        final int itemIndex = tile.getItemIndex(x, y);
-        if (itemIndex != -1 && mOnDragDropListener != null) {
-            final PhoneFavoriteTileView tileView =
-                    (PhoneFavoriteTileView) tile.getViewAtPosition(x, y);
-            if (mDragShadowOverlay == null) {
-                return false;
-            }
-
-            mDragShadowOverlay.clearAnimation();
-            mDragShadowBitmap = createDraggedChildBitmap(tileView);
-            if (mDragShadowBitmap == null) {
-                return false;
-            }
-
-            if (tileView instanceof PhoneFavoriteRegularRowView) {
-                mDragShadowLeft = tile.getLeft();
-                mDragShadowTop = tile.getTop();
-            } else {
-                // Square tile is relative to the contact tile,
-                // and contact tile is relative to this list view.
-                mDragShadowLeft = tileView.getLeft() + tileView.getParentRow().getLeft();
-                mDragShadowTop = tileView.getTop() + tileView.getParentRow().getTop();
-            }
-
-            mDragShadowOverlay.setImageBitmap(mDragShadowBitmap);
-            mDragShadowOverlay.setVisibility(VISIBLE);
-            mDragShadowOverlay.setAlpha(DRAG_SHADOW_ALPHA);
-
-            mDragShadowOverlay.setX(mDragShadowLeft);
-            mDragShadowOverlay.setY(mDragShadowTop);
-
-            // x and y passed in are the coordinates of where the user has touched down, calculate
-            // the offset to the top left coordinate of the dragged child.  This will be used for
-            // drawing the drag shadow.
-            mTouchOffsetToChildLeft = x - mDragShadowLeft;
-            mTouchOffsetToChildTop = y - mDragShadowTop;
-
-            // invalidate to trigger a redraw of the drag shadow.
-            invalidate();
-
-            mOnDragDropListener.onDragStarted(itemIndex);
-        }
-
-        return true;
+    public DragDropController getDragDropController() {
+        return mDragDropController;
     }
 
-    private void handleDragHovered(int x, int y) {
+    @Override
+    public void onDragStarted(int x, int y, PhoneFavoriteSquareTileView tileView) {
+        if (mDragShadowOverlay == null) {
+            return;
+        }
+
+        mDragShadowOverlay.clearAnimation();
+        mDragShadowBitmap = createDraggedChildBitmap(tileView);
+        if (mDragShadowBitmap == null) {
+            return;
+        }
+
+        tileView.getLocationOnScreen(mLocationOnScreen);
+        mDragShadowLeft = mLocationOnScreen[0];
+        mDragShadowTop = mLocationOnScreen[1];
+
+        // x and y are the coordinates of the on-screen touch event. Using these
+        // and the on-screen location of the tileView, calculate the difference between
+        // the position of the user's finger and the position of the tileView. These will
+        // be used to offset the location of the drag shadow so that it appears that the
+        // tileView is positioned directly under the user's finger.
+        mTouchOffsetToChildLeft = x - mDragShadowLeft;
+        mTouchOffsetToChildTop = y - mDragShadowTop;
+
+        mDragShadowParent.getLocationOnScreen(mLocationOnScreen);
+        mDragShadowLeft -= mLocationOnScreen[0];
+        mDragShadowTop -= mLocationOnScreen[1];
+
+        mDragShadowOverlay.setImageBitmap(mDragShadowBitmap);
+        mDragShadowOverlay.setVisibility(VISIBLE);
+        mDragShadowOverlay.setAlpha(DRAG_SHADOW_ALPHA);
+
+        mDragShadowOverlay.setX(mDragShadowLeft);
+        mDragShadowOverlay.setY(mDragShadowTop);
+    }
+
+    @Override
+    public void onDragHovered(int x, int y, PhoneFavoriteSquareTileView tileView) {
         // Update the drag shadow location.
-        mDragShadowLeft = x - mTouchOffsetToChildLeft;
-        mDragShadowTop = y - mTouchOffsetToChildTop;
+        mDragShadowParent.getLocationOnScreen(mLocationOnScreen);
+        mDragShadowLeft = x - mTouchOffsetToChildLeft - mLocationOnScreen[0];
+        mDragShadowTop = y - mTouchOffsetToChildTop - mLocationOnScreen[1];
         // Draw the drag shadow at its last known location if the drag shadow exists.
         if (mDragShadowOverlay != null) {
             mDragShadowOverlay.setX(mDragShadowLeft);
             mDragShadowOverlay.setY(mDragShadowTop);
         }
-
-        final View child = getViewAtPosition(x, y);
-        if (!(child instanceof ContactTileRow)) {
-            // Bail early.
-            return;
-        }
-
-        final ContactTileRow tile = (ContactTileRow) child;
-        final int itemIndex = tile.getItemIndex(x, y);
-        if (itemIndex != -1 && mOnDragDropListener != null) {
-            mOnDragDropListener.onDragHovered(itemIndex);
-        }
     }
 
-    private void handleDragFinished(int x, int y) {
-        // Update the drag shadow location.
-        mDragShadowLeft = x - mTouchOffsetToChildLeft;
-        mDragShadowTop = y - mTouchOffsetToChildTop;
-
+    @Override
+    public void onDragFinished(int x, int y) {
         if (mDragShadowOverlay != null) {
             mDragShadowOverlay.clearAnimation();
             mDragShadowOverlay.animate().alpha(0.0f)
@@ -400,12 +278,11 @@
                     .setListener(mDragShadowOverAnimatorListener)
                     .start();
         }
-
-        if (mOnDragDropListener != null) {
-            mOnDragDropListener.onDragFinished();
-        }
     }
 
+    @Override
+    public void onDroppedOnRemove() {}
+
     private Bitmap createDraggedChildBitmap(View view) {
         view.setDrawingCacheEnabled(true);
         final Bitmap cache = view.getDrawingCache();
@@ -426,9 +303,18 @@
         return bitmap;
     }
 
-    public interface OnDragDropListener {
-        public void onDragStarted(int itemIndex);
-        public void onDragHovered(int itemIndex);
-        public void onDragFinished();
+    @Override
+    public PhoneFavoriteSquareTileView getViewForLocation(int x, int y) {
+        getLocationOnScreen(mLocationOnScreen);
+        // Calculate the X and Y coordinates of the drag event relative to the view
+        final int viewX = x - mLocationOnScreen[0];
+        final int viewY = y - mLocationOnScreen[1];
+        final View child = getViewAtPosition(viewX, viewY);
+
+        if (!(child instanceof PhoneFavoriteSquareTileView)) {
+            return null;
+        }
+
+        return (PhoneFavoriteSquareTileView) child;
     }
 }
diff --git a/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java b/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java
deleted file mode 100644
index 53d2ea6..0000000
--- a/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java
+++ /dev/null
@@ -1,451 +0,0 @@
-/*
- * Copyright (C) 2011 Google Inc.
- * Licensed to 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.
- */
-package com.android.dialer.list;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.database.Cursor;
-import android.database.DataSetObserver;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewConfiguration;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.FrameLayout;
-
-import com.android.dialer.R;
-import com.android.dialer.calllog.CallLogAdapter;
-import com.android.dialer.calllog.CallLogNotificationsHelper;
-import com.android.dialer.calllog.CallLogQueryHandler;
-import com.android.dialer.list.SwipeHelper.OnItemGestureListener;
-import com.android.dialer.list.SwipeHelper.SwipeHelperCallback;
-
-/**
- * An adapter that combines items from {@link com.android.contacts.common.list.ContactTileAdapter}
- * and {@link com.android.dialer.calllog.CallLogAdapter} into a single list.
- */
-public class PhoneFavoriteMergedAdapter extends BaseAdapter {
-
-    private class CustomDataSetObserver extends DataSetObserver {
-        @Override
-        public void onChanged() {
-            notifyDataSetChanged();
-        }
-    }
-
-    private static final String TAG = PhoneFavoriteMergedAdapter.class.getSimpleName();
-
-    private static final int TILE_INTERACTION_TEASER_VIEW_POSITION = 2;
-    private static final int TILE_INTERACTION_TEASER_VIEW_ID = -2;
-    private static final int ALL_CONTACTS_BUTTON_ITEM_ID = -1;
-    private final PhoneFavoritesTileAdapter mContactTileAdapter;
-    private final CallLogAdapter mCallLogAdapter;
-    private final WifiWizardAdapter mWifiWizardAdapter;
-    private final View mShowAllContactsButton;
-    private final PhoneFavoriteFragment mFragment;
-    private final TileInteractionTeaserView mTileInteractionTeaserView;
-
-    private final int mCallLogPadding;
-
-    private final Context mContext;
-
-    private final DataSetObserver mObserver;
-
-    private final CallLogQueryHandler mCallLogQueryHandler;
-
-    private final OnItemGestureListener mCallLogOnItemSwipeListener =
-            new OnItemGestureListener() {
-        @Override
-        public void onSwipe(View view) {
-            mCallLogQueryHandler.markNewCallsAsOld();
-            mCallLogQueryHandler.markNewVoicemailsAsOld();
-            CallLogNotificationsHelper.removeMissedCallNotifications();
-            CallLogNotificationsHelper.updateVoicemailNotifications(mContext);
-            mFragment.dismissShortcut(((View) view.getParent()).getHeight());
-        }
-
-        @Override
-        public void onTouch() {}
-
-        @Override
-        public boolean isSwipeEnabled() {
-            return true;
-        }
-    };
-
-    private final CallLogQueryHandler.Listener mCallLogQueryHandlerListener =
-            new CallLogQueryHandler.Listener() {
-        @Override
-        public void onVoicemailStatusFetched(Cursor statusCursor) {}
-
-        @Override
-        public void onCallsFetched(Cursor combinedCursor) {
-            mCallLogAdapter.invalidateCache();
-            mCallLogAdapter.changeCursor(combinedCursor);
-            mCallLogAdapter.notifyDataSetChanged();
-        }
-    };
-
-    public PhoneFavoriteMergedAdapter(Context context,
-            PhoneFavoriteFragment fragment,
-            PhoneFavoritesTileAdapter contactTileAdapter,
-            CallLogAdapter callLogAdapter,
-            View showAllContactsButton,
-            TileInteractionTeaserView tileInteractionTeaserView,
-            WifiWizardAdapter.WifiWizardModel wifiWizardModel) {
-        final Resources resources = context.getResources();
-        mContext = context;
-        mFragment = fragment;
-        mCallLogPadding = resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding);
-        mContactTileAdapter = contactTileAdapter;
-        mCallLogAdapter = callLogAdapter;
-        mWifiWizardAdapter = new WifiWizardAdapter(context, wifiWizardModel);
-        mObserver = new CustomDataSetObserver();
-        mWifiWizardAdapter.registerDataSetObserver(mObserver);
-        mCallLogAdapter.registerDataSetObserver(mObserver);
-        mContactTileAdapter.registerDataSetObserver(mObserver);
-        mShowAllContactsButton = showAllContactsButton;
-        mTileInteractionTeaserView = tileInteractionTeaserView;
-        mCallLogQueryHandler = new CallLogQueryHandler(mContext.getContentResolver(),
-                mCallLogQueryHandlerListener);
-    }
-
-    @Override
-    public int getCount() {
-        if (mContactTileAdapter.getCount() > 0) {
-            return mWifiWizardAdapter.getCount() + mContactTileAdapter.getCount() +
-                    mCallLogAdapter.getCount() + 1 + getTeaserViewCount();
-        } else {
-            return mWifiWizardAdapter.getCount() + mCallLogAdapter.getCount();
-        }
-    }
-
-    @Override
-    public Object getItem(int position) {
-        if (mWifiWizardAdapter.getCount() > 0) {
-            if (position < mWifiWizardAdapter.getCount()) {
-                return mWifiWizardAdapter.getItem(position);
-            } else {
-                position -= mWifiWizardAdapter.getCount();
-            }
-        }
-
-        final int callLogAdapterCount = mCallLogAdapter.getCount();
-
-        if (callLogAdapterCount > 0) {
-            if (position < callLogAdapterCount) {
-                return mCallLogAdapter.getItem(position);
-            }
-        }
-        // Set position to the position of the actual favorite contact in the favorites adapter
-        position = getAdjustedFavoritePosition(position, callLogAdapterCount);
-
-        return mContactTileAdapter.getItem(position);
-    }
-
-    /**
-     * In order to ensure that items have stable ids (for animation purposes), we need to
-     * guarantee that every single item has a unique ID, even across data set changes.
-     *
-     * These are the ranges of IDs reserved for each item type.
-     *
-     * -(N + 4): Wi-Fi Wizard item, where N is equal to the number of call log items
-     * -(N + 3) to -3: CallLogAdapterItems, where N is equal to the number of call log items
-     * -2: Teaser
-     * -1: All contacts button
-     * 0 to (M -1): Rows of tiled contacts, where M is equal to the max rows of tiled contacts
-     * M to infinity: Rows of regular contacts. Their item id is calculated by M + contact_id,
-     * where contact_id is guaranteed to never be negative.
-     */
-    @Override
-    public long getItemId(int position) {
-        final int callLogAdapterCount = mCallLogAdapter.getCount();
-
-        if (mWifiWizardAdapter.getCount() > 0) {
-            if (position < mWifiWizardAdapter.getCount()) {
-                return - callLogAdapterCount - 4;
-            } else {
-                position -= mWifiWizardAdapter.getCount();
-            }
-        }
-
-        if (position < callLogAdapterCount) {
-            // Call log items are not animated, so reusing their position for IDs is fine.
-            return ALL_CONTACTS_BUTTON_ITEM_ID - 2 - position;
-        } else if (position == TILE_INTERACTION_TEASER_VIEW_POSITION + callLogAdapterCount &&
-                mTileInteractionTeaserView.getShouldDisplayInList()){
-            return TILE_INTERACTION_TEASER_VIEW_ID;
-        } else if (position < (callLogAdapterCount + mContactTileAdapter.getCount() +
-                getTeaserViewCount())) {
-            return mContactTileAdapter.getItemId(
-                    getAdjustedFavoritePosition(position, callLogAdapterCount));
-        } else {
-            // All contacts button
-            return ALL_CONTACTS_BUTTON_ITEM_ID;
-        }
-    }
-
-    @Override
-    public boolean hasStableIds() {
-        return true;
-    }
-
-    @Override
-    public int getViewTypeCount() {
-        return (mWifiWizardAdapter.getViewTypeCount() +             /* Enable Wifi calling */
-                mContactTileAdapter.getViewTypeCount() +            /* Favorite and frequent */
-                mCallLogAdapter.getViewTypeCount() +                /* Recent call log */
-                getTeaserViewCount() +                              /* Teaser */
-                1);                                                 /* Show all contacts button. */
-    }
-
-    @Override
-    public int getItemViewType(int position) {
-        if (mWifiWizardAdapter.getCount() > 0) {
-            if (position < mWifiWizardAdapter.getCount()) {
-                return mWifiWizardAdapter.getItemViewType(position);
-            } else {
-                position -= mWifiWizardAdapter.getCount();
-            }
-        }
-
-        final int callLogAdapterCount = mCallLogAdapter.getCount();
-
-        if (position < callLogAdapterCount) {
-            // View type of the call log adapter is the last view type of the contact tile adapter
-            // + 1
-            return mContactTileAdapter.getViewTypeCount();
-        } else if (position == TILE_INTERACTION_TEASER_VIEW_POSITION + callLogAdapterCount &&
-                mTileInteractionTeaserView.getShouldDisplayInList()) {
-            // View type of the teaser row is the last view type of the contact tile adapter + 3
-            return mContactTileAdapter.getViewTypeCount() + 2;
-        } else if (position < getCount() - mWifiWizardAdapter.getCount() - 1) {
-            return mContactTileAdapter.getItemViewType(
-                    getAdjustedFavoritePosition(position, callLogAdapterCount));
-        } else {
-            // View type of the show all contact button is the last view type of the contact tile
-            // adapter + 2
-            return mContactTileAdapter.getViewTypeCount() + 1;
-        }
-    }
-
-    @Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-        if (mWifiWizardAdapter.getCount() > 0) {
-            if (position < mWifiWizardAdapter.getCount()) {
-                SwipeableCallLogRow wrapper = new SwipeableCallLogRow(mContext);
-                wrapper.addView(mWifiWizardAdapter.getView(position, convertView, parent));
-                wrapper.setOnItemSwipeListener(new OnItemGestureListener() {
-                    @Override
-                    public void onSwipe(View view) {}
-
-                    @Override
-                    public void onTouch() {}
-
-                    @Override
-                    public boolean isSwipeEnabled() {
-                        return false;
-                    }
-                });
-                return wrapper;
-            } else {
-                position -= mWifiWizardAdapter.getCount();
-            }
-        }
-
-        final int callLogAdapterCount = mCallLogAdapter.getCount();
-
-        if ((position == getCount() - mWifiWizardAdapter.getCount() - 1)
-                && (mContactTileAdapter.getCount() > 0)) {
-            return mShowAllContactsButton;
-        }
-
-        if (mTileInteractionTeaserView.getShouldDisplayInList())  {
-            if (position == TILE_INTERACTION_TEASER_VIEW_POSITION + callLogAdapterCount) {
-                return mTileInteractionTeaserView;
-            }
-        }
-
-        if (callLogAdapterCount > 0) {
-            if (position == 0) {
-                final SwipeableCallLogRow wrapper;
-                if (convertView == null) {
-                    wrapper = new SwipeableCallLogRow(mContext);
-                    wrapper.setOnItemSwipeListener(mCallLogOnItemSwipeListener);
-                } else {
-                    wrapper = (SwipeableCallLogRow) convertView;
-                }
-
-                // Special case wrapper view for the most recent call log item. This allows
-                // us to create a card-like effect for the more recent call log item in
-                // the PhoneFavoriteMergedAdapter, but keep the original look of the item in
-                // the CallLogAdapter.
-                final View view = mCallLogAdapter.getView(position, convertView == null ?
-                        null : wrapper.getChildAt(0), parent);
-                wrapper.removeAllViews();
-                final View callLogItem = view.findViewById(R.id.call_log_list_item);
-                // Reset the internal call log item view if it is being recycled
-                callLogItem.setTranslationX(0);
-                callLogItem.setAlpha(1);
-                wrapper.addView(view);
-                return wrapper;
-            }
-        }
-
-        // Set position to the position of the actual favorite contact in the
-        // favorites adapter
-        position = getAdjustedFavoritePosition(position, callLogAdapterCount);
-
-        // Favorites section
-        final View view = mContactTileAdapter.getView(position, convertView, parent);
-        if (position >= mContactTileAdapter.getMaxTiledRows()) {
-            final FrameLayout frameLayout = (FrameLayout) view;
-            final View child = frameLayout.getChildAt(0);
-            FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
-                    FrameLayout.LayoutParams.WRAP_CONTENT,
-                    FrameLayout.LayoutParams.WRAP_CONTENT);
-            child.setLayoutParams(params);
-        }
-        return view;
-    }
-
-    @Override
-    public boolean areAllItemsEnabled() {
-        return mCallLogAdapter.areAllItemsEnabled() && mContactTileAdapter.areAllItemsEnabled();
-    }
-
-    @Override
-    public boolean isEnabled(int position) {
-        if (mWifiWizardAdapter.getCount() > 0) {
-            if (position < mWifiWizardAdapter.getCount()) {
-                return mWifiWizardAdapter.isEnabled(position);
-            } else {
-                position -= mWifiWizardAdapter.getCount();
-            }
-        }
-
-        final int callLogAdapterCount = mCallLogAdapter.getCount();
-        if (position < callLogAdapterCount) {
-            return mCallLogAdapter.isEnabled(position);
-        } else { // For favorites section
-            return mContactTileAdapter.isEnabled(
-                    getAdjustedFavoritePosition(position, callLogAdapterCount));
-        }
-    }
-
-    private int getAdjustedFavoritePosition(int position, int callLogAdapterCount) {
-        if (position - callLogAdapterCount > TILE_INTERACTION_TEASER_VIEW_POSITION &&
-                mTileInteractionTeaserView.getShouldDisplayInList()) {
-            return position - callLogAdapterCount - 1;
-        } else {
-            return position - callLogAdapterCount;
-        }
-    }
-
-    private int getTeaserViewCount() {
-        return (mContactTileAdapter.getCount() > TILE_INTERACTION_TEASER_VIEW_POSITION &&
-                mTileInteractionTeaserView.getShouldDisplayInList() ? 1 : 0);
-    }
-
-    /**
-     * The swipeable call log row.
-     * See also {@link PhoneFavoritesTileAdapter.ContactTileRow}.
-     */
-    private class SwipeableCallLogRow extends FrameLayout implements SwipeHelperCallback {
-        private SwipeHelper mSwipeHelper;
-        private OnItemGestureListener mOnItemSwipeListener;
-
-        public SwipeableCallLogRow(Context context) {
-            super(context);
-            final float densityScale = getResources().getDisplayMetrics().density;
-            final float pagingTouchSlop = ViewConfiguration.get(context)
-                    .getScaledPagingTouchSlop();
-            mSwipeHelper = new SwipeHelper(context, SwipeHelper.X, this,
-                    densityScale, pagingTouchSlop);
-        }
-
-        @Override
-        public void addView(View view) {
-            view.setBackgroundResource(R.drawable.dialer_recent_card_bg);
-
-            final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
-                    FrameLayout.LayoutParams.MATCH_PARENT,
-                    FrameLayout.LayoutParams.WRAP_CONTENT);
-            params.setMargins(mCallLogPadding, mCallLogPadding, mCallLogPadding, mCallLogPadding);
-            view.setLayoutParams(params);
-
-            super.addView(view);
-        }
-
-        @Override
-        public View getChildAtPosition(MotionEvent ev) {
-            return getChildCount() > 0 ? getChildAt(0) : null;
-        }
-
-        @Override
-        public View getChildContentView(View v) {
-            return v.findViewById(R.id.call_log_list_item);
-        }
-
-        @Override
-        public void onScroll() {}
-
-        @Override
-        public boolean canChildBeDismissed(View v) {
-            return true;
-        }
-
-        @Override
-        public void onBeginDrag(View v) {
-            // We do this so the underlying ScrollView knows that it won't get
-            // the chance to intercept events anymore
-            requestDisallowInterceptTouchEvent(true);
-        }
-
-        @Override
-        public void onChildDismissed(View v) {
-            if (v != null && mOnItemSwipeListener != null) {
-                mOnItemSwipeListener.onSwipe(v);
-            }
-        }
-
-        @Override
-        public void onDragCancelled(View v) {}
-
-        @Override
-        public boolean onInterceptTouchEvent(MotionEvent ev) {
-            if (mSwipeHelper != null) {
-                return mSwipeHelper.onInterceptTouchEvent(ev) || super.onInterceptTouchEvent(ev);
-            } else {
-                return super.onInterceptTouchEvent(ev);
-            }
-        }
-
-        @Override
-        public boolean onTouchEvent(MotionEvent ev) {
-            if (mSwipeHelper != null) {
-                return mSwipeHelper.onTouchEvent(ev) || super.onTouchEvent(ev);
-            } else {
-                return super.onTouchEvent(ev);
-            }
-        }
-
-        public void setOnItemSwipeListener(OnItemGestureListener listener) {
-            mOnItemSwipeListener = listener;
-        }
-    }
-}
diff --git a/src/com/android/dialer/list/PhoneFavoriteRegularRowView.java b/src/com/android/dialer/list/PhoneFavoriteRegularRowView.java
deleted file mode 100644
index 91b09d7..0000000
--- a/src/com/android/dialer/list/PhoneFavoriteRegularRowView.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-package com.android.dialer.list;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.util.AttributeSet;
-import android.view.View;
-
-import com.android.contacts.common.util.ViewUtil;
-import com.android.dialer.R;
-
-public class PhoneFavoriteRegularRowView extends PhoneFavoriteTileView {
-    private static final String TAG = PhoneFavoriteRegularRowView.class.getSimpleName();
-    private static final boolean DEBUG = false;
-
-    public PhoneFavoriteRegularRowView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        super.onFinishInflate();
-
-        final View favoriteContactCard = findViewById(R.id.contact_favorite_card);
-
-        final int rowPaddingStart;
-        final int rowPaddingEnd;
-        final int rowPaddingTop;
-        final int rowPaddingBottom;
-
-        final Resources resources = getResources();
-        rowPaddingStart = resources.getDimensionPixelSize(
-                R.dimen.favorites_row_start_padding);
-        rowPaddingEnd = resources.getDimensionPixelSize(
-                R.dimen.favorites_row_end_padding);
-        rowPaddingTop = resources.getDimensionPixelSize(
-                R.dimen.favorites_row_top_padding);
-        rowPaddingBottom = resources.getDimensionPixelSize(
-                R.dimen.favorites_row_bottom_padding);
-
-        favoriteContactCard.setBackgroundResource(R.drawable.contact_list_item_background);
-
-        favoriteContactCard.setPaddingRelative(rowPaddingStart, rowPaddingTop, rowPaddingEnd,
-                rowPaddingBottom);
-
-        final View quickContactBadge = findViewById(R.id.contact_tile_quick);
-        quickContactBadge.setOnLongClickListener(new OnLongClickListener() {
-            @Override
-            public boolean onLongClick(View v) {
-                return PhoneFavoriteRegularRowView.this.performLongClick();
-            }
-        });
-    }
-
-    @Override
-    protected int getApproximateImageSize() {
-        return ViewUtil.getConstantPreLayoutWidth(getQuickContact());
-    }
-}
diff --git a/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java b/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
index 85e7216..0520ab4 100644
--- a/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
@@ -18,7 +18,6 @@
 
 import android.content.Context;
 import android.provider.ContactsContract.QuickContact;
-import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.ImageButton;
@@ -26,22 +25,23 @@
 import com.android.contacts.common.R;
 import com.android.contacts.common.list.ContactEntry;
 
-import java.util.regex.Pattern;
-
 /**
- * Displays the contact's picture overlayed with their name
- * in a perfect square. It also has an additional touch target for a secondary action.
+ * Displays the contact's picture overlaid with their name and number type in a tile.
  */
 public class PhoneFavoriteSquareTileView extends PhoneFavoriteTileView {
     private static final String TAG = PhoneFavoriteSquareTileView.class.getSimpleName();
+
+    private final float mHeightToWidthRatio;
+
     private ImageButton mSecondaryButton;
 
-    // TODO: Use a more expansive name token separator if needed. For now it should be fine to
-    // not split by dashes, underscore etc.
-    private static final Pattern NAME_TOKEN_SEPARATOR_PATTERN = Pattern.compile("\\s+");
+    private ContactEntry mContactEntry;
 
     public PhoneFavoriteSquareTileView(Context context, AttributeSet attrs) {
         super(context, attrs);
+
+        mHeightToWidthRatio = getResources().getFraction(
+                R.dimen.contact_tile_height_to_width_ratio, 1, 1);
     }
 
     @Override
@@ -54,7 +54,7 @@
     @Override
     protected int getApproximateImageSize() {
         // The picture is the full size of the tile (minus some padding, but we can be generous)
-        return mListener.getApproximateTileWidth();
+        return getWidth();
     }
 
     private void launchQuickContact() {
@@ -63,35 +63,34 @@
     }
 
     @Override
-    protected String getNameForView(String name) {
-        if (TextUtils.isEmpty(name)) return name;
-        final String[] tokens = NAME_TOKEN_SEPARATOR_PATTERN.split(name, 2);
-        if (tokens.length < 1) return name;
-        return tokens[0];
-    }
-
-    @Override
     public void loadFromContact(ContactEntry entry) {
         super.loadFromContact(entry);
         if (entry != null) {
-            final boolean contactIsFavorite = entry.isFavorite;
-            mSecondaryButton.setVisibility(contactIsFavorite ? GONE : VISIBLE);
-
-            if (contactIsFavorite) {
-                mStarView.setOnClickListener(new OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        launchQuickContact();
-                    }
-                });
-            } else {
-                mSecondaryButton.setOnClickListener(new OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        launchQuickContact();
-                    }
-                });
-            }
+            mSecondaryButton.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    launchQuickContact();
+                }
+            });
         }
+        mContactEntry = entry;
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        final int width = MeasureSpec.getSize(widthMeasureSpec);
+        final int height = (int) (mHeightToWidthRatio * width);
+        final int count = getChildCount();
+        for (int i = 0; i < count; i++) {
+            getChildAt(i).measure(
+                    MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
+                    MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
+                    );
+        }
+        setMeasuredDimension(width, height);
+    }
+
+    public ContactEntry getContactEntry() {
+        return mContactEntry;
     }
 }
diff --git a/src/com/android/dialer/list/PhoneFavoriteTileView.java b/src/com/android/dialer/list/PhoneFavoriteTileView.java
index ecf5616..862952d 100644
--- a/src/com/android/dialer/list/PhoneFavoriteTileView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteTileView.java
@@ -16,26 +16,19 @@
  */
 package com.android.dialer.list;
 
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
 import android.content.ClipData;
 import android.content.Context;
 import android.text.TextUtils;
 import android.util.AttributeSet;
-import android.util.Log;
-import android.view.GestureDetector;
-import android.view.MotionEvent;
 import android.view.View;
 import android.widget.ImageView;
 
+import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.MoreContactUtils;
+import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
 import com.android.contacts.common.list.ContactEntry;
 import com.android.contacts.common.list.ContactTileView;
 import com.android.dialer.R;
-import com.android.dialer.list.PhoneFavoritesTileAdapter.ContactTileRow;
-import com.android.dialer.list.PhoneFavoritesTileAdapter.ViewTypes;
 
 /**
  * A light version of the {@link com.android.contacts.common.list.ContactTileView} that is used in
@@ -49,71 +42,37 @@
     private static final String TAG = PhoneFavoriteTileView.class.getSimpleName();
     private static final boolean DEBUG = false;
 
-    /** Length of all animations in miniseconds. */
-    private int mAnimationDuration;
+    // These parameters instruct the photo manager to display the default image/letter at 70% of
+    // its normal size, and vertically offset upwards 14% towards the top of the letter tile, to
+    // make room for the contact name and number label at the bottom of the image.
+    private static final float DEFAULT_IMAGE_LETTER_OFFSET = -0.14f;
+    private static final float DEFAULT_IMAGE_LETTER_SCALE = 0.70f;
 
-    /** The view that holds the front layer of the favorite contact card. */
-    private View mFavoriteContactCard;
-    /** The view that holds the background layer of the removal dialogue. */
-    private View mRemovalDialogue;
-    /** Undo button for undoing favorite removal. */
-    private View mUndoRemovalButton;
-    /** The view that holds the list view row. */
-    protected ContactTileRow mParentRow;
-    /** The view that indicates whether the contact is a favorate. */
-    protected ImageView mStarView;
+    /** View that contains the transparent shadow that is overlaid on top of the contact image. */
+    private View mShadowOverlay;
 
     /** Users' most frequent phone number. */
     private String mPhoneNumberString;
 
-    /** Custom gesture detector.*/
-    protected GestureDetector mGestureDetector;
-
     // Dummy clip data object that is attached to drag shadows so that text views
     // don't crash with an NPE if the drag shadow is released in their bounds
     private static final ClipData EMPTY_CLIP_DATA = ClipData.newPlainText("", "");
 
     public PhoneFavoriteTileView(Context context, AttributeSet attrs) {
         super(context, attrs);
-        mAnimationDuration = context.getResources().getInteger(R.integer.fade_duration);
-    }
-
-    public ContactTileRow getParentRow() {
-        return mParentRow;
     }
 
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
-        mFavoriteContactCard = findViewById(com.android.dialer.R.id.contact_favorite_card);
-        mRemovalDialogue = findViewById(com.android.dialer.R.id.favorite_remove_dialogue);
-        mUndoRemovalButton = findViewById(com.android.dialer.R.id
-                .favorite_remove_undo_button);
-        mStarView = (ImageView) findViewById(com.android.dialer.R.id.contact_favorite_star);
-
-        mUndoRemovalButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                undoRemove();
-            }
-        });
+        mShadowOverlay = findViewById(R.id.shadow_overlay);
 
         setOnLongClickListener(new OnLongClickListener() {
             @Override
             public boolean onLongClick(View v) {
                 final PhoneFavoriteTileView view = (PhoneFavoriteTileView) v;
                 // NOTE The drag shadow is handled in the ListView.
-                if (view instanceof PhoneFavoriteRegularRowView) {
-                    final ContactTileRow parent = view.getParentRow();
-                    // If the view is regular row, start drag the row view.
-                    // Drag is not available for the item exceeds the PIN_LIMIT.
-                    if (parent.getRegularRowItemIndex() < PhoneFavoritesTileAdapter.PIN_LIMIT) {
-                        parent.startDrag(EMPTY_CLIP_DATA, new View.DragShadowBuilder(), null, 0);
-                    }
-                } else {
-                    // If the view is a tile view, start drag the tile.
-                    view.startDrag(EMPTY_CLIP_DATA, new View.DragShadowBuilder(), null, 0);
-                }
+                view.startDrag(EMPTY_CLIP_DATA, new View.DragShadowBuilder(), null, 0);
                 return true;
             }
         });
@@ -122,98 +81,25 @@
     @Override
     public void loadFromContact(ContactEntry entry) {
         super.loadFromContact(entry);
-        mPhoneNumberString = null; // ... in case we're reusing the view
+        // Set phone number to null in case we're reusing the view.
+        mPhoneNumberString = null;
         if (entry != null) {
-            // Grab the phone-number to call directly... see {@link onClick()}
+            // Grab the phone-number to call directly. See {@link onClick()}.
             mPhoneNumberString = entry.phoneNumber;
 
-            mStarView.setVisibility(entry.isFavorite ? VISIBLE : GONE);
             // If this is a blank entry, don't show anything.
-            // TODO krelease:Just hide the view for now. For this to truly look like an empty row
+            // TODO krelease: Just hide the view for now. For this to truly look like an empty row
             // the entire ContactTileRow needs to be hidden.
             if (entry == ContactEntry.BLANK_ENTRY) {
                 setVisibility(View.INVISIBLE);
             } else {
+                final ImageView starIcon = (ImageView) findViewById(R.id.contact_star_icon);
+                starIcon.setVisibility(entry.isFavorite ? View.VISIBLE : View.GONE);
                 setVisibility(View.VISIBLE);
             }
         }
     }
 
-    public void displayRemovalDialog() {
-        mRemovalDialogue.setVisibility(VISIBLE);
-        mRemovalDialogue.setAlpha(0f);
-        final ObjectAnimator fadeIn = ObjectAnimator.ofFloat(mRemovalDialogue, "alpha",
-                1.f).setDuration(mAnimationDuration);
-
-        fadeIn.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationStart(Animator animation) {
-                mParentRow.setHasTransientState(true);
-            };
-
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                mParentRow.setHasTransientState(false);
-            }
-        });
-        fadeIn.start();
-    }
-
-    /**
-     * Signals the user wants to undo removing the favorite contact.
-     */
-    public void undoRemove() {
-        // Makes the removal dialogue invisible.
-        mRemovalDialogue.setAlpha(0.0f);
-        mRemovalDialogue.setVisibility(GONE);
-
-        // Animates back the favorite contact card.
-        final ObjectAnimator fadeIn = ObjectAnimator.ofFloat(mFavoriteContactCard, "alpha", 1.f).
-                setDuration(mAnimationDuration);
-        final ObjectAnimator moveBack = ObjectAnimator.ofFloat(mFavoriteContactCard, "translationX",
-                0.f).setDuration(mAnimationDuration);
-
-        final AnimatorSet animSet = new AnimatorSet();
-
-        animSet.playTogether(fadeIn, moveBack);
-
-        animSet.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationStart(Animator animation) {
-                mParentRow.setHasTransientState(true);
-            }
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                if (mParentRow.getItemViewType() == ViewTypes.FREQUENT) {
-                    SwipeHelper.setSwipeable(mParentRow, true);
-                } else {
-                    SwipeHelper.setSwipeable(PhoneFavoriteTileView.this, true);
-                }
-                mParentRow.setHasTransientState(false);
-            }
-        });
-        animSet.start();
-        // Signals the PhoneFavoritesTileAdapter to undo the potential delete.
-        mParentRow.getTileAdapter().undoPotentialRemoveEntryIndex();
-    }
-
-    /**
-     * Sets up the favorite contact card.
-     */
-    public void setupFavoriteContactCard() {
-        if (mRemovalDialogue != null) {
-            mRemovalDialogue.setVisibility(GONE);
-            mRemovalDialogue.setAlpha(0.f);
-        }
-        mFavoriteContactCard.setAlpha(1.0f);
-        mFavoriteContactCard.setTranslationX(0.f);
-    }
-
-    @Override
-    protected void onAttachedToWindow() {
-        mParentRow = (ContactTileRow) getParent();
-    }
-
     @Override
     protected boolean isDarkTheme() {
         return false;
@@ -224,8 +110,9 @@
         return new OnClickListener() {
             @Override
             public void onClick(View v) {
-                // When the removal dialog is present, don't allow a click to call
-                if (mListener == null || mRemovalDialogue.isShown()) return;
+                if (mListener == null) {
+                    return;
+                }
                 if (TextUtils.isEmpty(mPhoneNumberString)) {
                     // Copy "superclass" implementation
                     mListener.onContactSelected(getLookupUri(), MoreContactUtils
@@ -240,4 +127,18 @@
             }
         };
     }
+
+    @Override
+    protected DefaultImageRequest getDefaultImageRequest(String displayName, String lookupKey) {
+        return new DefaultImageRequest(displayName, lookupKey, ContactPhotoManager.TYPE_DEFAULT,
+                DEFAULT_IMAGE_LETTER_SCALE, DEFAULT_IMAGE_LETTER_OFFSET, false);
+    }
+
+    @Override
+    protected void configureViewForImage(boolean isDefaultImage) {
+        // Hide the shadow overlay if the image is a default image (i.e. colored letter tile)
+        if (mShadowOverlay != null) {
+            mShadowOverlay.setVisibility(isDefaultImage ? View.GONE : View.VISIBLE);
+        }
+    }
 }
diff --git a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
index 3680753..c4ff0b0 100644
--- a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
+++ b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
@@ -15,7 +15,9 @@
  */
 package com.android.dialer.list;
 
-import android.animation.ObjectAnimator;
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.ComparisonChain;
+
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.Context;
@@ -28,9 +30,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 import android.util.LongSparseArray;
-import android.view.MotionEvent;
 import android.view.View;
-import android.view.ViewConfiguration;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
 import android.widget.FrameLayout;
@@ -41,11 +41,6 @@
 import com.android.contacts.common.list.ContactEntry;
 import com.android.contacts.common.list.ContactTileAdapter.DisplayType;
 import com.android.contacts.common.list.ContactTileView;
-import com.android.dialer.list.SwipeHelper.OnItemGestureListener;
-import com.android.dialer.list.SwipeHelper.SwipeHelperCallback;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ComparisonChain;
 
 import java.util.ArrayList;
 import java.util.Comparator;
@@ -55,16 +50,15 @@
 
 /**
  * Also allows for a configurable number of columns as well as a maximum row of tiled contacts.
- *
- * This adapter has been rewritten to only support a maximum of one row for favorites.
- *
  */
 public class PhoneFavoritesTileAdapter extends BaseAdapter implements
-        SwipeHelper.OnItemGestureListener, PhoneFavoriteListView.OnDragDropListener {
+        OnDragDropListener {
     private static final String TAG = PhoneFavoritesTileAdapter.class.getSimpleName();
     private static final boolean DEBUG = false;
 
-    public static final int ROW_LIMIT_DEFAULT = 1;
+    public static final int NO_ROW_LIMIT = -1;
+
+    public static final int ROW_LIMIT_DEFAULT = NO_ROW_LIMIT;
 
     private ContactTileView.Listener mListener;
     private OnDataSetChangedForAnimationListener mDataSetChangedListener;
@@ -82,20 +76,14 @@
     private int mDropEntryIndex = -1;
     /** New position of the temporarily entered contact in the cache. */
     private int mDragEnteredEntryIndex = -1;
-    /** Position of the contact pending removal. */
-    private int mPotentialRemoveEntryIndex = -1;
-    private long mIdToKeepInPlace = -1;
 
     private boolean mAwaitingRemove = false;
+    private boolean mDelayCursorUpdates = false;
 
     private ContactPhotoManager mPhotoManager;
     protected int mNumFrequents;
     protected int mNumStarred;
 
-    protected int mColumnCount;
-    private int mMaxTiledRows = ROW_LIMIT_DEFAULT;
-    private int mStarredIndex;
-
     protected int mIdIndex;
     protected int mLookupIndex;
     protected int mPhotoUriIndex;
@@ -107,11 +95,10 @@
     private int mPhoneNumberTypeIndex;
     private int mPhoneNumberLabelIndex;
     private int mIsDefaultNumberIndex;
+    private int mStarredIndex;
     protected int mPinnedIndex;
     protected int mContactIdIndex;
 
-    private final int mPaddingInPixels;
-
     /** Indicates whether a drag is in process. */
     private boolean mInDragging = false;
 
@@ -142,19 +129,14 @@
     };
 
     public PhoneFavoritesTileAdapter(Context context, ContactTileView.Listener listener,
-            OnDataSetChangedForAnimationListener dataSetChangedListener,
-            int numCols, int maxTiledRows) {
+            OnDataSetChangedForAnimationListener dataSetChangedListener) {
         mDataSetChangedListener = dataSetChangedListener;
         mListener = listener;
         mContext = context;
         mResources = context.getResources();
-        mColumnCount = numCols;
         mNumFrequents = 0;
-        mMaxTiledRows = maxTiledRows;
         mContactEntries = new ArrayList<ContactEntry>();
-        // Converting padding in dips to padding in pixels
-        mPaddingInPixels = mContext.getResources()
-                .getDimensionPixelSize(R.dimen.contact_tile_divider_padding);
+
 
         bindColumnIndices();
     }
@@ -163,20 +145,13 @@
         mPhotoManager = photoLoader;
     }
 
-    public void setMaxRowCount(int maxRows) {
-        mMaxTiledRows = maxRows;
-    }
-
-    public void setColumnCount(int columnCount) {
-        mColumnCount = columnCount;
-    }
-
     /**
      * Indicates whether a drag is in process.
      *
      * @param inDragging Boolean variable indicating whether there is a drag in process.
      */
     public void setInDragging(boolean inDragging) {
+        mDelayCursorUpdates = inDragging;
         mInDragging = inDragging;
     }
 
@@ -223,7 +198,7 @@
      * Else use {@link ContactTileLoaderFactory}
      */
     public void setContactCursor(Cursor cursor) {
-        if (cursor != null && !cursor.isClosed()) {
+        if (!mDelayCursorUpdates && cursor != null && !cursor.isClosed()) {
             mNumStarred = getNumStarredContacts(cursor);
             if (mAwaitingRemove) {
                 mDataSetChangedListener.cacheOffsetsForDatasetChange();
@@ -234,12 +209,7 @@
             // cause a refresh of any views that rely on this data
             notifyDataSetChanged();
             // about to start redraw
-            if (mIdToKeepInPlace != -1) {
-                mDataSetChangedListener.onDataSetChangedForAnimation(mIdToKeepInPlace);
-            } else {
-                mDataSetChangedListener.onDataSetChangedForAnimation();
-            }
-            mIdToKeepInPlace = -1;
+            mDataSetChangedListener.onDataSetChangedForAnimation();
         }
     }
 
@@ -295,7 +265,8 @@
             contact.name = (!TextUtils.isEmpty(name)) ? name :
                     mResources.getString(R.string.missing_name);
             contact.photoUri = (photoUri != null ? Uri.parse(photoUri) : null);
-            contact.lookupKey = ContentUris.withAppendedId(
+            contact.lookupKey = lookupKey;
+            contact.lookupUri = ContentUris.withAppendedId(
                     Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, lookupKey), id);
             contact.isFavorite = isStarred;
             contact.isDefaultNumber = isDefaultNumber;
@@ -342,17 +313,6 @@
     }
 
     /**
-     * Loads a contact from the cached list.
-     *
-     * @param position Position of the Contact.
-     * @return Contact at the requested position.
-     */
-    protected ContactEntry getContactEntryFromCache(int position) {
-        if (mContactEntries.size() <= position) return null;
-        return mContactEntries.get(position);
-    }
-
-    /**
      * Returns the number of frequents that will be displayed in the list.
      */
     public int getNumFrequents() {
@@ -361,46 +321,11 @@
 
     @Override
     public int getCount() {
-        if (mContactEntries == null || mContactEntries.isEmpty()) {
+        if (mContactEntries == null) {
             return 0;
         }
 
-        int total = mContactEntries.size();
-        // The number of contacts that don't show up as tiles
-        final int nonTiledRows = Math.max(0, total - getMaxContactsInTiles());
-        // The number of tiled rows
-        final int tiledRows = getRowCount(total - nonTiledRows);
-        return nonTiledRows + tiledRows;
-    }
-
-    public int getMaxTiledRows() {
-        return mMaxTiledRows;
-    }
-
-    /**
-     * Returns the number of rows required to show the provided number of entries
-     * with the current number of columns.
-     */
-    protected int getRowCount(int entryCount) {
-        if (entryCount == 0) return 0;
-        final int nonLimitedRows = ((entryCount - 1) / mColumnCount) + 1;
-        return Math.min(mMaxTiledRows, nonLimitedRows);
-    }
-
-    private int getMaxContactsInTiles() {
-        return mColumnCount * mMaxTiledRows;
-    }
-
-    public int getRowIndex(int entryIndex) {
-        if (entryIndex < mMaxTiledRows * mColumnCount) {
-            return entryIndex / mColumnCount;
-        } else {
-            return entryIndex - mMaxTiledRows * mColumnCount + mMaxTiledRows;
-        }
-    }
-
-    public int getColumnCount() {
-        return mColumnCount;
+        return mContactEntries.size();
     }
 
     /**
@@ -408,44 +333,8 @@
      * on the row for the given position.
      */
     @Override
-    public ArrayList<ContactEntry> getItem(int position) {
-        ArrayList<ContactEntry> resultList = new ArrayList<ContactEntry>(mColumnCount);
-
-        final int entryIndex = getFirstContactEntryIndexForPosition(position);
-
-        final int viewType = getItemViewType(position);
-
-        final int columnCount;
-        if (viewType == ViewTypes.TOP) {
-            columnCount = mColumnCount;
-        } else {
-            columnCount = 1;
-        }
-
-        for (int i = 0; i < columnCount; i++) {
-            final ContactEntry entry = getContactEntryFromCache(entryIndex + i);
-            if (entry == null) break; // less than mColumnCount contacts
-            resultList.add(entry);
-        }
-
-        return resultList;
-    }
-
-    /*
-     * Given a position in the adapter, returns the index of the first contact entry that is to be
-     * in that row.
-     */
-    private int getFirstContactEntryIndexForPosition(int position) {
-        final int maxContactsInTiles = getMaxContactsInTiles();
-        if (position < getRowCount(maxContactsInTiles)) {
-            // Contacts that appear as tiles
-            return position * mColumnCount;
-        } else {
-            // Contacts that appear as rows
-            // The actual position of the contact in the cursor is simply total the number of
-            // tiled contacts + the given position
-            return maxContactsInTiles + position - mMaxTiledRows;
-        }
+    public ContactEntry getItem(int position) {
+        return mContactEntries.get(position);
     }
 
     /**
@@ -457,18 +346,7 @@
      */
     @Override
     public long getItemId(int position) {
-        if (getItemViewType(position) == ViewTypes.FREQUENT) {
-            return getAdjustedItemId(getItem(position).get(0).id);
-        } else {
-            return position;
-        }
-    }
-
-    /**
-     * Calculates the stable itemId for a particular entry based on its contactID
-     */
-    public long getAdjustedItemId(long id) {
-        return mMaxTiledRows + id;
+        return getItem(position).id;
     }
 
     @Override
@@ -477,9 +355,7 @@
     }
 
     @Override
-
     public boolean areAllItemsEnabled() {
-        // No dividers, so all items are enabled.
         return true;
     }
 
@@ -504,34 +380,22 @@
 
         int itemViewType = getItemViewType(position);
 
-        ContactTileRow contactTileRowView = null;
+        PhoneFavoriteTileView tileView = null;
 
-        if (convertView instanceof  ContactTileRow) {
-            contactTileRowView  = (ContactTileRow) convertView;
+        if (convertView instanceof PhoneFavoriteTileView) {
+            tileView  = (PhoneFavoriteTileView) convertView;
         }
 
-        ArrayList<ContactEntry> contactList = getItem(position);
-
-        if (contactTileRowView == null) {
-            // Creating new row if needed
-            contactTileRowView = new ContactTileRow(mContext, itemViewType, position);
+        if (tileView == null) {
+            tileView = (PhoneFavoriteTileView) View.inflate(mContext,
+                    R.layout.phone_favorite_tile_view, null);
         }
-
-        contactTileRowView.configureRow(contactList, position, position == getCount() - 1);
-
-        return contactTileRowView;
+        tileView.setPhotoManager(mPhotoManager);
+        tileView.setListener(mListener);
+        tileView.loadFromContact(getItem(position));
+        return tileView;
     }
 
-    private int getLayoutResourceId(int viewType) {
-        switch (viewType) {
-            case ViewTypes.FREQUENT:
-                return R.layout.phone_favorite_regular_row_view;
-            case ViewTypes.TOP:
-                return R.layout.phone_favorite_tile_view;
-            default:
-                throw new IllegalArgumentException("Unrecognized viewType " + viewType);
-        }
-    }
     @Override
     public int getViewTypeCount() {
         return ViewTypes.COUNT;
@@ -539,11 +403,7 @@
 
     @Override
     public int getItemViewType(int position) {
-        if (position < getRowCount(getMaxContactsInTiles())) {
-            return ViewTypes.TOP;
-        } else {
-            return ViewTypes.FREQUENT;
-        }
+        return ViewTypes.TILE;
     }
 
     /**
@@ -601,7 +461,6 @@
                 // populated with the dragged ContactEntry at the correct spot.
                 mDropEntryIndex = mDragEnteredEntryIndex;
                 mContactEntries.set(mDropEntryIndex, mDraggedEntry);
-                mIdToKeepInPlace = getAdjustedItemId(mDraggedEntry.id);
                 mDataSetChangedListener.cacheOffsetsForDatasetChange();
                 changed = true;
             } else if (isIndexInBound(mDraggedEntryIndex)) {
@@ -637,44 +496,6 @@
     }
 
     /**
-     * Sets an item to for pending removal. If the user does not click the undo button, the item
-     * will be removed at the next interaction.
-     *
-     * @param index Index of the item to be removed.
-     */
-    public void setPotentialRemoveEntryIndex(int index) {
-        mPotentialRemoveEntryIndex = index;
-    }
-
-    /**
-     * Removes a contact entry from the list.
-     *
-     * @return True is an item is removed. False is there is no item to be removed.
-     */
-    public boolean removePendingContactEntry() {
-        boolean removed = false;
-        if (isIndexInBound(mPotentialRemoveEntryIndex)) {
-            final ContactEntry entry = mContactEntries.get(mPotentialRemoveEntryIndex);
-            unstarAndUnpinContact(entry.lookupKey);
-            removed = true;
-            mAwaitingRemove = true;
-        }
-        cleanTempVariables();
-        return removed;
-    }
-
-    /**
-     * Resets the item for pending removal.
-     */
-    public void undoPotentialRemoveEntryIndex() {
-        mPotentialRemoveEntryIndex = -1;
-    }
-
-    public boolean hasPotentialRemoveEntryIndex() {
-        return isIndexInBound(mPotentialRemoveEntryIndex);
-    }
-
-    /**
      * Clears all temporary variables at a new interaction.
      */
     public void cleanTempVariables() {
@@ -682,387 +503,12 @@
         mDropEntryIndex = -1;
         mDragEnteredEntryIndex = -1;
         mDraggedEntry = null;
-        mPotentialRemoveEntryIndex = -1;
     }
 
     /**
-     * Acts as a row item composed of {@link ContactTileView}
-     *
-     */
-    public class ContactTileRow extends FrameLayout implements SwipeHelperCallback {
-        public static final int CONTACT_ENTRY_INDEX_TAG = R.id.contact_entry_index_tag;
-
-        private int mItemViewType;
-        private int mLayoutResId;
-        private final int mRowPaddingStart;
-        private final int mRowPaddingEnd;
-        private final int mRowPaddingTop;
-        private final int mRowPaddingBottom;
-        private int mPosition;
-        private SwipeHelper mSwipeHelper;
-        private OnItemGestureListener mOnItemSwipeListener;
-
-        public ContactTileRow(Context context, int itemViewType, int position) {
-            super(context);
-            mItemViewType = itemViewType;
-            mLayoutResId = getLayoutResourceId(mItemViewType);
-            mPosition = position;
-
-            final Resources resources = mContext.getResources();
-
-            if (mItemViewType == ViewTypes.TOP) {
-                // For tiled views, we still want padding to be set on the ContactTileRow.
-                // Otherwise the padding would be set around each of the tiles, which we don't want
-                mRowPaddingTop = resources.getDimensionPixelSize(
-                        R.dimen.favorites_row_top_padding);
-                mRowPaddingBottom = resources.getDimensionPixelSize(
-                        R.dimen.favorites_row_bottom_padding);
-                mRowPaddingStart = resources.getDimensionPixelSize(
-                        R.dimen.favorites_row_start_padding);
-                mRowPaddingEnd = resources.getDimensionPixelSize(
-                        R.dimen.favorites_row_end_padding);
-
-                setBackgroundResource(R.drawable.bottom_border_background);
-            } else {
-                // For row views, padding is set on the view itself.
-                mRowPaddingTop = 0;
-                mRowPaddingBottom = 0;
-                mRowPaddingStart = 0;
-                mRowPaddingEnd = 0;
-            }
-
-            setPaddingRelative(mRowPaddingStart, mRowPaddingTop, mRowPaddingEnd,
-                    mRowPaddingBottom);
-
-            // Remove row (but not children) from accessibility node tree.
-            setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
-
-            if (mItemViewType == ViewTypes.FREQUENT) {
-                // ListView handles swiping for this item
-                SwipeHelper.setSwipeable(this, true);
-            } else if (mItemViewType == ViewTypes.TOP) {
-                // The contact tile row has its own swipe helpers, that makes each individual
-                // tile swipeable.
-                final float densityScale = getResources().getDisplayMetrics().density;
-                final float pagingTouchSlop = ViewConfiguration.get(context)
-                        .getScaledPagingTouchSlop();
-                mSwipeHelper = new SwipeHelper(context, SwipeHelper.X, this, densityScale,
-                        pagingTouchSlop);
-                // Increase swipe thresholds for square tiles since they are relatively small.
-                mSwipeHelper.setChildSwipedFarEnoughFactor(0.9f);
-                mSwipeHelper.setChildSwipedFastEnoughFactor(0.1f);
-                mOnItemSwipeListener = PhoneFavoritesTileAdapter.this;
-            }
-        }
-
-        /**
-         * Configures the row to add {@link ContactEntry}s information to the views
-         */
-        public void configureRow(ArrayList<ContactEntry> list, int position, boolean isLastRow) {
-            int columnCount = mItemViewType == ViewTypes.FREQUENT ? 1 : mColumnCount;
-            mPosition = position;
-
-            // Adding tiles to row and filling in contact information
-            for (int columnCounter = 0; columnCounter < columnCount; columnCounter++) {
-                ContactEntry entry =
-                        columnCounter < list.size() ? list.get(columnCounter) : null;
-                addTileFromEntry(entry, columnCounter, isLastRow);
-            }
-            if (columnCount == 1) {
-                if (list.get(0) == ContactEntry.BLANK_ENTRY) {
-                    setVisibility(View.INVISIBLE);
-                } else {
-                    setVisibility(View.VISIBLE);
-                }
-            }
-        }
-
-        private void addTileFromEntry(ContactEntry entry, int childIndex, boolean isLastRow) {
-            final PhoneFavoriteTileView contactTile;
-
-            if (getChildCount() <= childIndex) {
-
-                contactTile = (PhoneFavoriteTileView) inflate(mContext, mLayoutResId, null);
-                // Note: the layoutparam set here is only actually used for FREQUENT.
-                // We override onMeasure() for STARRED and we don't care the layout param there.
-                final Resources resources = mContext.getResources();
-                FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
-                        ViewGroup.LayoutParams.WRAP_CONTENT,
-                        ViewGroup.LayoutParams.WRAP_CONTENT);
-
-                params.setMargins(
-                        resources.getDimensionPixelSize(R.dimen.detail_item_side_margin), 0,
-                        resources.getDimensionPixelSize(R.dimen.detail_item_side_margin), 0);
-                contactTile.setLayoutParams(params);
-                contactTile.setPhotoManager(mPhotoManager);
-                contactTile.setListener(mListener);
-                addView(contactTile);
-            } else {
-                contactTile = (PhoneFavoriteTileView) getChildAt(childIndex);
-            }
-            contactTile.loadFromContact(entry);
-
-            int entryIndex = -1;
-            switch (mItemViewType) {
-                case ViewTypes.TOP:
-                    // Setting divider visibilities
-                    contactTile.setPaddingRelative(0, 0,
-                            childIndex >= mColumnCount - 1 ? 0 : mPaddingInPixels, 0);
-                    entryIndex = getFirstContactEntryIndexForPosition(mPosition) + childIndex;
-                    SwipeHelper.setSwipeable(contactTile, false);
-                    break;
-                case ViewTypes.FREQUENT:
-                    contactTile.setHorizontalDividerVisibility(
-                            isLastRow ? View.GONE : View.VISIBLE);
-                    entryIndex = getFirstContactEntryIndexForPosition(mPosition);
-                    SwipeHelper.setSwipeable(this, true);
-                    break;
-                default:
-                    break;
-            }
-            // tag the tile with the index of the contact entry it is associated with
-            if (entryIndex != -1) {
-                contactTile.setTag(CONTACT_ENTRY_INDEX_TAG, entryIndex);
-            }
-            contactTile.setupFavoriteContactCard();
-        }
-
-        @Override
-        protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
-            switch (mItemViewType) {
-                case ViewTypes.TOP:
-                    onLayoutForTiles();
-                    return;
-                default:
-                    super.onLayout(changed, left, top, right, bottom);
-                    return;
-            }
-        }
-
-        private void onLayoutForTiles() {
-            final int count = getChildCount();
-
-            // Just line up children horizontally.
-            int childLeft = getPaddingStart();
-            for (int i = 0; i < count; i++) {
-                final View child = getChildAt(i);
-
-                // Note MeasuredWidth includes the padding.
-                final int childWidth = child.getMeasuredWidth();
-                child.layout(childLeft, getPaddingTop(), childLeft + childWidth,
-                        getPaddingTop() + child.getMeasuredHeight());
-                childLeft += childWidth;
-            }
-        }
-
-        @Override
-        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-            switch (mItemViewType) {
-                case ViewTypes.TOP:
-                    onMeasureForTiles(widthMeasureSpec);
-                    return;
-                default:
-                    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-                    return;
-            }
-        }
-
-        private void onMeasureForTiles(int widthMeasureSpec) {
-            final int width = MeasureSpec.getSize(widthMeasureSpec);
-
-            final int childCount = getChildCount();
-            if (childCount == 0) {
-                // Just in case...
-                setMeasuredDimension(width, 0);
-                return;
-            }
-
-            // 1. Calculate image size.
-            //      = ([total width] - [total padding]) / [child count]
-            //
-            // 2. Set it to width/height of each children.
-            //    If we have a remainder, some tiles will have 1 pixel larger width than its height.
-            //
-            // 3. Set the dimensions of itself.
-            //    Let width = given width.
-            //    Let height = image size + bottom paddding.
-
-            final int totalPaddingsInPixels = (mColumnCount - 1) * mPaddingInPixels
-                    + mRowPaddingStart + mRowPaddingEnd;
-
-            // Preferred width / height for images (excluding the padding).
-            // The actual width may be 1 pixel larger than this if we have a remainder.
-            final int imageSize = (width - totalPaddingsInPixels) / mColumnCount;
-            final int remainder = width - (imageSize * mColumnCount) - totalPaddingsInPixels;
-
-            for (int i = 0; i < childCount; i++) {
-                final View child = getChildAt(i);
-                final int childWidth = imageSize + child.getPaddingRight()
-                        // Compensate for the remainder
-                        + (i < remainder ? 1 : 0);
-                final int childHeight = imageSize;
-                child.measure(
-                        MeasureSpec.makeMeasureSpec(childWidth, MeasureSpec.EXACTLY),
-                        MeasureSpec.makeMeasureSpec(childHeight, MeasureSpec.EXACTLY)
-                        );
-            }
-            setMeasuredDimension(width, imageSize + getPaddingTop() + getPaddingBottom());
-        }
-
-        /**
-         * Gets the index of the item at the specified coordinates.
-         *
-         * @param itemX X-coordinate of the selected item.
-         * @param itemY Y-coordinate of the selected item.
-         * @return Index of the selected item in the cached array.
-         */
-        public int getItemIndex(float itemX, float itemY) {
-            if (mPosition < mMaxTiledRows) {
-                if (DEBUG) {
-                    Log.v(TAG, String.valueOf(itemX) + " " + String.valueOf(itemY));
-                }
-                for (int i = 0; i < getChildCount(); ++i) {
-                    /** If the row contains multiple tiles, checks each tile to see if the point
-                     * is contained in the tile. */
-                    final View child = getChildAt(i);
-                    /** The coordinates passed in are based on the ListView,
-                     * translate for each child first */
-                    final int xInListView = child.getLeft() + getLeft();
-                    final int yInListView = child.getTop() + getTop();
-                    final int distanceX = (int) itemX - xInListView;
-                    final int distanceY = (int) itemY - yInListView;
-                    if ((distanceX > 0 && distanceX < child.getWidth()) &&
-                            (distanceY > 0 && distanceY < child.getHeight())) {
-                        /** If the point is contained in the rectangle, computes the index of the
-                         * item in the cached array. */
-                        return i + (mPosition) * mColumnCount;
-                    }
-                }
-            } else {
-                /** If the selected item is one of the rows, compute the index. */
-                return getRegularRowItemIndex();
-            }
-            return -1;
-        }
-
-        /**
-         * Gets the index of the regular row item.
-         *
-         * @return Index of the selected item in the cached array.
-         */
-        public int getRegularRowItemIndex() {
-            return (mPosition - mMaxTiledRows) + mColumnCount * mMaxTiledRows;
-        }
-
-        public PhoneFavoritesTileAdapter getTileAdapter() {
-            return PhoneFavoritesTileAdapter.this;
-        }
-
-        public int getPosition() {
-            return mPosition;
-        }
-
-        /**
-         * Find the view under the pointer.
-         */
-        public View getViewAtPosition(int x, int y) {
-            // find the view under the pointer, accounting for GONE views
-            final int count = getChildCount();
-            View view;
-            for (int childIdx = 0; childIdx < count; childIdx++) {
-                view = getChildAt(childIdx);
-                if (x >= view.getLeft() && x <= view.getRight()) {
-                    return view;
-                }
-            }
-            return null;
-        }
-
-        @Override
-        public View getChildAtPosition(MotionEvent ev) {
-            final View view = getViewAtPosition((int) ev.getX(), (int) ev.getY());
-            if (view != null &&
-                    SwipeHelper.isSwipeable(view) &&
-                    view.getVisibility() != GONE) {
-                // If this view is swipable, then return it. If not, because the removal
-                // dialog is currently showing, then return a null view, which will simply
-                // be ignored by the swipe helper.
-                return view;
-            }
-            return null;
-        }
-
-        @Override
-        public View getChildContentView(View v) {
-            return v.findViewById(R.id.contact_favorite_card);
-        }
-
-        @Override
-        public void onScroll() {}
-
-        @Override
-        public boolean canChildBeDismissed(View v) {
-            return true;
-        }
-
-        @Override
-        public void onBeginDrag(View v) {
-            removePendingContactEntry();
-            final int index = indexOfChild(v);
-
-            /*
-            if (index > 0) {
-                detachViewFromParent(index);
-                attachViewToParent(v, 0, v.getLayoutParams());
-            }*/
-
-            // We do this so the underlying ScrollView knows that it won't get
-            // the chance to intercept events anymore
-            requestDisallowInterceptTouchEvent(true);
-        }
-
-        @Override
-        public void onChildDismissed(View v) {
-            if (v != null) {
-                if (mOnItemSwipeListener != null) {
-                    mOnItemSwipeListener.onSwipe(v);
-                }
-            }
-        }
-
-        @Override
-        public void onDragCancelled(View v) {}
-
-        @Override
-        public boolean onInterceptTouchEvent(MotionEvent ev) {
-            if (mSwipeHelper != null && isSwipeEnabled()) {
-                return mSwipeHelper.onInterceptTouchEvent(ev) || super.onInterceptTouchEvent(ev);
-            } else {
-                return super.onInterceptTouchEvent(ev);
-            }
-        }
-
-        @Override
-        public boolean onTouchEvent(MotionEvent ev) {
-            if (mSwipeHelper != null && isSwipeEnabled()) {
-                return mSwipeHelper.onTouchEvent(ev) || super.onTouchEvent(ev);
-            } else {
-                return super.onTouchEvent(ev);
-            }
-        }
-
-        public int getItemViewType() {
-            return mItemViewType;
-        }
-
-        public void setOnItemSwipeListener(OnItemGestureListener listener) {
-            mOnItemSwipeListener = listener;
-        }
-    }
-
-    /**
-     * Used when a contact is swiped away. This will both unstar and set pinned position of the
-     * contact to PinnedPosition.DEMOTED so that it doesn't show up anymore in the favorites list.
+     * Used when a contact is removed from speeddial. This will both unstar and set pinned position
+     * of the contact to PinnedPosition.DEMOTED so that it doesn't show up anymore in the favorites
+     * list.
      */
     private void unstarAndUnpinContact(Uri contactUri) {
         final ContentValues values = new ContentValues(2);
@@ -1158,55 +604,50 @@
     }
 
     protected static class ViewTypes {
-        public static final int FREQUENT = 0;
-        public static final int TOP = 1;
-        public static final int COUNT = 2;
+        public static final int TILE = 0;
+        public static final int COUNT = 1;
     }
 
     @Override
-    public void onSwipe(View view) {
-        final PhoneFavoriteTileView tileView = (PhoneFavoriteTileView) view.findViewById(
-                R.id.contact_tile);
-        // When the view is in the removal dialog, it should no longer be swipeable
-        SwipeHelper.setSwipeable(view, false);
-        tileView.displayRemovalDialog();
-
-        final Integer entryIndex = (Integer) tileView.getTag(
-                ContactTileRow.CONTACT_ENTRY_INDEX_TAG);
-
-        setPotentialRemoveEntryIndex(entryIndex);
-    }
-
-    @Override
-    public void onTouch() {
-        removePendingContactEntry();
-        return;
-    }
-
-    @Override
-    public boolean isSwipeEnabled() {
-        return !mAwaitingRemove;
-    }
-
-    @Override
-    public void onDragStarted(int itemIndex) {
+    public void onDragStarted(int x, int y, PhoneFavoriteSquareTileView view) {
         setInDragging(true);
+        final int itemIndex = mContactEntries.indexOf(view.getContactEntry());
         popContactEntry(itemIndex);
     }
 
     @Override
-    public void onDragHovered(int itemIndex) {
+    public void onDragHovered(int x, int y, PhoneFavoriteSquareTileView view) {
+        if (view == null) {
+            // The user is hovering over a view that is not a contact tile, no need to do
+            // anything here.
+            return;
+        }
+        final int itemIndex = mContactEntries.indexOf(view.getContactEntry());
         if (mInDragging &&
                 mDragEnteredEntryIndex != itemIndex &&
                 isIndexInBound(itemIndex) &&
-                itemIndex < PIN_LIMIT) {
+                itemIndex < PIN_LIMIT &&
+                itemIndex >= 0) {
             markDropArea(itemIndex);
         }
     }
 
     @Override
-    public void onDragFinished() {
+    public void onDragFinished(int x, int y) {
         setInDragging(false);
-        handleDrop();
+        // A contact has been dragged to the RemoveView in order to be unstarred,  so simply wait
+        // for the new contact cursor which will cause the UI to be refreshed without the unstarred
+        // contact.
+        if (!mAwaitingRemove) {
+            handleDrop();
+        }
+    }
+
+    @Override
+    public void onDroppedOnRemove() {
+        if (mDraggedEntry != null) {
+            unstarAndUnpinContact(mDraggedEntry.lookupUri);
+            mAwaitingRemove = true;
+        }
     }
 }
diff --git a/src/com/android/dialer/list/RemoveView.java b/src/com/android/dialer/list/RemoveView.java
new file mode 100644
index 0000000..ae358fc
--- /dev/null
+++ b/src/com/android/dialer/list/RemoveView.java
@@ -0,0 +1,91 @@
+package com.android.dialer.list;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.DragEvent;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.android.dialer.R;
+
+public class RemoveView extends FrameLayout {
+
+    DragDropController mDragDropController;
+    TextView mRemoveText;
+    ImageView mRemoveIcon;
+    int mUnhighlightedColor;
+    int mHighlightedColor;
+    Drawable mRemoveDrawable;
+    Drawable mRemoveHighlightedDrawable;
+
+    public RemoveView(Context context) {
+      super(context);
+    }
+
+    public RemoveView(Context context, AttributeSet attrs) {
+        this(context, attrs, -1);
+    }
+
+    public RemoveView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        mRemoveText = (TextView) findViewById(R.id.remove_view_text);
+        mRemoveIcon = (ImageView) findViewById(R.id.remove_view_icon);
+        final Resources r = getResources();
+        mUnhighlightedColor = r.getColor(R.color.remove_text_color);
+        mHighlightedColor = r.getColor(R.color.remove_highlighted_text_color);
+        mRemoveDrawable = r.getDrawable(R.drawable.ic_remove);
+        mRemoveHighlightedDrawable = r.getDrawable(R.drawable.ic_remove_highlight);
+    }
+
+    public void setDragDropController(DragDropController controller) {
+        mDragDropController = controller;
+    }
+
+    @Override
+    public boolean onDragEvent(DragEvent event) {
+        final int action = event.getAction();
+        switch (action) {
+            case DragEvent.ACTION_DRAG_ENTERED:
+                setAppearanceHighlighted();
+                break;
+            case DragEvent.ACTION_DRAG_EXITED:
+                setAppearanceNormal();
+                break;
+            case DragEvent.ACTION_DRAG_LOCATION:
+                if (mDragDropController != null) {
+                    mDragDropController.handleDragHovered(this, (int) event.getX(),
+                            (int) event.getY());
+                }
+                break;
+            case DragEvent.ACTION_DROP:
+                if (mDragDropController != null) {
+                    mDragDropController.handleDragFinished((int) event.getX(), (int) event.getY(),
+                            true);
+                }
+                setAppearanceNormal();
+                break;
+        }
+        return true;
+    }
+
+    private void setAppearanceNormal() {
+        mRemoveText.setTextColor(mUnhighlightedColor);
+        mRemoveIcon.setImageDrawable(mRemoveDrawable);
+        invalidate();
+    }
+
+    private void setAppearanceHighlighted() {
+        mRemoveText.setTextColor(mHighlightedColor);
+        mRemoveIcon.setImageDrawable(mRemoveHighlightedDrawable);
+        invalidate();
+    }
+}
diff --git a/src/com/android/dialer/list/SearchFragment.java b/src/com/android/dialer/list/SearchFragment.java
index 006729b..ab76fdc 100644
--- a/src/com/android/dialer/list/SearchFragment.java
+++ b/src/com/android/dialer/list/SearchFragment.java
@@ -16,11 +16,12 @@
 package com.android.dialer.list;
 
 import android.app.Activity;
-import android.content.ActivityNotFoundException;
 import android.content.Intent;
+import android.text.TextUtils;
+import android.view.View;
 import android.widget.AbsListView;
 import android.widget.AbsListView.OnScrollListener;
-import android.widget.Toast;
+import android.widget.ListView;
 
 import com.android.contacts.common.list.ContactEntryListAdapter;
 import com.android.contacts.common.list.ContactListItemView;
@@ -28,20 +29,27 @@
 import com.android.contacts.common.list.PhoneNumberPickerFragment;
 import com.android.dialer.DialtactsActivity;
 import com.android.dialer.R;
-import com.android.dialer.dialpad.DialpadFragment;
 import com.android.dialer.list.OnListFragmentScrolledListener;
+import com.android.dialer.util.DialerUtils;
 
 public class SearchFragment extends PhoneNumberPickerFragment {
 
     private OnListFragmentScrolledListener mActivityScrollListener;
 
+    /*
+     * Stores the untouched user-entered string that is used to populate the add to contacts
+     * intent.
+     */
+    private String mAddToContactNumber;
+    private int mActionBarHeight;
+
     @Override
     public void onAttach(Activity activity) {
         super.onAttach(activity);
 
         setQuickContactEnabled(true);
         setDarkTheme(false);
-        setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(true /* opposite */));
+        setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(false /* opposite */));
         setUseCallableUri(true);
 
         try {
@@ -58,7 +66,19 @@
         if (isSearchMode()) {
             getAdapter().setHasHeader(0, false);
         }
-        getListView().setOnScrollListener(new OnScrollListener() {
+
+        mActionBarHeight = ((DialtactsActivity) getActivity()).getActionBarHeight();
+
+        final View parentView = getView();
+        parentView.setPaddingRelative(
+                parentView.getPaddingStart(),
+                mActionBarHeight,
+                parentView.getPaddingEnd(),
+                parentView.getPaddingBottom());
+
+        final ListView listView = getListView();
+
+        listView.setOnScrollListener(new OnScrollListener() {
             @Override
             public void onScrollStateChanged(AbsListView view, int scrollState) {
                 mActivityScrollListener.onListFragmentScrollStateChange(scrollState);
@@ -69,6 +89,10 @@
                     int totalItemCount) {
             }
         });
+
+        if (!getActivity().getActionBar().isShowing()) {
+            parentView.setTranslationY(-mActionBarHeight);
+        }
     }
 
     @Override
@@ -81,6 +105,10 @@
         }
     }
 
+    public void setAddToContactNumber(String addToContactNumber) {
+        mAddToContactNumber = addToContactNumber;
+    }
+
     @Override
     protected ContactEntryListAdapter createListAdapter() {
         DialerPhoneNumberListAdapter adapter = new DialerPhoneNumberListAdapter(getActivity());
@@ -103,19 +131,11 @@
                 listener.onCallNumberDirectly(getQueryString());
             }
         } else if (shortcutType == DialerPhoneNumberListAdapter.SHORTCUT_ADD_NUMBER_TO_CONTACTS) {
-            final String number = adapter.getFormattedQueryString();
+            final String number = TextUtils.isEmpty(mAddToContactNumber) ?
+                    adapter.getFormattedQueryString() : mAddToContactNumber;
             final Intent intent = DialtactsActivity.getAddNumberToContactIntent(number);
-            startActivityWithErrorToast(intent);
-        }
-    }
-
-    private void startActivityWithErrorToast(Intent intent) {
-        try {
-            startActivity(intent);
-        } catch (ActivityNotFoundException e) {
-            Toast toast = Toast.makeText(getActivity(), R.string.add_contact_not_available,
-                    Toast.LENGTH_SHORT);
-            toast.show();
+            DialerUtils.startActivityWithErrorToast(getActivity(), intent,
+                    R.string.add_contact_not_available);
         }
     }
 }
diff --git a/src/com/android/dialer/list/ShortcutCardsAdapter.java b/src/com/android/dialer/list/ShortcutCardsAdapter.java
new file mode 100644
index 0000000..8a1f64c
--- /dev/null
+++ b/src/com/android/dialer/list/ShortcutCardsAdapter.java
@@ -0,0 +1,319 @@
+/*
+ * Copyright (C) 2011 Google Inc.
+ * Licensed to 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.
+ */
+package com.android.dialer.list;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.database.DataSetObserver;
+import android.graphics.Rect;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewConfiguration;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.FrameLayout;
+
+import com.android.dialer.R;
+import com.android.dialer.calllog.CallLogAdapter;
+import com.android.dialer.calllog.CallLogNotificationsHelper;
+import com.android.dialer.calllog.CallLogQueryHandler;
+import com.android.dialer.list.SwipeHelper.OnItemGestureListener;
+import com.android.dialer.list.SwipeHelper.SwipeHelperCallback;
+
+/**
+ * An adapter that displays call shortcuts from {@link com.android.dialer.calllog.CallLogAdapter}
+ * in the form of cards.
+ */
+public class ShortcutCardsAdapter extends BaseAdapter {
+
+    private class CustomDataSetObserver extends DataSetObserver {
+        @Override
+        public void onChanged() {
+            notifyDataSetChanged();
+        }
+    }
+
+    private static final String TAG = ShortcutCardsAdapter.class.getSimpleName();
+
+    private final CallLogAdapter mCallLogAdapter;
+    private final ListsFragment mFragment;
+
+    private final int mCallLogPadding;
+
+    private final Context mContext;
+
+    private final DataSetObserver mObserver;
+
+    private final CallLogQueryHandler mCallLogQueryHandler;
+
+    private final OnItemGestureListener mCallLogOnItemSwipeListener =
+            new OnItemGestureListener() {
+        @Override
+        public void onSwipe(View view) {
+            mCallLogQueryHandler.markNewCallsAsOld();
+            mCallLogQueryHandler.markNewVoicemailsAsOld();
+            CallLogNotificationsHelper.removeMissedCallNotifications();
+            CallLogNotificationsHelper.updateVoicemailNotifications(mContext);
+            mFragment.dismissShortcut(view);
+        }
+
+        @Override
+        public void onTouch() {}
+
+        @Override
+        public boolean isSwipeEnabled() {
+            return true;
+        }
+    };
+
+    private final CallLogQueryHandler.Listener mCallLogQueryHandlerListener =
+            new CallLogQueryHandler.Listener() {
+        @Override
+        public void onVoicemailStatusFetched(Cursor statusCursor) {}
+
+        @Override
+        public void onCallsFetched(Cursor combinedCursor) {
+            mCallLogAdapter.invalidateCache();
+            mCallLogAdapter.changeCursor(combinedCursor);
+            mCallLogAdapter.notifyDataSetChanged();
+        }
+    };
+
+    public ShortcutCardsAdapter(Context context,
+            ListsFragment fragment,
+            CallLogAdapter callLogAdapter) {
+        final Resources resources = context.getResources();
+        mContext = context;
+        mFragment = fragment;
+        mCallLogPadding = resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding);
+        mCallLogAdapter = callLogAdapter;
+        mObserver = new CustomDataSetObserver();
+        mCallLogAdapter.registerDataSetObserver(mObserver);
+        mCallLogQueryHandler = new CallLogQueryHandler(mContext.getContentResolver(),
+                mCallLogQueryHandlerListener);
+    }
+
+    /**
+     * Determines the number of items in the adapter.
+     * mCallLogAdapter contains the item for the most recent caller.
+     * mContactTileAdapter contains the starred contacts.
+     * The +1 is to account for the presence of the favorites menu.
+     *
+     * @return Number of items in the adapter.
+     */
+    @Override
+    public int getCount() {
+        return mCallLogAdapter.getCount();
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return mCallLogAdapter.getItem(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public boolean hasStableIds() {
+        return true;
+    }
+
+    /**
+     * Determine the number of view types present.
+     */
+    @Override
+    public int getViewTypeCount() {
+        return mCallLogAdapter.getViewTypeCount();
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        return mCallLogAdapter.getItemViewType(position);
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        final SwipeableShortcutCard wrapper;
+        if (convertView == null) {
+            wrapper = new SwipeableShortcutCard(mContext);
+            wrapper.setOnItemSwipeListener(mCallLogOnItemSwipeListener);
+        } else {
+            wrapper = (SwipeableShortcutCard) convertView;
+        }
+
+        // Special case wrapper view for the most recent call log item. This allows
+        // us to create a card-like effect for the more recent call log item in
+        // the PhoneFavoriteMergedAdapter, but keep the original look of the item in
+        // the CallLogAdapter.
+        final View view = mCallLogAdapter.getView(position, convertView == null ?
+                null : wrapper.getChildAt(0), parent);
+        wrapper.removeAllViews();
+        final View callLogItem = view.findViewById(R.id.call_log_list_item);
+        // Reset the internal call log item view if it is being recycled
+        callLogItem.setTranslationX(0);
+        callLogItem.setAlpha(1);
+        wrapper.addView(view);
+        return wrapper;
+    }
+
+    @Override
+    public boolean areAllItemsEnabled() {
+        return mCallLogAdapter.areAllItemsEnabled();
+    }
+
+    @Override
+    public boolean isEnabled(int position) {
+        return mCallLogAdapter.isEnabled(position);
+    }
+
+    /**
+     * The swipeable call log row.
+     */
+    class SwipeableShortcutCard extends FrameLayout implements SwipeHelperCallback {
+        private SwipeHelper mSwipeHelper;
+        private OnItemGestureListener mOnItemSwipeListener;
+
+        public SwipeableShortcutCard(Context context) {
+            super(context);
+            final float densityScale = getResources().getDisplayMetrics().density;
+            final float pagingTouchSlop = ViewConfiguration.get(context)
+                    .getScaledPagingTouchSlop();
+            mSwipeHelper = new SwipeHelper(context, SwipeHelper.X, this,
+                    densityScale, pagingTouchSlop);
+        }
+
+        @Override
+        public void addView(View view) {
+            view.setBackgroundResource(R.drawable.ic_tile_for_recents_and_contact_tile);
+
+            final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
+                    FrameLayout.LayoutParams.MATCH_PARENT,
+                    FrameLayout.LayoutParams.WRAP_CONTENT);
+            params.setMargins(mCallLogPadding, mCallLogPadding, mCallLogPadding, mCallLogPadding);
+            view.setLayoutParams(params);
+            view.setTranslationZ(getResources().getDimensionPixelSize(
+                    R.dimen.recent_call_log_item_translation_z));
+
+            super.addView(view);
+        }
+
+        @Override
+        public View getChildAtPosition(MotionEvent ev) {
+            return getChildCount() > 0 ? getChildAt(0) : null;
+        }
+
+        @Override
+        public View getChildContentView(View v) {
+            return v.findViewById(R.id.call_log_list_item);
+        }
+
+        @Override
+        public void onScroll() {}
+
+        @Override
+        public boolean canChildBeDismissed(View v) {
+            return true;
+        }
+
+        @Override
+        public void onBeginDrag(View v) {
+            // We do this so the underlying ScrollView knows that it won't get
+            // the chance to intercept events anymore
+            requestDisallowInterceptTouchEvent(true);
+        }
+
+        @Override
+        public void onChildDismissed(View v) {
+            if (v != null && mOnItemSwipeListener != null) {
+                mOnItemSwipeListener.onSwipe(v);
+            }
+        }
+
+        @Override
+        public void onDragCancelled(View v) {}
+
+        @Override
+        public boolean onInterceptTouchEvent(MotionEvent ev) {
+            if (mSwipeHelper != null) {
+                return mSwipeHelper.onInterceptTouchEvent(ev) || super.onInterceptTouchEvent(ev);
+            } else {
+                return super.onInterceptTouchEvent(ev);
+            }
+        }
+
+        @Override
+        public boolean onTouchEvent(MotionEvent ev) {
+            if (mSwipeHelper != null) {
+                return mSwipeHelper.onTouchEvent(ev) || super.onTouchEvent(ev);
+            } else {
+                return super.onTouchEvent(ev);
+            }
+        }
+
+        public void setOnItemSwipeListener(OnItemGestureListener listener) {
+            mOnItemSwipeListener = listener;
+        }
+
+        private float mPreviousTranslationZ = 0;
+        private Rect mClipRect = new Rect();
+
+        /**
+         * Clips the card by a specified amount.
+         *
+         * @param ratioHidden A float indicating how much of each edge of the card should be
+         *         clipped. If 0, the entire card is displayed. If 0.5f, each edge is hidden
+         *         entirely, thus obscuring the entire card.
+         */
+        public void clipCard(float ratioHidden) {
+            final View viewToClip = getChildAt(0);
+            if (viewToClip == null) {
+                return;
+            }
+            int width = viewToClip.getWidth();
+            int height = viewToClip.getHeight();
+
+            if (ratioHidden <= 0.01f) {
+                viewToClip.setTranslationZ(mPreviousTranslationZ);
+            } else if (viewToClip.getTranslationZ() != 0){
+                mPreviousTranslationZ = viewToClip.getTranslationZ();
+                viewToClip.setTranslationZ(0);
+            }
+
+            if (ratioHidden > 0.5f) {
+                mClipRect.set(0, 0 , 0, 0);
+            } else {
+                int newLeft = (int) (ratioHidden * width);
+                int newRight = (width - newLeft);
+                int newTop = (int) (ratioHidden * height);
+                int newBottom = (height - newTop);
+                mClipRect.set(newLeft, newTop, newRight, newBottom);
+            }
+            viewToClip.setClipBounds(mClipRect);
+
+            // If the view has any children, fade them out of view.
+            final ViewGroup viewGroup = (ViewGroup) viewToClip;
+            final int count = viewGroup.getChildCount();
+            for (int i = 0; i < count; i++) {
+                viewGroup.getChildAt(i).setAlpha(Math.max(0, 1 - 4 * ratioHidden));
+            }
+        }
+    }
+}
diff --git a/src/com/android/dialer/list/SmartDialNumberListAdapter.java b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
index 962d8ee..25d442e 100644
--- a/src/com/android/dialer/list/SmartDialNumberListAdapter.java
+++ b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
@@ -46,6 +46,8 @@
 
     public SmartDialNumberListAdapter(Context context) {
         super(context);
+        mNameMatcher = new SmartDialNameMatcher("", SmartDialPrefix.getMap());
+
         if (DEBUG) {
             Log.v(TAG, "Constructing List Adapter");
         }
@@ -60,12 +62,11 @@
         }
 
         if (getQueryString() == null) {
-            mNameMatcher = new SmartDialNameMatcher("", SmartDialPrefix.getMap());
             loader.configureQuery("");
+            mNameMatcher.setQuery("");
         } else {
             loader.configureQuery(getQueryString());
-            mNameMatcher = new SmartDialNameMatcher(PhoneNumberUtils.normalizeNumber(
-                    getQueryString()), SmartDialPrefix.getMap());
+            mNameMatcher.setQuery(PhoneNumberUtils.normalizeNumber(getQueryString()));
         }
     }
 
diff --git a/src/com/android/dialer/list/SmartDialSearchFragment.java b/src/com/android/dialer/list/SmartDialSearchFragment.java
index 0efe918..4f0ce72 100644
--- a/src/com/android/dialer/list/SmartDialSearchFragment.java
+++ b/src/com/android/dialer/list/SmartDialSearchFragment.java
@@ -41,6 +41,8 @@
         // Disable the direct call shortcut for the smart dial fragment, since the call button
         // will already be showing anyway.
         adapter.setShortcutEnabled(SmartDialNumberListAdapter.SHORTCUT_DIRECT_CALL, false);
+        adapter.setShortcutEnabled(SmartDialNumberListAdapter.SHORTCUT_ADD_NUMBER_TO_CONTACTS,
+                false);
         return adapter;
     }
 
diff --git a/src/com/android/dialer/list/SpeedDialFragment.java b/src/com/android/dialer/list/SpeedDialFragment.java
new file mode 100644
index 0000000..0399bf7
--- /dev/null
+++ b/src/com/android/dialer/list/SpeedDialFragment.java
@@ -0,0 +1,421 @@
+/*
+ * 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.
+ */
+package com.android.dialer.list;
+
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.LoaderManager;
+import android.content.CursorLoader;
+import android.content.Loader;
+import android.database.Cursor;
+import android.graphics.Rect;
+import android.net.Uri;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
+import android.view.animation.AnimationUtils;
+import android.view.animation.LayoutAnimationController;
+import android.widget.AbsListView;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.RelativeLayout;
+import android.widget.RelativeLayout.LayoutParams;
+
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.ContactTileLoaderFactory;
+import com.android.contacts.common.list.ContactTileView;
+import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
+import com.android.dialer.R;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * This fragment displays the user's favorite/frequent contacts in a grid.
+ */
+public class SpeedDialFragment extends Fragment implements OnItemClickListener,
+        PhoneFavoritesTileAdapter.OnDataSetChangedForAnimationListener {
+
+    /**
+     * By default, the animation code assumes that all items in a list view are of the same height
+     * when animating new list items into view (e.g. from the bottom of the screen into view).
+     * This can cause incorrect translation offsets when a item that is larger or smaller than
+     * other list item is removed from the list. This key is used to provide the actual height
+     * of the removed object so that the actual translation appears correct to the user.
+     */
+    private static final long KEY_REMOVED_ITEM_HEIGHT = Long.MAX_VALUE;
+
+    private static final String TAG = SpeedDialFragment.class.getSimpleName();
+    private static final boolean DEBUG = false;
+
+    private int mAnimationDuration;
+
+    /**
+     * Used with LoaderManager.
+     */
+    private static int LOADER_ID_CONTACT_TILE = 1;
+
+    public interface HostInterface {
+        public void setDragDropController(DragDropController controller);
+    }
+
+    private class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
+        @Override
+        public CursorLoader onCreateLoader(int id, Bundle args) {
+            if (DEBUG) Log.d(TAG, "ContactTileLoaderListener#onCreateLoader.");
+            return ContactTileLoaderFactory.createStrequentPhoneOnlyLoader(getActivity());
+        }
+
+        @Override
+        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+            if (DEBUG) Log.d(TAG, "ContactTileLoaderListener#onLoadFinished");
+            mContactTileAdapter.setContactCursor(data);
+            setEmptyViewVisibility(mContactTileAdapter.getCount() == 0);
+        }
+
+        @Override
+        public void onLoaderReset(Loader<Cursor> loader) {
+            if (DEBUG) Log.d(TAG, "ContactTileLoaderListener#onLoaderReset. ");
+        }
+    }
+
+    private class ContactTileAdapterListener implements ContactTileView.Listener {
+        @Override
+        public void onContactSelected(Uri contactUri, Rect targetRect) {
+            if (mPhoneNumberPickerActionListener != null) {
+                mPhoneNumberPickerActionListener.onPickPhoneNumberAction(contactUri);
+            }
+        }
+
+        @Override
+        public void onCallNumberDirectly(String phoneNumber) {
+            if (mPhoneNumberPickerActionListener != null) {
+                mPhoneNumberPickerActionListener.onCallNumberDirectly(phoneNumber);
+            }
+        }
+
+        @Override
+        public int getApproximateTileWidth() {
+            return getView().getWidth();
+        }
+    }
+
+    private class ScrollListener implements ListView.OnScrollListener {
+        @Override
+        public void onScroll(AbsListView view,
+                int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+            if (mActivityScrollListener != null) {
+                mActivityScrollListener.onListFragmentScroll(firstVisibleItem, visibleItemCount,
+                    totalItemCount);
+            }
+        }
+
+        @Override
+        public void onScrollStateChanged(AbsListView view, int scrollState) {
+            mActivityScrollListener.onListFragmentScrollStateChange(scrollState);
+        }
+    }
+
+    private OnPhoneNumberPickerActionListener mPhoneNumberPickerActionListener;
+
+    private OnListFragmentScrolledListener mActivityScrollListener;
+    private PhoneFavoritesTileAdapter mContactTileAdapter;
+
+    private View mParentView;
+
+    private PhoneFavoriteListView mListView;
+
+    private View mPhoneFavoritesMenu;
+    private View mContactTileFrame;
+
+    private TileInteractionTeaserView mTileInteractionTeaserView;
+
+    private final HashMap<Long, Integer> mItemIdTopMap = new HashMap<Long, Integer>();
+    private final HashMap<Long, Integer> mItemIdLeftMap = new HashMap<Long, Integer>();
+
+    /**
+     * Layout used when there are no favorites.
+     */
+    private View mEmptyView;
+
+    private final ContactTileView.Listener mContactTileAdapterListener =
+            new ContactTileAdapterListener();
+    private final LoaderManager.LoaderCallbacks<Cursor> mContactTileLoaderListener =
+            new ContactTileLoaderListener();
+    private final ScrollListener mScrollListener = new ScrollListener();
+
+    @Override
+    public void onAttach(Activity activity) {
+        if (DEBUG) Log.d(TAG, "onAttach()");
+        super.onAttach(activity);
+
+        // Construct two base adapters which will become part of PhoneFavoriteMergedAdapter.
+        // We don't construct the resultant adapter at this moment since it requires LayoutInflater
+        // that will be available on onCreateView().
+        mContactTileAdapter = new PhoneFavoritesTileAdapter(activity, mContactTileAdapterListener,
+                this);
+        mContactTileAdapter.setPhotoLoader(ContactPhotoManager.getInstance(activity));
+    }
+
+    @Override
+    public void onCreate(Bundle savedState) {
+        if (DEBUG) Log.d(TAG, "onCreate()");
+        super.onCreate(savedState);
+
+        mAnimationDuration = getResources().getInteger(R.integer.fade_duration);
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+
+        getLoaderManager().getLoader(LOADER_ID_CONTACT_TILE).forceLoad();
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        mParentView = inflater.inflate(R.layout.phone_favorites_fragment, container, false);
+
+        mListView = (PhoneFavoriteListView) mParentView.findViewById(R.id.contact_tile_list);
+        mListView.setOnItemClickListener(this);
+        mListView.setVerticalScrollBarEnabled(false);
+        mListView.setVerticalScrollbarPosition(View.SCROLLBAR_POSITION_RIGHT);
+        mListView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
+        mListView.getDragDropController().addOnDragDropListener(mContactTileAdapter);
+
+        final ImageView dragShadowOverlay =
+                (ImageView) getActivity().findViewById(R.id.contact_tile_drag_shadow_overlay);
+        mListView.setDragShadowOverlay(dragShadowOverlay);
+
+        mEmptyView = mParentView.findViewById(R.id.phone_no_favorites_view);
+
+        mPhoneFavoritesMenu = inflater.inflate(R.layout.phone_favorites_menu, mListView, false);
+
+        mContactTileFrame = mParentView.findViewById(R.id.contact_tile_frame);
+
+        mTileInteractionTeaserView = (TileInteractionTeaserView) inflater.inflate(
+                R.layout.tile_interactions_teaser_view, mListView, false);
+
+        final LayoutAnimationController controller = new LayoutAnimationController(
+                AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in));
+        controller.setDelay(0);
+        mListView.setLayoutAnimation(controller);
+        mListView.setAdapter(mContactTileAdapter);
+
+        mListView.setOnScrollListener(mScrollListener);
+        mListView.setFastScrollEnabled(false);
+        mListView.setFastScrollAlwaysVisible(false);
+
+        return mParentView;
+    }
+
+    public boolean hasFrequents() {
+        if (mContactTileAdapter == null) return false;
+        return mContactTileAdapter.getNumFrequents() > 0;
+    }
+
+    /* package */ void setEmptyViewVisibility(final boolean visible) {
+        final int previousVisibility = mEmptyView.getVisibility();
+        final int newVisibility = visible ? View.VISIBLE : View.GONE;
+
+        if (previousVisibility != newVisibility) {
+            final RelativeLayout.LayoutParams params = (LayoutParams) mContactTileFrame
+                    .getLayoutParams();
+            params.height = visible ? LayoutParams.WRAP_CONTENT : LayoutParams.MATCH_PARENT;
+            mContactTileFrame.setLayoutParams(params);
+            mEmptyView.setVisibility(newVisibility);
+        }
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+
+        final Activity activity = getActivity();
+
+        try {
+            mActivityScrollListener = (OnListFragmentScrolledListener) activity;
+        } catch (ClassCastException e) {
+            throw new ClassCastException(activity.toString()
+                    + " must implement OnListFragmentScrolledListener");
+        }
+
+        try {
+            OnDragDropListener listener = (OnDragDropListener) activity;
+            mListView.getDragDropController().addOnDragDropListener(listener);
+            ((HostInterface) activity).setDragDropController(mListView.getDragDropController());
+        } catch (ClassCastException e) {
+            throw new ClassCastException(activity.toString()
+                    + " must implement OnDragDropListener and HostInterface");
+        }
+
+        try {
+            mPhoneNumberPickerActionListener = (OnPhoneNumberPickerActionListener) activity;
+        } catch (ClassCastException e) {
+            throw new ClassCastException(activity.toString()
+                    + " must implement PhoneFavoritesFragment.listener");
+        }
+
+        // Use initLoader() instead of restartLoader() to refraining unnecessary reload.
+        // This method call implicitly assures ContactTileLoaderListener's onLoadFinished() will
+        // be called, on which we'll check if "all" contacts should be reloaded again or not.
+        getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, null, mContactTileLoaderListener);
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * This is only effective for elements provided by {@link #mContactTileAdapter}.
+     * {@link #mContactTileAdapter} has its own logic for click events.
+     */
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        final int contactTileAdapterCount = mContactTileAdapter.getCount();
+        if (position <= contactTileAdapterCount) {
+            Log.e(TAG, "onItemClick() event for unexpected position. "
+                    + "The position " + position + " is before \"all\" section. Ignored.");
+        }
+    }
+
+    /**
+     * Cache the current view offsets into memory. Once a relayout of views in the ListView
+     * has happened due to a dataset change, the cached offsets are used to create animations
+     * that slide views from their previous positions to their new ones, to give the appearance
+     * that the views are sliding into their new positions.
+     */
+    private void saveOffsets(int removedItemHeight) {
+        final int firstVisiblePosition = mListView.getFirstVisiblePosition();
+        if (DEBUG) {
+            Log.d(TAG, "Child count : " + mListView.getChildCount());
+        }
+        for (int i = 0; i < mListView.getChildCount(); i++) {
+            final View child = mListView.getChildAt(i);
+            final int position = firstVisiblePosition + i;
+            final long itemId = mContactTileAdapter.getItemId(position);
+            if (DEBUG) {
+                Log.d(TAG, "Saving itemId: " + itemId + " for listview child " + i + " Top: "
+                        + child.getTop());
+            }
+            mItemIdTopMap.put(itemId, child.getTop());
+            mItemIdLeftMap.put(itemId, child.getLeft());
+        }
+
+        mItemIdTopMap.put(KEY_REMOVED_ITEM_HEIGHT, removedItemHeight);
+    }
+
+    /*
+     * Performs animations for the gridView
+     */
+    private void animateGridView(final long... idsInPlace) {
+        if (mItemIdTopMap.isEmpty()) {
+            // Don't do animations if the database is being queried for the first time and
+            // the previous item offsets have not been cached, or the user hasn't done anything
+            // (dragging, swiping etc) that requires an animation.
+            return;
+        }
+
+        final ViewTreeObserver observer = mListView.getViewTreeObserver();
+        observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
+            @SuppressWarnings("unchecked")
+            @Override
+            public boolean onPreDraw() {
+                observer.removeOnPreDrawListener(this);
+                final int firstVisiblePosition = mListView.getFirstVisiblePosition();
+                final AnimatorSet animSet = new AnimatorSet();
+                final ArrayList<Animator> animators = new ArrayList<Animator>();
+                for (int i = 0; i < mListView.getChildCount(); i++) {
+                    final View child = mListView.getChildAt(i);
+                    int position = firstVisiblePosition + i;
+
+                    final long itemId = mContactTileAdapter.getItemId(position);
+
+                    if (containsId(idsInPlace, itemId)) {
+                        animators.add(ObjectAnimator.ofFloat(
+                                child, "alpha", 0.0f, 1.0f));
+                        break;
+                    } else {
+                        Integer startTop = mItemIdTopMap.get(itemId);
+                        Integer startLeft = mItemIdLeftMap.get(itemId);
+                        final int top = child.getTop();
+                        final int left = child.getLeft();
+                        int deltaX = 0;
+                        int deltaY = 0;
+
+                        if (startLeft != null) {
+                            if (startLeft != left) {
+                                deltaX = startLeft - left;
+                                animators.add(ObjectAnimator.ofFloat(
+                                        child, "translationX", deltaX, 0.0f));
+                            }
+                        }
+
+                        if (startTop != null) {
+                            if (startTop != top) {
+                                deltaY = startTop - top;
+                                animators.add(ObjectAnimator.ofFloat(
+                                        child, "translationY", deltaY, 0.0f));
+                            }
+                        }
+
+                        if (DEBUG) {
+                            Log.d(TAG, "Found itemId: " + itemId + " for listview child " + i +
+                                    " Top: " + top +
+                                    " Delta: " + deltaY);
+                        }
+                    }
+                }
+
+                if (animators.size() > 0) {
+                    animSet.setDuration(mAnimationDuration).playTogether(animators);
+                    animSet.start();
+                }
+
+                mItemIdTopMap.clear();
+                mItemIdLeftMap.clear();
+                return true;
+            }
+        });
+    }
+
+    private boolean containsId(long[] ids, long target) {
+        // Linear search on array is fine because this is typically only 0-1 elements long
+        for (int i = 0; i < ids.length; i++) {
+            if (ids[i] == target) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
+    public void onDataSetChangedForAnimation(long... idsInPlace) {
+        animateGridView(idsInPlace);
+    }
+
+    @Override
+    public void cacheOffsetsForDatasetChange() {
+        saveOffsets(0);
+    }
+}
diff --git a/src/com/android/dialer/list/TileInteractionTeaserView.java b/src/com/android/dialer/list/TileInteractionTeaserView.java
index 6e70fd1..fd5ed34 100644
--- a/src/com/android/dialer/list/TileInteractionTeaserView.java
+++ b/src/com/android/dialer/list/TileInteractionTeaserView.java
@@ -31,7 +31,7 @@
     private int mTextTop;
     private int mAnimatedHeight = -1;
 
-    private PhoneFavoriteMergedAdapter mAdapter;
+    private ShortcutCardsAdapter mAdapter;
 
     public TileInteractionTeaserView(final Context context) {
         this(context, null);
@@ -91,7 +91,7 @@
         return prefs.getBoolean(KEY_TILE_INTERACTION_TEASER_SHOWN, true);
     }
 
-    public void setAdapter(PhoneFavoriteMergedAdapter adapter) {
+    public void setAdapter(ShortcutCardsAdapter adapter) {
         mAdapter = adapter;
     }
 
diff --git a/src/com/android/dialer/list/ViewPagerTabs.java b/src/com/android/dialer/list/ViewPagerTabs.java
new file mode 100644
index 0000000..b545802
--- /dev/null
+++ b/src/com/android/dialer/list/ViewPagerTabs.java
@@ -0,0 +1,178 @@
+package com.android.dialer.list;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.TypedArray;
+import android.support.v4.view.PagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.FrameLayout;
+import android.widget.HorizontalScrollView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.dialer.R;
+
+/**
+ * Lightweight implementation of ViewPager tabs. This looks similar to traditional actionBar tabs,
+ * but allows for the view containing the tabs to be placed anywhere on screen. Text-related
+ * attributes can also be assigned in XML - these will get propogated to the child TextViews
+ * automatically.
+ */
+public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnPageChangeListener {
+
+    ViewPager mPager;
+    /**
+     * Linearlayout that will contain the TextViews serving as tabs. This is the only child
+     * of the parent HorizontalScrollView.
+     */
+    LinearLayout mChild;
+    final int mTextStyle;
+    final ColorStateList mTextColor;
+    final int mTextSize;
+    final boolean mTextAllCaps;
+    int mPrevSelected = -1;
+    int mSidePadding;
+
+    private static final int TAB_SIDE_PADDING_IN_DPS = 10;
+
+    // TODO: This should use <declare-styleable> in the future
+    private static final int[] ATTRS = new int[] {
+        android.R.attr.textSize,
+        android.R.attr.textStyle,
+        android.R.attr.textColor,
+        android.R.attr.textAllCaps
+    };
+
+    /**
+     * Simulates actionbar tab behavior by showing a toast with the tab title when long clicked.
+     */
+    private class OnTabLongClickListener implements OnLongClickListener {
+        final int mPosition;
+
+        public OnTabLongClickListener(int position) {
+            mPosition = position;
+        }
+
+        @Override
+        public boolean onLongClick(View v) {
+            final int[] screenPos = new int[2];
+            getLocationOnScreen(screenPos);
+
+            final Context context = getContext();
+            final int width = getWidth();
+            final int height = getHeight();
+            final int screenWidth = context.getResources().getDisplayMetrics().widthPixels;
+
+            Toast toast = Toast.makeText(context, mPager.getAdapter().getPageTitle(mPosition),
+                    Toast.LENGTH_SHORT);
+
+            // Show the toast under the tab
+            toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL,
+                    (screenPos[0] + width / 2) - screenWidth / 2, screenPos[1] + height);
+
+            toast.show();
+            return true;
+        }
+    }
+
+    public ViewPagerTabs(Context context) {
+        this(context, null);
+    }
+
+    public ViewPagerTabs(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public ViewPagerTabs(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        setFillViewport(true);
+
+        mSidePadding = (int) (getResources().getDisplayMetrics().density * TAB_SIDE_PADDING_IN_DPS);
+
+        final TypedArray a = context.obtainStyledAttributes(attrs, ATTRS);
+        mTextSize = a.getDimensionPixelSize(0, 0);
+        mTextStyle = a.getInt(1, 0);
+        mTextColor = a.getColorStateList(2);
+        mTextAllCaps = a.getBoolean(3, false);
+
+        mChild = new LinearLayout(context);
+        addView(mChild,
+                new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
+        a.recycle();
+    }
+
+    public void setViewPager(ViewPager viewPager) {
+        mPager = viewPager;
+        addTabs(mPager.getAdapter());
+    }
+
+    private void addTabs(PagerAdapter adapter) {
+        mChild.removeAllViews();
+
+        final int count = adapter.getCount();
+        for (int i = 0; i < count; i++) {
+            addTab(adapter.getPageTitle(i), i);
+        }
+    }
+
+    private void addTab(CharSequence tabTitle, final int position) {
+        final TextView textView = new TextView(getContext());
+        textView.setText(tabTitle);
+        textView.setBackgroundResource(R.drawable.action_bar_tab);
+        textView.setGravity(Gravity.CENTER);
+        textView.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mPager.setCurrentItem(position);
+            }
+        });
+
+        textView.setOnLongClickListener(new OnTabLongClickListener(position));
+
+        // Assign various text appearance related attributes to child views.
+        if (mTextStyle > 0) {
+            textView.setTypeface(textView.getTypeface(), mTextStyle);
+        }
+        if (mTextSize > 0) {
+            textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize);
+        }
+        if (mTextColor != null) {
+            textView.setTextColor(mTextColor);
+        }
+        textView.setAllCaps(mTextAllCaps);
+        textView.setPadding(mSidePadding, 0, mSidePadding, 0);
+        mChild.addView(textView, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
+                LayoutParams.MATCH_PARENT, 1));
+        // Default to the first child being selected
+        if (position == 0) {
+            mPrevSelected = 0;
+            textView.setSelected(true);
+        }
+    }
+
+    @Override
+    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+    }
+
+    @Override
+    public void onPageSelected(int position) {
+        if (mPrevSelected >= 0) {
+            mChild.getChildAt(mPrevSelected).setSelected(false);
+        }
+        final View selectedChild = mChild.getChildAt(position);
+        selectedChild.setSelected(true);
+        // Update scroll position
+        final int scrollPos = selectedChild.getLeft() - (getWidth() - selectedChild.getWidth()) / 2;
+        smoothScrollTo(scrollPos, 0);
+        mPrevSelected = position;
+    }
+
+    @Override
+    public void onPageScrollStateChanged(int state) {
+    }
+}
diff --git a/src/com/android/dialer/list/WifiWizardAdapter.java b/src/com/android/dialer/list/WifiWizardAdapter.java
deleted file mode 100644
index bac8c7a..0000000
--- a/src/com/android/dialer/list/WifiWizardAdapter.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc.
- * Licensed to 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.
- */
-package com.android.dialer.list;
-
-import com.android.dialer.R;
-import android.content.Context;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.Button;
-
-public class WifiWizardAdapter extends BaseAdapter {
-
-    public interface WifiWizardModel {
-        public static final int WIFI_CALL_STATE_ALWAYS = 0;
-        public static final int WIFI_CALL_STATE_NEVER = 1;
-        public static final int WIFI_CALL_STATE_ASK = 2;
-
-        void setWifiCallState(int state);
-
-        int getWifiCallState();
-
-        boolean shouldDisplayWifiSelection();
-    }
-
-    private abstract class WifiWizardStep {
-        private final int mResourceId;
-        private View mView;
-        protected WifiWizardStep(int resourceId) {
-            mResourceId = resourceId;
-        }
-        public final View getView() {
-            if (mView == null) {
-                mView = inflate(mResourceId);
-            }
-            if (mView.getParent() != null && (mView.getParent() instanceof ViewGroup)) {
-                ((ViewGroup) mView.getParent()).removeView(mView);
-            }
-            configureView(mView);
-            return mView;
-        }
-        protected abstract void configureView(View view);
-    }
-
-    private WifiWizardStep mTeaserStep =
-            new WifiWizardStep(R.layout.wifi_call_enable_teaser) {
-                @Override
-                protected void configureView(View view) {
-                    view.setOnClickListener(new View.OnClickListener() {
-                        @Override
-                        public void onClick(View v) {
-                            mStep = mSettingsStep;
-                            notifyDataSetChanged();
-                        }
-                    });
-                }
-            };
-
-    private WifiWizardStep mSettingsStep =
-            new WifiWizardStep(R.layout.wifi_call_enable_settings) {
-                @Override
-                protected void configureView(View view) {
-                    view.setOnClickListener(new View.OnClickListener() {
-                        @Override
-                        public void onClick(View v) {
-                            mStep = mCompletionStep;
-                            notifyDataSetChanged();
-                        }
-                    });
-                }
-            };
-
-    private WifiWizardStep mCompletionStep =
-            new WifiWizardStep(R.layout.wifi_call_enable_completion) {
-                @Override
-                protected void configureView(View view) {
-                    view.setOnClickListener(new View.OnClickListener() {
-                        @Override
-                        public void onClick(View v) {
-                            mStep = mTeaserStep;
-                            notifyDataSetChanged();
-                        }
-                    });
-                }
-            };
-
-    private final WifiWizardModel mModel;
-    private final Context mContext;
-    private WifiWizardStep mStep = mTeaserStep;
-
-    public WifiWizardAdapter(Context context, WifiWizardModel model) {
-        this.mContext = context;
-        this.mModel = model;
-    }
-
-    @Override
-    public int getCount() {
-        return 1;
-    }
-
-    @Override
-    public Object getItem(int position) {
-        return this;
-    }
-
-    @Override
-    public long getItemId(int position) {
-        return 1L;
-    }
-
-    @Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-        return mStep.getView();
-    }
-
-    private View inflate(int resource) {
-        return ((LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE))
-                .inflate(resource, null);
-    }
-}
diff --git a/src/com/android/dialer/service/CachedNumberLookupService.java b/src/com/android/dialer/service/CachedNumberLookupService.java
index 5745c9d..73fd895 100644
--- a/src/com/android/dialer/service/CachedNumberLookupService.java
+++ b/src/com/android/dialer/service/CachedNumberLookupService.java
@@ -33,6 +33,8 @@
 
     public boolean isCacheUri(String uri);
 
+    public boolean isBusiness(int sourceType);
+
     public boolean addPhoto(Context context, String number, byte[] photo);
 
     /**
diff --git a/src/com/android/dialer/util/DialerUtils.java b/src/com/android/dialer/util/DialerUtils.java
new file mode 100644
index 0000000..8b0c4c6
--- /dev/null
+++ b/src/com/android/dialer/util/DialerUtils.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+package com.android.dialer.util;
+
+import android.content.ActivityNotFoundException;
+import android.content.Context;
+import android.content.Intent;
+import android.widget.Toast;
+
+import com.android.dialer.R;
+
+/**
+ * General purpose utility methods for the Dialer.
+ */
+public class DialerUtils {
+
+    /**
+     * Attempts to start an activity and displays a toast with the default error message if the
+     * activity is not found, instead of throwing an exception.
+     *
+     * @param context to start the activity with.
+     * @param intent to start the activity with.
+     */
+    public static void startActivityWithErrorToast(Context context, Intent intent) {
+        startActivityWithErrorToast(context, intent, R.string.activity_not_available);
+    }
+
+    /**
+     * Attempts to start an activity and displays a toast with a provided error message if the
+     * activity is not found, instead of throwing an exception.
+     *
+     * @param context to start the activity with.
+     * @param intent to start the activity with.
+     * @param msgId Resource ID of the string to display in an error message if the activity is
+     *              not found.
+     */
+    public static void startActivityWithErrorToast(Context context, Intent intent, int msgId) {
+        try {
+          context.startActivity(intent);
+        } catch (ActivityNotFoundException e) {
+            Toast.makeText(context, msgId, Toast.LENGTH_SHORT).show();
+        }
+    }
+}
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackFragment.java b/src/com/android/dialer/voicemail/VoicemailPlaybackFragment.java
index 1dbae65..826dec0 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackFragment.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackFragment.java
@@ -74,7 +74,9 @@
     };
 
     private VoicemailPlaybackPresenter mPresenter;
-    private ScheduledExecutorService mScheduledExecutorService;
+    private static int mMediaPlayerRefCount = 0;
+    private static MediaPlayerProxy mMediaPlayerInstance;
+    private static ScheduledExecutorService mScheduledExecutorService;
     private View mPlaybackLayout;
 
     @Override
@@ -87,7 +89,6 @@
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
-        mScheduledExecutorService = createScheduledExecutorService();
         Bundle arguments = getArguments();
         Preconditions.checkNotNull(arguments, "fragment must be started with arguments");
         Uri voicemailUri = arguments.getParcelable(EXTRA_VOICEMAIL_URI);
@@ -99,8 +100,8 @@
                 powerManager.newWakeLock(
                         PowerManager.SCREEN_DIM_WAKE_LOCK, getClass().getSimpleName());
         mPresenter = new VoicemailPlaybackPresenter(createPlaybackViewImpl(),
-                createMediaPlayer(mScheduledExecutorService), voicemailUri,
-                mScheduledExecutorService, startPlayback,
+                getMediaPlayerInstance(), voicemailUri,
+                getScheduledExecutorServiceInstance(), startPlayback,
                 AsyncTaskExecutors.createAsyncTaskExecutor(), wakeLock);
         mPresenter.onCreate(savedInstanceState);
     }
@@ -113,8 +114,8 @@
 
     @Override
     public void onDestroy() {
+        shutdownMediaPlayer();
         mPresenter.onDestroy();
-        mScheduledExecutorService.shutdown();
         super.onDestroy();
     }
 
@@ -129,12 +130,36 @@
                 mPlaybackLayout);
     }
 
-    private MediaPlayerProxy createMediaPlayer(ExecutorService executorService) {
-        return VariableSpeed.createVariableSpeed(executorService);
+    private static synchronized MediaPlayerProxy getMediaPlayerInstance() {
+        ++mMediaPlayerRefCount;
+        if (mMediaPlayerInstance == null) {
+            mMediaPlayerInstance = VariableSpeed.createVariableSpeed(
+                    getScheduledExecutorServiceInstance());
+        }
+        return mMediaPlayerInstance;
     }
 
-    private ScheduledExecutorService createScheduledExecutorService() {
-        return Executors.newScheduledThreadPool(NUMBER_OF_THREADS_IN_POOL);
+    private static synchronized ScheduledExecutorService getScheduledExecutorServiceInstance() {
+        if (mScheduledExecutorService == null) {
+            mScheduledExecutorService = Executors.newScheduledThreadPool(
+                    NUMBER_OF_THREADS_IN_POOL);
+        }
+        return mScheduledExecutorService;
+    }
+
+    private static synchronized void shutdownMediaPlayer() {
+        --mMediaPlayerRefCount;
+        if (mMediaPlayerRefCount > 0) {
+            return;
+        }
+        if (mScheduledExecutorService != null) {
+            mScheduledExecutorService.shutdown();
+            mScheduledExecutorService = null;
+        }
+        if (mMediaPlayerInstance != null) {
+            mMediaPlayerInstance.release();
+            mMediaPlayerInstance = null;
+        }
     }
 
     /**
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
index ebda0eb..085ef66 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
@@ -35,6 +35,7 @@
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 
+import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
@@ -311,6 +312,7 @@
                             mPlayer.setDataSource(mView.getDataSourceContext(), mVoicemailUri);
                             mPlayer.setAudioStreamType(PLAYBACK_STREAM);
                             mPlayer.prepare();
+                            mDuration.set(mPlayer.getDuration());
                             return null;
                         } catch (Exception e) {
                             return e;
@@ -344,7 +346,7 @@
         mView.setSpeakerPhoneOn(mView.isSpeakerPhoneOn());
         mView.setRateDecreaseButtonListener(createRateDecreaseListener());
         mView.setRateIncreaseButtonListener(createRateIncreaseListener());
-        mView.setClipPosition(0, mPlayer.getDuration());
+        mView.setClipPosition(0, mDuration.get());
         mView.playbackStopped();
         // Always disable on stop.
         mView.disableProximitySensor();
@@ -363,6 +365,10 @@
     }
 
     public void onDestroy() {
+        if (mPrepareTask != null) {
+            mPrepareTask.cancel(false);
+            mPrepareTask = null;
+        }
         mPlayer.release();
         if (mFetchResultHandler != null) {
             mFetchResultHandler.destroy();
@@ -430,49 +436,67 @@
         }
     }
 
+    private class AsyncPrepareTask extends AsyncTask<Void, Void, Exception> {
+        private int mClipPositionInMillis;
+
+        AsyncPrepareTask(int clipPositionInMillis) {
+            mClipPositionInMillis = clipPositionInMillis;
+        }
+
+        @Override
+        public Exception doInBackground(Void... params) {
+            try {
+                if (!mPlayer.isReadyToPlay()) {
+                    mPlayer.reset();
+                    mPlayer.setDataSource(mView.getDataSourceContext(), mVoicemailUri);
+                    mPlayer.setAudioStreamType(PLAYBACK_STREAM);
+                    mPlayer.prepare();
+                }
+                return null;
+            } catch (Exception e) {
+                return e;
+            }
+        }
+
+        @Override
+        public void onPostExecute(Exception exception) {
+            mPrepareTask = null;
+            if (exception == null) {
+                final int duration = mPlayer.getDuration();
+                mDuration.set(duration);
+                int startPosition =
+                    constrain(mClipPositionInMillis, 0, duration);
+                mPlayer.seekTo(startPosition);
+                mView.setClipPosition(startPosition, duration);
+                try {
+                    // Can throw RejectedExecutionException
+                    mPlayer.start();
+                    mView.playbackStarted();
+                    if (!mWakeLock.isHeld()) {
+                        mWakeLock.acquire();
+                    }
+                    // Only enable if we are not currently using the speaker phone.
+                    if (!mView.isSpeakerPhoneOn()) {
+                        mView.enableProximitySensor();
+                    }
+                    // Can throw RejectedExecutionException
+                    mPositionUpdater.startUpdating(startPosition, duration);
+                } catch (RejectedExecutionException e) {
+                    handleError(e);
+                }
+            } else {
+                handleError(exception);
+            }
+        }
+    }
+
     private void resetPrepareStartPlaying(final int clipPositionInMillis) {
         if (mPrepareTask != null) {
             mPrepareTask.cancel(false);
+            mPrepareTask = null;
         }
         mPrepareTask = mAsyncTaskExecutor.submit(Tasks.RESET_PREPARE_START_MEDIA_PLAYER,
-                new AsyncTask<Void, Void, Exception>() {
-                    @Override
-                    public Exception doInBackground(Void... params) {
-                        try {
-                            mPlayer.reset();
-                            mPlayer.setDataSource(mView.getDataSourceContext(), mVoicemailUri);
-                            mPlayer.setAudioStreamType(PLAYBACK_STREAM);
-                            mPlayer.prepare();
-                            return null;
-                        } catch (Exception e) {
-                            return e;
-                        }
-                    }
-
-                    @Override
-                    public void onPostExecute(Exception exception) {
-                        mPrepareTask = null;
-                        if (exception == null) {
-                            mDuration.set(mPlayer.getDuration());
-                            int startPosition =
-                                    constrain(clipPositionInMillis, 0, mDuration.get());
-                            mView.setClipPosition(startPosition, mDuration.get());
-                            mPlayer.seekTo(startPosition);
-                            mPlayer.start();
-                            mView.playbackStarted();
-                            if (!mWakeLock.isHeld()) {
-                                mWakeLock.acquire();
-                            }
-                            // Only enable if we are not currently using the speaker phone.
-                            if (!mView.isSpeakerPhoneOn()) {
-                                mView.enableProximitySensor();
-                            }
-                            mPositionUpdater.startUpdating(startPosition, mDuration.get());
-                        } else {
-                            handleError(exception);
-                        }
-                    }
-                });
+                new AsyncPrepareTask(clipPositionInMillis));
     }
 
     private void handleError(Exception e) {
@@ -598,6 +622,7 @@
             synchronized (mLock) {
                 if (mScheduledFuture != null) {
                     mScheduledFuture.cancel(false);
+                    mScheduledFuture = null;
                 }
                 mScheduledFuture = mExecutorService.scheduleAtFixedRate(this, 0, mPeriodMillis,
                         TimeUnit.MILLISECONDS);
@@ -620,6 +645,7 @@
         }
         if (mPrepareTask != null) {
             mPrepareTask.cancel(false);
+            mPrepareTask = null;
         }
         if (mWakeLock.isHeld()) {
             mWakeLock.release();
diff --git a/src/com/android/dialer/widget/OverlappingPaneLayout.java b/src/com/android/dialer/widget/OverlappingPaneLayout.java
new file mode 100644
index 0000000..e17194e
--- /dev/null
+++ b/src/com/android/dialer/widget/OverlappingPaneLayout.java
@@ -0,0 +1,1100 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+package com.android.dialer.widget;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.PixelFormat;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.os.Build;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.support.v4.view.AccessibilityDelegateCompat;
+import android.support.v4.view.MotionEventCompat;
+import android.support.v4.view.ViewCompat;
+import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewParent;
+import android.view.accessibility.AccessibilityEvent;
+
+/**
+ * A custom layout that aligns its child views vertically as two panes, and allows for the bottom
+ * pane to be dragged upwards to overlap and hide the top pane. This layout is adapted from
+ * {@link android.support.v4.widget.SlidingPaneLayout}.
+ */
+public class OverlappingPaneLayout extends ViewGroup {
+    private static final String TAG = "SlidingPaneLayout";
+
+    /**
+     * Default size of the overhang for a pane in the open state.
+     * At least this much of a sliding pane will remain visible.
+     * This indicates that there is more content available and provides
+     * a "physical" edge to grab to pull it closed.
+     */
+    private static final int DEFAULT_OVERHANG_SIZE = 32; // dp;
+
+    /**
+     * If no fade color is given by default it will fade to 80% gray.
+     */
+    private static final int DEFAULT_FADE_COLOR = 0xcccccccc;
+
+    /**
+     * Minimum velocity that will be detected as a fling
+     */
+    private static final int MIN_FLING_VELOCITY = 400; // dips per second
+
+    /**
+     * The size of the overhang in pixels.
+     * This is the minimum section of the sliding panel that will
+     * be visible in the open state to allow for a closing drag.
+     */
+    private final int mOverhangSize;
+
+    /**
+     * True if a panel can slide with the current measurements
+     */
+    private boolean mCanSlide;
+
+    /**
+     * The child view that can slide, if any.
+     */
+    private View mSlideableView;
+
+    /**
+     * The view that can be used to start the drag with.
+     */
+    private View mCapturableView;
+
+    /**
+     * How far the panel is offset from its closed position.
+     * range [0, 1] where 0 = closed, 1 = open.
+     */
+    private float mSlideOffset;
+
+    /**
+     * How far in pixels the slideable panel may move.
+     */
+    private int mSlideRange;
+
+    /**
+     * A panel view is locked into internal scrolling or another condition that
+     * is preventing a drag.
+     */
+    private boolean mIsUnableToDrag;
+
+    /**
+     * Tracks whether or not a child view is in the process of a nested scroll.
+     */
+    private boolean mIsInNestedScroll;
+
+    private float mInitialMotionX;
+    private float mInitialMotionY;
+
+    private PanelSlideListener mPanelSlideListener;
+
+    private final ViewDragHelper mDragHelper;
+
+    /**
+     * Stores whether or not the pane was open the last time it was slideable.
+     * If open/close operations are invoked this state is modified. Used by
+     * instance state save/restore.
+     */
+    private boolean mPreservedOpenState;
+    private boolean mFirstLayout = true;
+
+    private final Rect mTmpRect = new Rect();
+
+    /**
+     * Listener for monitoring events about sliding panes.
+     */
+    public interface PanelSlideListener {
+        /**
+         * Called when a sliding pane's position changes.
+         * @param panel The child view that was moved
+         * @param slideOffset The new offset of this sliding pane within its range, from 0-1
+         */
+        public void onPanelSlide(View panel, float slideOffset);
+        /**
+         * Called when a sliding pane becomes slid completely open. The pane may or may not
+         * be interactive at this point depending on how much of the pane is visible.
+         * @param panel The child view that was slid to an open position, revealing other panes
+         */
+        public void onPanelOpened(View panel);
+
+        /**
+         * Called when a sliding pane becomes slid completely closed. The pane is now guaranteed
+         * to be interactive. It may now obscure other views in the layout.
+         * @param panel The child view that was slid to a closed position
+         */
+        public void onPanelClosed(View panel);
+    }
+
+    public OverlappingPaneLayout(Context context) {
+        this(context, null);
+    }
+
+    public OverlappingPaneLayout(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public OverlappingPaneLayout(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+
+        final float density = context.getResources().getDisplayMetrics().density;
+        mOverhangSize = (int) (DEFAULT_OVERHANG_SIZE * density + 0.5f);
+
+        setWillNotDraw(false);
+
+        ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegate());
+        ViewCompat.setImportantForAccessibility(this, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES);
+
+        mDragHelper = ViewDragHelper.create(this, 0.5f, new DragHelperCallback());
+        mDragHelper.setMinVelocity(MIN_FLING_VELOCITY * density);
+    }
+
+    /**
+     * Set the view that can be used to start dragging the sliding pane.
+     */
+    public void setCapturableView(View capturableView) {
+        mCapturableView = capturableView;
+    }
+
+    public void setPanelSlideListener(PanelSlideListener listener) {
+        mPanelSlideListener = listener;
+    }
+
+    void dispatchOnPanelSlide(View panel) {
+        if (mPanelSlideListener != null) {
+            mPanelSlideListener.onPanelSlide(panel, mSlideOffset);
+        }
+    }
+
+    void dispatchOnPanelOpened(View panel) {
+        if (mPanelSlideListener != null) {
+            mPanelSlideListener.onPanelOpened(panel);
+        }
+        sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+    }
+
+    void dispatchOnPanelClosed(View panel) {
+        if (mPanelSlideListener != null) {
+            mPanelSlideListener.onPanelClosed(panel);
+        }
+        sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+    }
+
+    void updateObscuredViewsVisibility(View panel) {
+        final int startBound = getPaddingTop();
+        final int endBound = getHeight() - getPaddingBottom();
+
+        final int leftBound = getPaddingLeft();
+        final int rightBound = getWidth() - getPaddingRight();
+        final int left;
+        final int right;
+        final int top;
+        final int bottom;
+        if (panel != null && viewIsOpaque(panel)) {
+            left = panel.getLeft();
+            right = panel.getRight();
+            top = panel.getTop();
+            bottom = panel.getBottom();
+        } else {
+            left = right = top = bottom = 0;
+        }
+
+        for (int i = 0, childCount = getChildCount(); i < childCount; i++) {
+            final View child = getChildAt(i);
+
+            if (child == panel) {
+                // There are still more children above the panel but they won't be affected.
+                break;
+            }
+
+            final int clampedChildLeft = Math.max(leftBound, child.getLeft());
+            final int clampedChildRight = Math.min(rightBound, child.getRight());
+            final int clampedChildTop = Math.max(startBound, child.getTop());
+            final int clampedChildBottom = Math.min(endBound, child.getBottom());
+
+            final int vis;
+            if (clampedChildLeft >= left && clampedChildTop >= top &&
+                    clampedChildRight <= right && clampedChildBottom <= bottom) {
+                vis = INVISIBLE;
+            } else {
+                vis = VISIBLE;
+            }
+            child.setVisibility(vis);
+        }
+    }
+
+    void setAllChildrenVisible() {
+        for (int i = 0, childCount = getChildCount(); i < childCount; i++) {
+            final View child = getChildAt(i);
+            if (child.getVisibility() == INVISIBLE) {
+                child.setVisibility(VISIBLE);
+            }
+        }
+    }
+
+    private static boolean viewIsOpaque(View v) {
+        if (ViewCompat.isOpaque(v)) return true;
+
+        final Drawable bg = v.getBackground();
+        if (bg != null) {
+            return bg.getOpacity() == PixelFormat.OPAQUE;
+        }
+        return false;
+    }
+
+    @Override
+    protected void onAttachedToWindow() {
+        super.onAttachedToWindow();
+        mFirstLayout = true;
+    }
+
+    @Override
+    protected void onDetachedFromWindow() {
+        super.onDetachedFromWindow();
+        mFirstLayout = true;
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+
+        int widthMode = MeasureSpec.getMode(widthMeasureSpec);
+        int widthSize = MeasureSpec.getSize(widthMeasureSpec);
+        int heightMode = MeasureSpec.getMode(heightMeasureSpec);
+        int heightSize = MeasureSpec.getSize(heightMeasureSpec);
+
+        if (widthMode != MeasureSpec.EXACTLY) {
+            if (isInEditMode()) {
+                // Don't crash the layout editor. Consume all of the space if specified
+                // or pick a magic number from thin air otherwise.
+                // TODO Better communication with tools of this bogus state.
+                // It will crash on a real device.
+                if (widthMode == MeasureSpec.AT_MOST) {
+                    widthMode = MeasureSpec.EXACTLY;
+                } else if (widthMode == MeasureSpec.UNSPECIFIED) {
+                    widthMode = MeasureSpec.EXACTLY;
+                    widthSize = 300;
+                }
+            } else {
+                throw new IllegalStateException("Width must have an exact value or MATCH_PARENT");
+            }
+        } else if (heightMode == MeasureSpec.UNSPECIFIED) {
+            if (isInEditMode()) {
+                // Don't crash the layout editor. Pick a magic number from thin air instead.
+                // TODO Better communication with tools of this bogus state.
+                // It will crash on a real device.
+                if (heightMode == MeasureSpec.UNSPECIFIED) {
+                    heightMode = MeasureSpec.AT_MOST;
+                    heightSize = 300;
+                }
+            } else {
+                throw new IllegalStateException("Height must not be UNSPECIFIED");
+            }
+        }
+
+        int layoutWidth = 0;
+        int maxLayoutWidth = -1;
+        switch (widthMode) {
+            case MeasureSpec.EXACTLY:
+                layoutWidth = maxLayoutWidth = widthSize - getPaddingLeft() - getPaddingRight();
+                break;
+            case MeasureSpec.AT_MOST:
+                maxLayoutWidth = widthSize - getPaddingLeft() - getPaddingRight();
+                break;
+        }
+
+        float weightSum = 0;
+        boolean canSlide = false;
+        final int heightAvailable = heightSize - getPaddingTop() - getPaddingBottom();
+        int heightRemaining = heightAvailable;
+        final int childCount = getChildCount();
+
+        if (childCount > 2) {
+            Log.e(TAG, "onMeasure: More than two child views are not supported.");
+        }
+
+        // We'll find the current one below.
+        mSlideableView = null;
+
+        // First pass. Measure based on child LayoutParams width/height.
+        // Weight will incur a second pass.
+        for (int i = 0; i < childCount; i++) {
+            final View child = getChildAt(i);
+            final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+
+            if (child.getVisibility() == GONE) {
+                continue;
+            }
+
+            if (lp.weight > 0) {
+                weightSum += lp.weight;
+
+                // If we have no height, weight is the only contributor to the final size.
+                // Measure this view on the weight pass only.
+                if (lp.height == 0) continue;
+            }
+
+            int childHeightSpec;
+            final int verticalMargin = lp.topMargin + lp.bottomMargin;
+            if (lp.height == LayoutParams.WRAP_CONTENT) {
+                childHeightSpec = MeasureSpec.makeMeasureSpec(heightAvailable - verticalMargin,
+                        MeasureSpec.AT_MOST);
+            } else if (lp.height == LayoutParams.MATCH_PARENT) {
+                childHeightSpec = MeasureSpec.makeMeasureSpec(heightAvailable - verticalMargin,
+                        MeasureSpec.EXACTLY);
+            } else {
+                childHeightSpec = MeasureSpec.makeMeasureSpec(lp.height, MeasureSpec.EXACTLY);
+            }
+
+            int childWidthSpec;
+            if (lp.width == LayoutParams.WRAP_CONTENT) {
+                childWidthSpec = MeasureSpec.makeMeasureSpec(maxLayoutWidth, MeasureSpec.AT_MOST);
+            } else if (lp.width == LayoutParams.MATCH_PARENT) {
+                childWidthSpec = MeasureSpec.makeMeasureSpec(maxLayoutWidth, MeasureSpec.EXACTLY);
+            } else {
+                childWidthSpec = MeasureSpec.makeMeasureSpec(lp.width, MeasureSpec.EXACTLY);
+            }
+
+            child.measure(childWidthSpec, childHeightSpec);
+            final int childWidth = child.getMeasuredWidth();
+            final int childHeight = child.getMeasuredHeight();
+
+            if (widthMode == MeasureSpec.AT_MOST && childWidth > layoutWidth) {
+                layoutWidth = Math.min(childWidth, maxLayoutWidth);
+            }
+
+            heightRemaining -= childHeight;
+            canSlide |= lp.slideable = heightRemaining < 0;
+            if (lp.slideable) {
+                mSlideableView = child;
+            }
+        }
+
+        // Resolve weight and make sure non-sliding panels are smaller than the full screen.
+        if (canSlide || weightSum > 0) {
+            final int fixedPanelHeightLimit = heightAvailable - mOverhangSize;
+
+            for (int i = 0; i < childCount; i++) {
+                final View child = getChildAt(i);
+
+                if (child.getVisibility() == GONE) {
+                    continue;
+                }
+
+                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+
+                if (child.getVisibility() == GONE) {
+                    continue;
+                }
+
+                final boolean skippedFirstPass = lp.height == 0 && lp.weight > 0;
+                final int measuredHeight = skippedFirstPass ? 0 : child.getMeasuredHeight();
+                if (canSlide && child != mSlideableView) {
+                    if (lp.height < 0 && (measuredHeight > fixedPanelHeightLimit || lp.weight > 0)) {
+                        // Fixed panels in a sliding configuration should
+                        // be clamped to the fixed panel limit.
+                        final int childWidthSpec;
+                        if (skippedFirstPass) {
+                            // Do initial width measurement if we skipped measuring this view
+                            // the first time around.
+                            if (lp.width == LayoutParams.WRAP_CONTENT) {
+                                childWidthSpec = MeasureSpec.makeMeasureSpec(maxLayoutWidth,
+                                        MeasureSpec.AT_MOST);
+                            } else if (lp.height == LayoutParams.MATCH_PARENT) {
+                                childWidthSpec = MeasureSpec.makeMeasureSpec(maxLayoutWidth,
+                                        MeasureSpec.EXACTLY);
+                            } else {
+                                childWidthSpec = MeasureSpec.makeMeasureSpec(lp.width,
+                                        MeasureSpec.EXACTLY);
+                            }
+                        } else {
+                            childWidthSpec = MeasureSpec.makeMeasureSpec(
+                                    child.getMeasuredWidth(), MeasureSpec.EXACTLY);
+                        }
+                        final int childHeightSpec = MeasureSpec.makeMeasureSpec(
+                                fixedPanelHeightLimit, MeasureSpec.EXACTLY);
+                        child.measure(childWidthSpec, childHeightSpec);
+                    }
+                } else if (lp.weight > 0) {
+                    int childWidthSpec;
+                    if (lp.height == 0) {
+                        // This was skipped the first time; figure out a real width spec.
+                        if (lp.width == LayoutParams.WRAP_CONTENT) {
+                            childWidthSpec = MeasureSpec.makeMeasureSpec(maxLayoutWidth,
+                                    MeasureSpec.AT_MOST);
+                        } else if (lp.width == LayoutParams.MATCH_PARENT) {
+                            childWidthSpec = MeasureSpec.makeMeasureSpec(maxLayoutWidth,
+                                    MeasureSpec.EXACTLY);
+                        } else {
+                            childWidthSpec = MeasureSpec.makeMeasureSpec(lp.width,
+                                    MeasureSpec.EXACTLY);
+                        }
+                    } else {
+                        childWidthSpec = MeasureSpec.makeMeasureSpec(
+                                child.getMeasuredWidth(), MeasureSpec.EXACTLY);
+                    }
+
+                    if (canSlide) {
+                        // Consume available space
+                        final int verticalMargin = lp.topMargin + lp.bottomMargin;
+                        final int newHeight = heightAvailable - verticalMargin;
+                        final int childHeightSpec = MeasureSpec.makeMeasureSpec(
+                                newHeight, MeasureSpec.EXACTLY);
+                        if (measuredHeight != newHeight) {
+                            child.measure(childWidthSpec, childHeightSpec);
+                        }
+                    } else {
+                        // Distribute the extra width proportionally similar to LinearLayout
+                        final int heightToDistribute = Math.max(0, heightRemaining);
+                        final int addedHeight = (int) (lp.weight * heightToDistribute / weightSum);
+                        final int childHeightSpec = MeasureSpec.makeMeasureSpec(
+                                measuredHeight + addedHeight, MeasureSpec.EXACTLY);
+                        child.measure(childWidthSpec, childHeightSpec);
+                    }
+                }
+            }
+        }
+
+        final int measuredHeight = heightSize;
+        final int measuredWidth = layoutWidth + getPaddingLeft() + getPaddingRight();
+
+        setMeasuredDimension(measuredWidth, measuredHeight);
+        mCanSlide = canSlide;
+
+        if (mDragHelper.getViewDragState() != ViewDragHelper.STATE_IDLE && !canSlide) {
+            // Cancel scrolling in progress, it's no longer relevant.
+            mDragHelper.abort();
+        }
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int l, int t, int r, int b) {
+        mDragHelper.setEdgeTrackingEnabled(ViewDragHelper.EDGE_TOP);
+
+        final int height = b - t;
+        final int paddingTop = getPaddingTop();
+        final int paddingBottom = getPaddingBottom();
+        final int paddingLeft = getPaddingLeft();
+
+        final int childCount = getChildCount();
+        int yStart = paddingTop;
+        int nextYStart = yStart;
+
+        if (mFirstLayout) {
+            mSlideOffset = mCanSlide && mPreservedOpenState ? 1.f : 0.f;
+        }
+
+        for (int i = 0; i < childCount; i++) {
+            final View child = getChildAt(i);
+
+            if (child.getVisibility() == GONE) {
+                continue;
+            }
+
+            final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+
+            final int childHeight = child.getMeasuredHeight();
+
+            if (lp.slideable) {
+                final int margin = lp.topMargin + lp.bottomMargin;
+                final int range = Math.min(nextYStart,
+                        height - paddingBottom - mOverhangSize) - yStart - margin;
+                mSlideRange = range;
+                final int lpMargin = lp.topMargin;
+                final int pos = (int) (range * mSlideOffset);
+                yStart += pos + lpMargin;
+                mSlideOffset = (float) pos / mSlideRange;
+            } else {
+                yStart = nextYStart;
+            }
+
+            final int childTop = yStart;
+            final int childBottom = childTop + childHeight;
+            final int childLeft = paddingLeft;
+            final int childRight = childLeft + child.getMeasuredWidth();
+
+            child.layout(childLeft, childTop, childRight, childBottom);
+
+            nextYStart += child.getHeight();
+        }
+
+        if (mFirstLayout) {
+            updateObscuredViewsVisibility(mSlideableView);
+        }
+
+        mFirstLayout = false;
+    }
+
+    @Override
+    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+        super.onSizeChanged(w, h, oldw, oldh);
+        // Recalculate sliding panes and their details
+        if (h != oldh) {
+            mFirstLayout = true;
+        }
+    }
+
+    @Override
+    public void requestChildFocus(View child, View focused) {
+        super.requestChildFocus(child, focused);
+        if (!isInTouchMode() && !mCanSlide) {
+            mPreservedOpenState = child == mSlideableView;
+        }
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent ev) {
+        final int action = MotionEventCompat.getActionMasked(ev);
+
+        // Preserve the open state based on the last view that was touched.
+        if (!mCanSlide && action == MotionEvent.ACTION_DOWN && getChildCount() > 1) {
+            // After the first things will be slideable.
+            final View secondChild = getChildAt(1);
+            if (secondChild != null) {
+                mPreservedOpenState = !mDragHelper.isViewUnder(secondChild,
+                        (int) ev.getX(), (int) ev.getY());
+            }
+        }
+
+        if (!mCanSlide || (mIsUnableToDrag && action != MotionEvent.ACTION_DOWN)) {
+            if (!mIsInNestedScroll) {
+                mDragHelper.cancel();
+            }
+            return super.onInterceptTouchEvent(ev);
+        }
+
+        if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) {
+            if (!mIsInNestedScroll) {
+                mDragHelper.cancel();
+            }
+            return false;
+        }
+
+        switch (action) {
+            case MotionEvent.ACTION_DOWN: {
+                mIsUnableToDrag = false;
+                final float x = ev.getX();
+                final float y = ev.getY();
+                mInitialMotionX = x;
+                mInitialMotionY = y;
+
+                break;
+            }
+
+            case MotionEvent.ACTION_MOVE: {
+                final float x = ev.getX();
+                final float y = ev.getY();
+                final float adx = Math.abs(x - mInitialMotionX);
+                final float ady = Math.abs(y - mInitialMotionY);
+                final int slop = mDragHelper.getTouchSlop();
+                if (ady > slop && adx > ady || !isCapturableViewUnder((int) x, (int) y)) {
+                    if (!mIsInNestedScroll) {
+                        mDragHelper.cancel();
+                    }
+                    mIsUnableToDrag = true;
+                    return false;
+                }
+            }
+        }
+
+        final boolean interceptForDrag = mDragHelper.shouldInterceptTouchEvent(ev);
+
+        return interceptForDrag;
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent ev) {
+        if (!mCanSlide) {
+            return super.onTouchEvent(ev);
+        }
+
+        mDragHelper.processTouchEvent(ev);
+
+        final int action = ev.getAction();
+        boolean wantTouchEvents = true;
+
+        switch (action & MotionEventCompat.ACTION_MASK) {
+            case MotionEvent.ACTION_DOWN: {
+                final float x = ev.getX();
+                final float y = ev.getY();
+                mInitialMotionX = x;
+                mInitialMotionY = y;
+                break;
+            }
+        }
+
+        return wantTouchEvents;
+    }
+
+    private boolean closePane(View pane, int initialVelocity) {
+        if (mFirstLayout || smoothSlideTo(0.f, initialVelocity)) {
+            mPreservedOpenState = false;
+            return true;
+        }
+        return false;
+    }
+
+    private boolean openPane(View pane, int initialVelocity) {
+        if (mFirstLayout || smoothSlideTo(1.f, initialVelocity)) {
+            mPreservedOpenState = true;
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Open the sliding pane if it is currently slideable. If first layout
+     * has already completed this will animate.
+     *
+     * @return true if the pane was slideable and is now open/in the process of opening
+     */
+    public boolean openPane() {
+        return openPane(mSlideableView, 0);
+    }
+
+    /**
+     * Close the sliding pane if it is currently slideable. If first layout
+     * has already completed this will animate.
+     *
+     * @return true if the pane was slideable and is now closed/in the process of closing
+     */
+    public boolean closePane() {
+        return closePane(mSlideableView, 0);
+    }
+
+    /**
+     * Check if the layout is completely open. It can be open either because the slider
+     * itself is open revealing the left pane, or if all content fits without sliding.
+     *
+     * @return true if sliding panels are completely open
+     */
+    public boolean isOpen() {
+        return !mCanSlide || mSlideOffset == 1;
+    }
+
+    /**
+     * Check if the content in this layout cannot fully fit side by side and therefore
+     * the content pane can be slid back and forth.
+     *
+     * @return true if content in this layout can be slid open and closed
+     */
+    public boolean isSlideable() {
+        return mCanSlide;
+    }
+
+    private void onPanelDragged(int newTop) {
+        if (mSlideableView == null) {
+            // This can happen if we're aborting motion during layout because everything now fits.
+            mSlideOffset = 0;
+            return;
+        }
+        final LayoutParams lp = (LayoutParams) mSlideableView.getLayoutParams();
+
+        final int lpMargin = lp.topMargin;
+        final int topBound = getPaddingTop() + lpMargin;
+
+        mSlideOffset = (float) (newTop - topBound) / mSlideRange;
+
+        dispatchOnPanelSlide(mSlideableView);
+    }
+
+    @Override
+    protected boolean drawChild(Canvas canvas, View child, long drawingTime) {
+        final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+        boolean result;
+        final int save = canvas.save(Canvas.CLIP_SAVE_FLAG);
+
+        if (mCanSlide && !lp.slideable && mSlideableView != null) {
+            // Clip against the slider; no sense drawing what will immediately be covered.
+            canvas.getClipBounds(mTmpRect);
+
+            mTmpRect.bottom = Math.min(mTmpRect.bottom, mSlideableView.getTop());
+            canvas.clipRect(mTmpRect);
+        }
+
+        if (Build.VERSION.SDK_INT >= 11) { // HC
+            result = super.drawChild(canvas, child, drawingTime);
+        } else {
+            if (child.isDrawingCacheEnabled()) {
+                child.setDrawingCacheEnabled(false);
+            }
+            result = super.drawChild(canvas, child, drawingTime);
+        }
+
+        canvas.restoreToCount(save);
+
+        return result;
+    }
+
+    /**
+     * Smoothly animate mDraggingPane to the target X position within its range.
+     *
+     * @param slideOffset position to animate to
+     * @param velocity initial velocity in case of fling, or 0.
+     */
+    boolean smoothSlideTo(float slideOffset, int velocity) {
+        if (!mCanSlide) {
+            // Nothing to do.
+            return false;
+        }
+
+        final LayoutParams lp = (LayoutParams) mSlideableView.getLayoutParams();
+
+        int y;
+        int topBound = getPaddingTop() + lp.topMargin;
+        y = (int) (topBound + slideOffset * mSlideRange);
+
+        if (mDragHelper.smoothSlideViewTo(mSlideableView, mSlideableView.getLeft(), y)) {
+            setAllChildrenVisible();
+            ViewCompat.postInvalidateOnAnimation(this);
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public void computeScroll() {
+        if (mDragHelper.continueSettling(true)) {
+            if (!mCanSlide) {
+                mDragHelper.abort();
+                return;
+            }
+
+            ViewCompat.postInvalidateOnAnimation(this);
+        }
+    }
+
+    private boolean isCapturableViewUnder(int x, int y) {
+        View capturableView = mCapturableView != null ? mCapturableView : mSlideableView;
+        if (capturableView == null) {
+            return false;
+        }
+        int[] viewLocation = new int[2];
+        capturableView.getLocationOnScreen(viewLocation);
+        int[] parentLocation = new int[2];
+        this.getLocationOnScreen(parentLocation);
+        int screenX = parentLocation[0] + x;
+        int screenY = parentLocation[1] + y;
+        return screenX >= viewLocation[0]
+                && screenX < viewLocation[0] + capturableView.getWidth()
+                && screenY >= viewLocation[1]
+                && screenY < viewLocation[1] + capturableView.getHeight();
+    }
+
+    @Override
+    protected ViewGroup.LayoutParams generateDefaultLayoutParams() {
+        return new LayoutParams();
+    }
+
+    @Override
+    protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) {
+        return p instanceof MarginLayoutParams
+                ? new LayoutParams((MarginLayoutParams) p)
+                : new LayoutParams(p);
+    }
+
+    @Override
+    protected boolean checkLayoutParams(ViewGroup.LayoutParams p) {
+        return p instanceof LayoutParams && super.checkLayoutParams(p);
+    }
+
+    @Override
+    public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs) {
+        return new LayoutParams(getContext(), attrs);
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        Parcelable superState = super.onSaveInstanceState();
+
+        SavedState ss = new SavedState(superState);
+        ss.isOpen = isSlideable() ? isOpen() : mPreservedOpenState;
+
+        return ss;
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        SavedState ss = (SavedState) state;
+        super.onRestoreInstanceState(ss.getSuperState());
+
+        if (ss.isOpen) {
+            openPane();
+        } else {
+            closePane();
+        }
+        mPreservedOpenState = ss.isOpen;
+    }
+
+    @Override
+    public boolean onStartNestedScroll(View child, View target, int nestedScrollAxes) {
+        final boolean startNestedScroll = (nestedScrollAxes & SCROLL_AXIS_VERTICAL) != 0;
+        if (startNestedScroll) {
+            mIsInNestedScroll = true;
+            mDragHelper.startNestedScroll(mSlideableView);
+        }
+        return startNestedScroll;
+    }
+
+    @Override
+    public void onNestedPreScroll(View target, int dx, int dy, int[] consumed) {
+        mDragHelper.processNestedScroll(mSlideableView, 0, dy, consumed);
+    }
+
+    @Override
+    public void onStopNestedScroll(View child) {
+        mDragHelper.stopNestedScroll(mSlideableView);
+        mIsInNestedScroll = false;
+    }
+
+    private class DragHelperCallback extends ViewDragHelper.Callback {
+
+        @Override
+        public boolean tryCaptureView(View child, int pointerId) {
+            if (mIsUnableToDrag) {
+                return false;
+            }
+
+            return ((LayoutParams) child.getLayoutParams()).slideable;
+        }
+
+        @Override
+        public void onViewDragStateChanged(int state) {
+            if (mDragHelper.getViewDragState() == ViewDragHelper.STATE_IDLE) {
+                if (mSlideOffset == 0) {
+                    updateObscuredViewsVisibility(mSlideableView);
+                    dispatchOnPanelClosed(mSlideableView);
+                    mPreservedOpenState = false;
+                } else {
+                    dispatchOnPanelOpened(mSlideableView);
+                    mPreservedOpenState = true;
+                }
+            }
+        }
+
+        @Override
+        public void onViewCaptured(View capturedChild, int activePointerId) {
+            // Make all child views visible in preparation for sliding things around
+            setAllChildrenVisible();
+        }
+
+        @Override
+        public void onViewPositionChanged(View changedView, int left, int top, int dx, int dy) {
+            onPanelDragged(top);
+            invalidate();
+        }
+
+        @Override
+        public void onViewReleased(View releasedChild, float xvel, float yvel) {
+            final LayoutParams lp = (LayoutParams) releasedChild.getLayoutParams();
+
+            int top = getPaddingTop() + lp.topMargin;
+            if (yvel > 0 || (yvel == 0 && mSlideOffset > 0.5f)) {
+                top += mSlideRange;
+            }
+
+            mDragHelper.settleCapturedViewAt(releasedChild.getLeft(), top);
+            invalidate();
+        }
+
+        @Override
+        public int getViewVerticalDragRange(View child) {
+            return mSlideRange;
+        }
+
+        @Override
+        public int clampViewPositionHorizontal(View child, int left, int dx) {
+            // Make sure we never move views horizontally.
+            return child.getLeft();
+        }
+
+        @Override
+        public int clampViewPositionVertical(View child, int top, int dy) {
+            final LayoutParams lp = (LayoutParams) mSlideableView.getLayoutParams();
+
+            final int newTop;
+            int topBound = getPaddingTop() + lp.topMargin;
+            int bottomBound = topBound + mSlideRange;
+            newTop = Math.min(Math.max(top, topBound), bottomBound);
+
+            return newTop;
+        }
+
+        @Override
+        public void onEdgeDragStarted(int edgeFlags, int pointerId) {
+            mDragHelper.captureChildView(mSlideableView, pointerId);
+        }
+    }
+
+    public static class LayoutParams extends ViewGroup.MarginLayoutParams {
+        private static final int[] ATTRS = new int[] {
+            android.R.attr.layout_weight
+        };
+
+        /**
+         * The weighted proportion of how much of the leftover space
+         * this child should consume after measurement.
+         */
+        public float weight = 0;
+
+        /**
+         * True if this pane is the slideable pane in the layout.
+         */
+        boolean slideable;
+
+        public LayoutParams() {
+            super(FILL_PARENT, FILL_PARENT);
+        }
+
+        public LayoutParams(int width, int height) {
+            super(width, height);
+        }
+
+        public LayoutParams(android.view.ViewGroup.LayoutParams source) {
+            super(source);
+        }
+
+        public LayoutParams(MarginLayoutParams source) {
+            super(source);
+        }
+
+        public LayoutParams(LayoutParams source) {
+            super(source);
+            this.weight = source.weight;
+        }
+
+        public LayoutParams(Context c, AttributeSet attrs) {
+            super(c, attrs);
+
+            final TypedArray a = c.obtainStyledAttributes(attrs, ATTRS);
+            this.weight = a.getFloat(0, 0);
+            a.recycle();
+        }
+
+    }
+
+    static class SavedState extends BaseSavedState {
+        boolean isOpen;
+
+        SavedState(Parcelable superState) {
+            super(superState);
+        }
+
+        private SavedState(Parcel in) {
+            super(in);
+            isOpen = in.readInt() != 0;
+        }
+
+        @Override
+        public void writeToParcel(Parcel out, int flags) {
+            super.writeToParcel(out, flags);
+            out.writeInt(isOpen ? 1 : 0);
+        }
+
+        public static final Parcelable.Creator<SavedState> CREATOR =
+                new Parcelable.Creator<SavedState>() {
+            public SavedState createFromParcel(Parcel in) {
+                return new SavedState(in);
+            }
+
+            public SavedState[] newArray(int size) {
+                return new SavedState[size];
+            }
+        };
+    }
+
+    class AccessibilityDelegate extends AccessibilityDelegateCompat {
+        private final Rect mTmpRect = new Rect();
+
+        @Override
+        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
+            final AccessibilityNodeInfoCompat superNode = AccessibilityNodeInfoCompat.obtain(info);
+            super.onInitializeAccessibilityNodeInfo(host, superNode);
+            copyNodeInfoNoChildren(info, superNode);
+            superNode.recycle();
+
+            info.setClassName(OverlappingPaneLayout.class.getName());
+            info.setSource(host);
+
+            final ViewParent parent = ViewCompat.getParentForAccessibility(host);
+            if (parent instanceof View) {
+                info.setParent((View) parent);
+            }
+
+            // This is a best-approximation of addChildrenForAccessibility()
+            // that accounts for filtering.
+            final int childCount = getChildCount();
+            for (int i = 0; i < childCount; i++) {
+                final View child = getChildAt(i);
+                if (child.getVisibility() == View.VISIBLE) {
+                    // Force importance to "yes" since we can't read the value.
+                    ViewCompat.setImportantForAccessibility(
+                            child, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES);
+                    info.addChild(child);
+                }
+            }
+        }
+
+        @Override
+        public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
+            super.onInitializeAccessibilityEvent(host, event);
+
+            event.setClassName(OverlappingPaneLayout.class.getName());
+        }
+
+        /**
+         * This should really be in AccessibilityNodeInfoCompat, but there unfortunately
+         * seem to be a few elements that are not easily cloneable using the underlying API.
+         * Leave it private here as it's not general-purpose useful.
+         */
+        private void copyNodeInfoNoChildren(AccessibilityNodeInfoCompat dest,
+                AccessibilityNodeInfoCompat src) {
+            final Rect rect = mTmpRect;
+
+            src.getBoundsInParent(rect);
+            dest.setBoundsInParent(rect);
+
+            src.getBoundsInScreen(rect);
+            dest.setBoundsInScreen(rect);
+
+            dest.setVisibleToUser(src.isVisibleToUser());
+            dest.setPackageName(src.getPackageName());
+            dest.setClassName(src.getClassName());
+            dest.setContentDescription(src.getContentDescription());
+
+            dest.setEnabled(src.isEnabled());
+            dest.setClickable(src.isClickable());
+            dest.setFocusable(src.isFocusable());
+            dest.setFocused(src.isFocused());
+            dest.setAccessibilityFocused(src.isAccessibilityFocused());
+            dest.setSelected(src.isSelected());
+            dest.setLongClickable(src.isLongClickable());
+
+            dest.addAction(src.getActions());
+
+            dest.setMovementGranularities(src.getMovementGranularities());
+        }
+    }
+}
diff --git a/src/com/android/dialer/widget/ViewDragHelper.java b/src/com/android/dialer/widget/ViewDragHelper.java
new file mode 100644
index 0000000..83e8707
--- /dev/null
+++ b/src/com/android/dialer/widget/ViewDragHelper.java
@@ -0,0 +1,1491 @@
+/*
+ * 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.
+ */
+
+
+package com.android.dialer.widget;
+
+import android.content.Context;
+import android.support.v4.view.MotionEventCompat;
+import android.support.v4.view.VelocityTrackerCompat;
+import android.support.v4.view.ViewCompat;
+import android.support.v4.widget.ScrollerCompat;
+import android.view.MotionEvent;
+import android.view.VelocityTracker;
+import android.view.View;
+import android.view.ViewConfiguration;
+import android.view.ViewGroup;
+import android.view.animation.Interpolator;
+
+import java.util.Arrays;
+
+/**
+ * ViewDragHelper is a utility class for writing custom ViewGroups. It offers a number
+ * of useful operations and state tracking for allowing a user to drag and reposition
+ * views within their parent ViewGroup.
+ */
+public class ViewDragHelper {
+    private static final String TAG = "ViewDragHelper";
+
+    /**
+     * A null/invalid pointer ID.
+     */
+    public static final int INVALID_POINTER = -1;
+
+    /**
+     * A view is not currently being dragged or animating as a result of a fling/snap.
+     */
+    public static final int STATE_IDLE = 0;
+
+    /**
+     * A view is currently being dragged. The position is currently changing as a result
+     * of user input or simulated user input.
+     */
+    public static final int STATE_DRAGGING = 1;
+
+    /**
+     * A view is currently settling into place as a result of a fling or
+     * predefined non-interactive motion.
+     */
+    public static final int STATE_SETTLING = 2;
+
+    /**
+     * Edge flag indicating that the left edge should be affected.
+     */
+    public static final int EDGE_LEFT = 1 << 0;
+
+    /**
+     * Edge flag indicating that the right edge should be affected.
+     */
+    public static final int EDGE_RIGHT = 1 << 1;
+
+    /**
+     * Edge flag indicating that the top edge should be affected.
+     */
+    public static final int EDGE_TOP = 1 << 2;
+
+    /**
+     * Edge flag indicating that the bottom edge should be affected.
+     */
+    public static final int EDGE_BOTTOM = 1 << 3;
+
+    /**
+     * Edge flag set indicating all edges should be affected.
+     */
+    public static final int EDGE_ALL = EDGE_LEFT | EDGE_TOP | EDGE_RIGHT | EDGE_BOTTOM;
+
+    /**
+     * Indicates that a check should occur along the horizontal axis
+     */
+    public static final int DIRECTION_HORIZONTAL = 1 << 0;
+
+    /**
+     * Indicates that a check should occur along the vertical axis
+     */
+    public static final int DIRECTION_VERTICAL = 1 << 1;
+
+    /**
+     * Indicates that a check should occur along all axes
+     */
+    public static final int DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;
+
+    private static final int EDGE_SIZE = 20; // dp
+
+    private static final int BASE_SETTLE_DURATION = 256; // ms
+    private static final int MAX_SETTLE_DURATION = 600; // ms
+
+    // Current drag state; idle, dragging or settling
+    private int mDragState;
+
+    // Distance to travel before a drag may begin
+    private int mTouchSlop;
+
+    // Last known position/pointer tracking
+    private int mActivePointerId = INVALID_POINTER;
+    private float[] mInitialMotionX;
+    private float[] mInitialMotionY;
+    private float[] mLastMotionX;
+    private float[] mLastMotionY;
+    private int[] mInitialEdgesTouched;
+    private int[] mEdgeDragsInProgress;
+    private int[] mEdgeDragsLocked;
+    private int mPointersDown;
+
+    private VelocityTracker mVelocityTracker;
+    private float mMaxVelocity;
+    private float mMinVelocity;
+
+    private int mEdgeSize;
+    private int mTrackingEdges;
+
+    private ScrollerCompat mScroller;
+
+    private final Callback mCallback;
+
+    private View mCapturedView;
+    private boolean mReleaseInProgress;
+
+    private final ViewGroup mParentView;
+
+    /**
+     * A Callback is used as a communication channel with the ViewDragHelper back to the
+     * parent view using it. <code>on*</code>methods are invoked on siginficant events and several
+     * accessor methods are expected to provide the ViewDragHelper with more information
+     * about the state of the parent view upon request. The callback also makes decisions
+     * governing the range and draggability of child views.
+     */
+    public static abstract class Callback {
+        /**
+         * Called when the drag state changes. See the <code>STATE_*</code> constants
+         * for more information.
+         *
+         * @param state The new drag state
+         *
+         * @see #STATE_IDLE
+         * @see #STATE_DRAGGING
+         * @see #STATE_SETTLING
+         */
+        public void onViewDragStateChanged(int state) {}
+
+        /**
+         * Called when the captured view's position changes as the result of a drag or settle.
+         *
+         * @param changedView View whose position changed
+         * @param left New X coordinate of the left edge of the view
+         * @param top New Y coordinate of the top edge of the view
+         * @param dx Change in X position from the last call
+         * @param dy Change in Y position from the last call
+         */
+        public void onViewPositionChanged(View changedView, int left, int top, int dx, int dy) {}
+
+        /**
+         * Called when a child view is captured for dragging or settling. The ID of the pointer
+         * currently dragging the captured view is supplied. If activePointerId is
+         * identified as {@link #INVALID_POINTER} the capture is programmatic instead of
+         * pointer-initiated.
+         *
+         * @param capturedChild Child view that was captured
+         * @param activePointerId Pointer id tracking the child capture
+         */
+        public void onViewCaptured(View capturedChild, int activePointerId) {}
+
+        /**
+         * Called when the child view is no longer being actively dragged.
+         * The fling velocity is also supplied, if relevant. The velocity values may
+         * be clamped to system minimums or maximums.
+         *
+         * <p>Calling code may decide to fling or otherwise release the view to let it
+         * settle into place. It should do so using {@link #settleCapturedViewAt(int, int)}
+         * or {@link #flingCapturedView(int, int, int, int)}. If the Callback invokes
+         * one of these methods, the ViewDragHelper will enter {@link #STATE_SETTLING}
+         * and the view capture will not fully end until it comes to a complete stop.
+         * If neither of these methods is invoked before <code>onViewReleased</code> returns,
+         * the view will stop in place and the ViewDragHelper will return to
+         * {@link #STATE_IDLE}.</p>
+         *
+         * @param releasedChild The captured child view now being released
+         * @param xvel X velocity of the pointer as it left the screen in pixels per second.
+         * @param yvel Y velocity of the pointer as it left the screen in pixels per second.
+         */
+        public void onViewReleased(View releasedChild, float xvel, float yvel) {}
+
+        /**
+         * Called when one of the subscribed edges in the parent view has been touched
+         * by the user while no child view is currently captured.
+         *
+         * @param edgeFlags A combination of edge flags describing the edge(s) currently touched
+         * @param pointerId ID of the pointer touching the described edge(s)
+         * @see #EDGE_LEFT
+         * @see #EDGE_TOP
+         * @see #EDGE_RIGHT
+         * @see #EDGE_BOTTOM
+         */
+        public void onEdgeTouched(int edgeFlags, int pointerId) {}
+
+        /**
+         * Called when the given edge may become locked. This can happen if an edge drag
+         * was preliminarily rejected before beginning, but after {@link #onEdgeTouched(int, int)}
+         * was called. This method should return true to lock this edge or false to leave it
+         * unlocked. The default behavior is to leave edges unlocked.
+         *
+         * @param edgeFlags A combination of edge flags describing the edge(s) locked
+         * @return true to lock the edge, false to leave it unlocked
+         */
+        public boolean onEdgeLock(int edgeFlags) {
+            return false;
+        }
+
+        /**
+         * Called when the user has started a deliberate drag away from one
+         * of the subscribed edges in the parent view while no child view is currently captured.
+         *
+         * @param edgeFlags A combination of edge flags describing the edge(s) dragged
+         * @param pointerId ID of the pointer touching the described edge(s)
+         * @see #EDGE_LEFT
+         * @see #EDGE_TOP
+         * @see #EDGE_RIGHT
+         * @see #EDGE_BOTTOM
+         */
+        public void onEdgeDragStarted(int edgeFlags, int pointerId) {}
+
+        /**
+         * Called to determine the Z-order of child views.
+         *
+         * @param index the ordered position to query for
+         * @return index of the view that should be ordered at position <code>index</code>
+         */
+        public int getOrderedChildIndex(int index) {
+            return index;
+        }
+
+        /**
+         * Return the magnitude of a draggable child view's horizontal range of motion in pixels.
+         * This method should return 0 for views that cannot move horizontally.
+         *
+         * @param child Child view to check
+         * @return range of horizontal motion in pixels
+         */
+        public int getViewHorizontalDragRange(View child) {
+            return 0;
+        }
+
+        /**
+         * Return the magnitude of a draggable child view's vertical range of motion in pixels.
+         * This method should return 0 for views that cannot move vertically.
+         *
+         * @param child Child view to check
+         * @return range of vertical motion in pixels
+         */
+        public int getViewVerticalDragRange(View child) {
+            return 0;
+        }
+
+        /**
+         * Called when the user's input indicates that they want to capture the given child view
+         * with the pointer indicated by pointerId. The callback should return true if the user
+         * is permitted to drag the given view with the indicated pointer.
+         *
+         * <p>ViewDragHelper may call this method multiple times for the same view even if
+         * the view is already captured; this indicates that a new pointer is trying to take
+         * control of the view.</p>
+         *
+         * <p>If this method returns true, a call to {@link #onViewCaptured(android.view.View, int)}
+         * will follow if the capture is successful.</p>
+         *
+         * @param child Child the user is attempting to capture
+         * @param pointerId ID of the pointer attempting the capture
+         * @return true if capture should be allowed, false otherwise
+         */
+        public abstract boolean tryCaptureView(View child, int pointerId);
+
+        /**
+         * Restrict the motion of the dragged child view along the horizontal axis.
+         * The default implementation does not allow horizontal motion; the extending
+         * class must override this method and provide the desired clamping.
+         *
+         *
+         * @param child Child view being dragged
+         * @param left Attempted motion along the X axis
+         * @param dx Proposed change in position for left
+         * @return The new clamped position for left
+         */
+        public int clampViewPositionHorizontal(View child, int left, int dx) {
+            return 0;
+        }
+
+        /**
+         * Restrict the motion of the dragged child view along the vertical axis.
+         * The default implementation does not allow vertical motion; the extending
+         * class must override this method and provide the desired clamping.
+         *
+         *
+         * @param child Child view being dragged
+         * @param top Attempted motion along the Y axis
+         * @param dy Proposed change in position for top
+         * @return The new clamped position for top
+         */
+        public int clampViewPositionVertical(View child, int top, int dy) {
+            return 0;
+        }
+    }
+
+    /**
+     * Interpolator defining the animation curve for mScroller
+     */
+    private static final Interpolator sInterpolator = new Interpolator() {
+        public float getInterpolation(float t) {
+            t -= 1.0f;
+            return t * t * t * t * t + 1.0f;
+        }
+    };
+
+    private final Runnable mSetIdleRunnable = new Runnable() {
+        public void run() {
+            setDragState(STATE_IDLE);
+        }
+    };
+
+    /**
+     * Factory method to create a new ViewDragHelper.
+     *
+     * @param forParent Parent view to monitor
+     * @param cb Callback to provide information and receive events
+     * @return a new ViewDragHelper instance
+     */
+    public static ViewDragHelper create(ViewGroup forParent, Callback cb) {
+        return new ViewDragHelper(forParent.getContext(), forParent, cb);
+    }
+
+    /**
+     * Factory method to create a new ViewDragHelper.
+     *
+     * @param forParent Parent view to monitor
+     * @param sensitivity Multiplier for how sensitive the helper should be about detecting
+     *                    the start of a drag. Larger values are more sensitive. 1.0f is normal.
+     * @param cb Callback to provide information and receive events
+     * @return a new ViewDragHelper instance
+     */
+    public static ViewDragHelper create(ViewGroup forParent, float sensitivity, Callback cb) {
+        final ViewDragHelper helper = create(forParent, cb);
+        helper.mTouchSlop = (int) (helper.mTouchSlop * (1 / sensitivity));
+        return helper;
+    }
+
+    /**
+     * Apps should use ViewDragHelper.create() to get a new instance.
+     * This will allow VDH to use internal compatibility implementations for different
+     * platform versions.
+     *
+     * @param context Context to initialize config-dependent params from
+     * @param forParent Parent view to monitor
+     */
+    private ViewDragHelper(Context context, ViewGroup forParent, Callback cb) {
+        if (forParent == null) {
+            throw new IllegalArgumentException("Parent view may not be null");
+        }
+        if (cb == null) {
+            throw new IllegalArgumentException("Callback may not be null");
+        }
+
+        mParentView = forParent;
+        mCallback = cb;
+
+        final ViewConfiguration vc = ViewConfiguration.get(context);
+        final float density = context.getResources().getDisplayMetrics().density;
+        mEdgeSize = (int) (EDGE_SIZE * density + 0.5f);
+
+        mTouchSlop = vc.getScaledTouchSlop();
+        mMaxVelocity = vc.getScaledMaximumFlingVelocity();
+        mMinVelocity = vc.getScaledMinimumFlingVelocity();
+        mScroller = ScrollerCompat.create(context, sInterpolator);
+    }
+
+    /**
+     * Set the minimum velocity that will be detected as having a magnitude greater than zero
+     * in pixels per second. Callback methods accepting a velocity will be clamped appropriately.
+     *
+     * @param minVel Minimum velocity to detect
+     */
+    public void setMinVelocity(float minVel) {
+        mMinVelocity = minVel;
+    }
+
+    /**
+     * Return the currently configured minimum velocity. Any flings with a magnitude less
+     * than this value in pixels per second. Callback methods accepting a velocity will receive
+     * zero as a velocity value if the real detected velocity was below this threshold.
+     *
+     * @return the minimum velocity that will be detected
+     */
+    public float getMinVelocity() {
+        return mMinVelocity;
+    }
+
+    /**
+     * Retrieve the current drag state of this helper. This will return one of
+     * {@link #STATE_IDLE}, {@link #STATE_DRAGGING} or {@link #STATE_SETTLING}.
+     * @return The current drag state
+     */
+    public int getViewDragState() {
+        return mDragState;
+    }
+
+    /**
+     * Enable edge tracking for the selected edges of the parent view.
+     * The callback's {@link Callback#onEdgeTouched(int, int)} and
+     * {@link Callback#onEdgeDragStarted(int, int)} methods will only be invoked
+     * for edges for which edge tracking has been enabled.
+     *
+     * @param edgeFlags Combination of edge flags describing the edges to watch
+     * @see #EDGE_LEFT
+     * @see #EDGE_TOP
+     * @see #EDGE_RIGHT
+     * @see #EDGE_BOTTOM
+     */
+    public void setEdgeTrackingEnabled(int edgeFlags) {
+        mTrackingEdges = edgeFlags;
+    }
+
+    /**
+     * Return the size of an edge. This is the range in pixels along the edges of this view
+     * that will actively detect edge touches or drags if edge tracking is enabled.
+     *
+     * @return The size of an edge in pixels
+     * @see #setEdgeTrackingEnabled(int)
+     */
+    public int getEdgeSize() {
+        return mEdgeSize;
+    }
+
+    /**
+     * Capture a specific child view for dragging within the parent. The callback will be notified
+     * but {@link Callback#tryCaptureView(android.view.View, int)} will not be asked permission to
+     * capture this view.
+     *
+     * @param childView Child view to capture
+     * @param activePointerId ID of the pointer that is dragging the captured child view
+     */
+    public void captureChildView(View childView, int activePointerId) {
+        if (childView.getParent() != mParentView) {
+            throw new IllegalArgumentException("captureChildView: parameter must be a descendant " +
+                    "of the ViewDragHelper's tracked parent view (" + mParentView + ")");
+        }
+
+        mCapturedView = childView;
+        mActivePointerId = activePointerId;
+        mCallback.onViewCaptured(childView, activePointerId);
+        setDragState(STATE_DRAGGING);
+    }
+
+    /**
+     * @return The currently captured view, or null if no view has been captured.
+     */
+    public View getCapturedView() {
+        return mCapturedView;
+    }
+
+    /**
+     * @return The ID of the pointer currently dragging the captured view,
+     *         or {@link #INVALID_POINTER}.
+     */
+    public int getActivePointerId() {
+        return mActivePointerId;
+    }
+
+    /**
+     * @return The minimum distance in pixels that the user must travel to initiate a drag
+     */
+    public int getTouchSlop() {
+        return mTouchSlop;
+    }
+
+    /**
+     * The result of a call to this method is equivalent to
+     * {@link #processTouchEvent(android.view.MotionEvent)} receiving an ACTION_CANCEL event.
+     */
+    public void cancel() {
+        mActivePointerId = INVALID_POINTER;
+        clearMotionHistory();
+
+        if (mVelocityTracker != null) {
+            mVelocityTracker.recycle();
+            mVelocityTracker = null;
+        }
+    }
+
+    /**
+     * {@link #cancel()}, but also abort all motion in progress and snap to the end of any
+     * animation.
+     */
+    public void abort() {
+        cancel();
+        if (mDragState == STATE_SETTLING) {
+            final int oldX = mScroller.getCurrX();
+            final int oldY = mScroller.getCurrY();
+            mScroller.abortAnimation();
+            final int newX = mScroller.getCurrX();
+            final int newY = mScroller.getCurrY();
+            mCallback.onViewPositionChanged(mCapturedView, newX, newY, newX - oldX, newY - oldY);
+        }
+        setDragState(STATE_IDLE);
+    }
+
+    /**
+     * Animate the view <code>child</code> to the given (left, top) position.
+     * If this method returns true, the caller should invoke {@link #continueSettling(boolean)}
+     * on each subsequent frame to continue the motion until it returns false. If this method
+     * returns false there is no further work to do to complete the movement.
+     *
+     * <p>This operation does not count as a capture event, though {@link #getCapturedView()}
+     * will still report the sliding view while the slide is in progress.</p>
+     *
+     * @param child Child view to capture and animate
+     * @param finalLeft Final left position of child
+     * @param finalTop Final top position of child
+     * @return true if animation should continue through {@link #continueSettling(boolean)} calls
+     */
+    public boolean smoothSlideViewTo(View child, int finalLeft, int finalTop) {
+        mCapturedView = child;
+        mActivePointerId = INVALID_POINTER;
+
+        return forceSettleCapturedViewAt(finalLeft, finalTop, 0, 0);
+    }
+
+    /**
+     * Settle the captured view at the given (left, top) position.
+     * The appropriate velocity from prior motion will be taken into account.
+     * If this method returns true, the caller should invoke {@link #continueSettling(boolean)}
+     * on each subsequent frame to continue the motion until it returns false. If this method
+     * returns false there is no further work to do to complete the movement.
+     *
+     * @param finalLeft Settled left edge position for the captured view
+     * @param finalTop Settled top edge position for the captured view
+     * @return true if animation should continue through {@link #continueSettling(boolean)} calls
+     */
+    public boolean settleCapturedViewAt(int finalLeft, int finalTop) {
+        if (!mReleaseInProgress) {
+            throw new IllegalStateException("Cannot settleCapturedViewAt outside of a call to " +
+                    "Callback#onViewReleased");
+        }
+
+        return forceSettleCapturedViewAt(finalLeft, finalTop,
+                (int) VelocityTrackerCompat.getXVelocity(mVelocityTracker, mActivePointerId),
+                (int) VelocityTrackerCompat.getYVelocity(mVelocityTracker, mActivePointerId));
+    }
+
+    /**
+     * Settle the captured view at the given (left, top) position.
+     *
+     * @param finalLeft Target left position for the captured view
+     * @param finalTop Target top position for the captured view
+     * @param xvel Horizontal velocity
+     * @param yvel Vertical velocity
+     * @return true if animation should continue through {@link #continueSettling(boolean)} calls
+     */
+    private boolean forceSettleCapturedViewAt(int finalLeft, int finalTop, int xvel, int yvel) {
+        final int startLeft = mCapturedView.getLeft();
+        final int startTop = mCapturedView.getTop();
+        final int dx = finalLeft - startLeft;
+        final int dy = finalTop - startTop;
+
+        if (dx == 0 && dy == 0) {
+            // Nothing to do. Send callbacks, be done.
+            mScroller.abortAnimation();
+            setDragState(STATE_IDLE);
+            return false;
+        }
+
+        final int duration = computeSettleDuration(mCapturedView, dx, dy, xvel, yvel);
+        mScroller.startScroll(startLeft, startTop, dx, dy, duration);
+
+        setDragState(STATE_SETTLING);
+        return true;
+    }
+
+    private int computeSettleDuration(View child, int dx, int dy, int xvel, int yvel) {
+        xvel = clampMag(xvel, (int) mMinVelocity, (int) mMaxVelocity);
+        yvel = clampMag(yvel, (int) mMinVelocity, (int) mMaxVelocity);
+        final int absDx = Math.abs(dx);
+        final int absDy = Math.abs(dy);
+        final int absXVel = Math.abs(xvel);
+        final int absYVel = Math.abs(yvel);
+        final int addedVel = absXVel + absYVel;
+        final int addedDistance = absDx + absDy;
+
+        final float xweight = xvel != 0 ? (float) absXVel / addedVel :
+                (float) absDx / addedDistance;
+        final float yweight = yvel != 0 ? (float) absYVel / addedVel :
+                (float) absDy / addedDistance;
+
+        int xduration = computeAxisDuration(dx, xvel, mCallback.getViewHorizontalDragRange(child));
+        int yduration = computeAxisDuration(dy, yvel, mCallback.getViewVerticalDragRange(child));
+
+        return (int) (xduration * xweight + yduration * yweight);
+    }
+
+    private int computeAxisDuration(int delta, int velocity, int motionRange) {
+        if (delta == 0) {
+            return 0;
+        }
+
+        final int width = mParentView.getWidth();
+        final int halfWidth = width / 2;
+        final float distanceRatio = Math.min(1f, (float) Math.abs(delta) / width);
+        final float distance = halfWidth + halfWidth *
+                distanceInfluenceForSnapDuration(distanceRatio);
+
+        int duration;
+        velocity = Math.abs(velocity);
+        if (velocity > 0) {
+            duration = 4 * Math.round(1000 * Math.abs(distance / velocity));
+        } else {
+            final float range = (float) Math.abs(delta) / motionRange;
+            duration = (int) ((range + 1) * BASE_SETTLE_DURATION);
+        }
+        return Math.min(duration, MAX_SETTLE_DURATION);
+    }
+
+    /**
+     * Clamp the magnitude of value for absMin and absMax.
+     * If the value is below the minimum, it will be clamped to zero.
+     * If the value is above the maximum, it will be clamped to the maximum.
+     *
+     * @param value Value to clamp
+     * @param absMin Absolute value of the minimum significant value to return
+     * @param absMax Absolute value of the maximum value to return
+     * @return The clamped value with the same sign as <code>value</code>
+     */
+    private int clampMag(int value, int absMin, int absMax) {
+        final int absValue = Math.abs(value);
+        if (absValue < absMin) return 0;
+        if (absValue > absMax) return value > 0 ? absMax : -absMax;
+        return value;
+    }
+
+    /**
+     * Clamp the magnitude of value for absMin and absMax.
+     * If the value is below the minimum, it will be clamped to zero.
+     * If the value is above the maximum, it will be clamped to the maximum.
+     *
+     * @param value Value to clamp
+     * @param absMin Absolute value of the minimum significant value to return
+     * @param absMax Absolute value of the maximum value to return
+     * @return The clamped value with the same sign as <code>value</code>
+     */
+    private float clampMag(float value, float absMin, float absMax) {
+        final float absValue = Math.abs(value);
+        if (absValue < absMin) return 0;
+        if (absValue > absMax) return value > 0 ? absMax : -absMax;
+        return value;
+    }
+
+    private float distanceInfluenceForSnapDuration(float f) {
+        f -= 0.5f; // center the values about 0.
+        f *= 0.3f * Math.PI / 2.0f;
+        return (float) Math.sin(f);
+    }
+
+    /**
+     * Settle the captured view based on standard free-moving fling behavior.
+     * The caller should invoke {@link #continueSettling(boolean)} on each subsequent frame
+     * to continue the motion until it returns false.
+     *
+     * @param minLeft Minimum X position for the view's left edge
+     * @param minTop Minimum Y position for the view's top edge
+     * @param maxLeft Maximum X position for the view's left edge
+     * @param maxTop Maximum Y position for the view's top edge
+     */
+    public void flingCapturedView(int minLeft, int minTop, int maxLeft, int maxTop) {
+        if (!mReleaseInProgress) {
+            throw new IllegalStateException("Cannot flingCapturedView outside of a call to " +
+                    "Callback#onViewReleased");
+        }
+
+        mScroller.fling(mCapturedView.getLeft(), mCapturedView.getTop(),
+                (int) VelocityTrackerCompat.getXVelocity(mVelocityTracker, mActivePointerId),
+                (int) VelocityTrackerCompat.getYVelocity(mVelocityTracker, mActivePointerId),
+                minLeft, maxLeft, minTop, maxTop);
+
+        setDragState(STATE_SETTLING);
+    }
+
+    /**
+     * Move the captured settling view by the appropriate amount for the current time.
+     * If <code>continueSettling</code> returns true, the caller should call it again
+     * on the next frame to continue.
+     *
+     * @param deferCallbacks true if state callbacks should be deferred via posted message.
+     *                       Set this to true if you are calling this method from
+     *                       {@link android.view.View#computeScroll()} or similar methods
+     *                       invoked as part of layout or drawing.
+     * @return true if settle is still in progress
+     */
+    public boolean continueSettling(boolean deferCallbacks) {
+        if (mDragState == STATE_SETTLING) {
+            boolean keepGoing = mScroller.computeScrollOffset();
+            final int x = mScroller.getCurrX();
+            final int y = mScroller.getCurrY();
+            final int dx = x - mCapturedView.getLeft();
+            final int dy = y - mCapturedView.getTop();
+
+            if (dx != 0) {
+                mCapturedView.offsetLeftAndRight(dx);
+            }
+            if (dy != 0) {
+                mCapturedView.offsetTopAndBottom(dy);
+            }
+
+            if (dx != 0 || dy != 0) {
+                mCallback.onViewPositionChanged(mCapturedView, x, y, dx, dy);
+            }
+
+            if (keepGoing && x == mScroller.getFinalX() && y == mScroller.getFinalY()) {
+                // Close enough. The interpolator/scroller might think we're still moving
+                // but the user sure doesn't.
+                mScroller.abortAnimation();
+                keepGoing = mScroller.isFinished();
+            }
+
+            if (!keepGoing) {
+                if (deferCallbacks) {
+                    mParentView.post(mSetIdleRunnable);
+                } else {
+                    setDragState(STATE_IDLE);
+                }
+            }
+        }
+
+        return mDragState == STATE_SETTLING;
+    }
+
+    /**
+     * Like all callback events this must happen on the UI thread, but release
+     * involves some extra semantics. During a release (mReleaseInProgress)
+     * is the only time it is valid to call {@link #settleCapturedViewAt(int, int)}
+     * or {@link #flingCapturedView(int, int, int, int)}.
+     */
+    private void dispatchViewReleased(float xvel, float yvel) {
+        mReleaseInProgress = true;
+        mCallback.onViewReleased(mCapturedView, xvel, yvel);
+        mReleaseInProgress = false;
+
+        if (mDragState == STATE_DRAGGING) {
+            // onViewReleased didn't call a method that would have changed this. Go idle.
+            setDragState(STATE_IDLE);
+        }
+    }
+
+    private void clearMotionHistory() {
+        if (mInitialMotionX == null) {
+            return;
+        }
+        Arrays.fill(mInitialMotionX, 0);
+        Arrays.fill(mInitialMotionY, 0);
+        Arrays.fill(mLastMotionX, 0);
+        Arrays.fill(mLastMotionY, 0);
+        Arrays.fill(mInitialEdgesTouched, 0);
+        Arrays.fill(mEdgeDragsInProgress, 0);
+        Arrays.fill(mEdgeDragsLocked, 0);
+        mPointersDown = 0;
+    }
+
+    private void clearMotionHistory(int pointerId) {
+        if (mInitialMotionX == null) {
+            return;
+        }
+        mInitialMotionX[pointerId] = 0;
+        mInitialMotionY[pointerId] = 0;
+        mLastMotionX[pointerId] = 0;
+        mLastMotionY[pointerId] = 0;
+        mInitialEdgesTouched[pointerId] = 0;
+        mEdgeDragsInProgress[pointerId] = 0;
+        mEdgeDragsLocked[pointerId] = 0;
+        mPointersDown &= ~(1 << pointerId);
+    }
+
+    private void ensureMotionHistorySizeForId(int pointerId) {
+        if (mInitialMotionX == null || mInitialMotionX.length <= pointerId) {
+            float[] imx = new float[pointerId + 1];
+            float[] imy = new float[pointerId + 1];
+            float[] lmx = new float[pointerId + 1];
+            float[] lmy = new float[pointerId + 1];
+            int[] iit = new int[pointerId + 1];
+            int[] edip = new int[pointerId + 1];
+            int[] edl = new int[pointerId + 1];
+
+            if (mInitialMotionX != null) {
+                System.arraycopy(mInitialMotionX, 0, imx, 0, mInitialMotionX.length);
+                System.arraycopy(mInitialMotionY, 0, imy, 0, mInitialMotionY.length);
+                System.arraycopy(mLastMotionX, 0, lmx, 0, mLastMotionX.length);
+                System.arraycopy(mLastMotionY, 0, lmy, 0, mLastMotionY.length);
+                System.arraycopy(mInitialEdgesTouched, 0, iit, 0, mInitialEdgesTouched.length);
+                System.arraycopy(mEdgeDragsInProgress, 0, edip, 0, mEdgeDragsInProgress.length);
+                System.arraycopy(mEdgeDragsLocked, 0, edl, 0, mEdgeDragsLocked.length);
+            }
+
+            mInitialMotionX = imx;
+            mInitialMotionY = imy;
+            mLastMotionX = lmx;
+            mLastMotionY = lmy;
+            mInitialEdgesTouched = iit;
+            mEdgeDragsInProgress = edip;
+            mEdgeDragsLocked = edl;
+        }
+    }
+
+    private void saveInitialMotion(float x, float y, int pointerId) {
+        ensureMotionHistorySizeForId(pointerId);
+        mInitialMotionX[pointerId] = mLastMotionX[pointerId] = x;
+        mInitialMotionY[pointerId] = mLastMotionY[pointerId] = y;
+        mInitialEdgesTouched[pointerId] = getEdgesTouched((int) x, (int) y);
+        mPointersDown |= 1 << pointerId;
+    }
+
+    private void saveLastMotion(MotionEvent ev) {
+        final int pointerCount = MotionEventCompat.getPointerCount(ev);
+        for (int i = 0; i < pointerCount; i++) {
+            final int pointerId = MotionEventCompat.getPointerId(ev, i);
+            final float x = MotionEventCompat.getX(ev, i);
+            final float y = MotionEventCompat.getY(ev, i);
+            mLastMotionX[pointerId] = x;
+            mLastMotionY[pointerId] = y;
+        }
+    }
+
+    /**
+     * Check if the given pointer ID represents a pointer that is currently down (to the best
+     * of the ViewDragHelper's knowledge).
+     *
+     * <p>The state used to report this information is populated by the methods
+     * {@link #shouldInterceptTouchEvent(android.view.MotionEvent)} or
+     * {@link #processTouchEvent(android.view.MotionEvent)}. If one of these methods has not
+     * been called for all relevant MotionEvents to track, the information reported
+     * by this method may be stale or incorrect.</p>
+     *
+     * @param pointerId pointer ID to check; corresponds to IDs provided by MotionEvent
+     * @return true if the pointer with the given ID is still down
+     */
+    public boolean isPointerDown(int pointerId) {
+        return (mPointersDown & 1 << pointerId) != 0;
+    }
+
+    void setDragState(int state) {
+        if (mDragState != state) {
+            mDragState = state;
+            mCallback.onViewDragStateChanged(state);
+            if (state == STATE_IDLE) {
+                mCapturedView = null;
+            }
+        }
+    }
+
+    /**
+     * Attempt to capture the view with the given pointer ID. The callback will be involved.
+     * This will put us into the "dragging" state. If we've already captured this view with
+     * this pointer this method will immediately return true without consulting the callback.
+     *
+     * @param toCapture View to capture
+     * @param pointerId Pointer to capture with
+     * @return true if capture was successful
+     */
+    boolean tryCaptureViewForDrag(View toCapture, int pointerId) {
+        if (toCapture == mCapturedView && mActivePointerId == pointerId) {
+            // Already done!
+            return true;
+        }
+        if (toCapture != null && mCallback.tryCaptureView(toCapture, pointerId)) {
+            mActivePointerId = pointerId;
+            captureChildView(toCapture, pointerId);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Tests scrollability within child views of v given a delta of dx.
+     *
+     * @param v View to test for horizontal scrollability
+     * @param checkV Whether the view v passed should itself be checked for scrollability (true),
+     *               or just its children (false).
+     * @param dx Delta scrolled in pixels along the X axis
+     * @param dy Delta scrolled in pixels along the Y axis
+     * @param x X coordinate of the active touch point
+     * @param y Y coordinate of the active touch point
+     * @return true if child views of v can be scrolled by delta of dx.
+     */
+    protected boolean canScroll(View v, boolean checkV, int dx, int dy, int x, int y) {
+        if (v instanceof ViewGroup) {
+            final ViewGroup group = (ViewGroup) v;
+            final int scrollX = v.getScrollX();
+            final int scrollY = v.getScrollY();
+            final int count = group.getChildCount();
+            // Count backwards - let topmost views consume scroll distance first.
+            for (int i = count - 1; i >= 0; i--) {
+                // TODO: Add versioned support here for transformed views.
+                // This will not work for transformed views in Honeycomb+
+                final View child = group.getChildAt(i);
+                if (x + scrollX >= child.getLeft() && x + scrollX < child.getRight() &&
+                        y + scrollY >= child.getTop() && y + scrollY < child.getBottom() &&
+                        canScroll(child, true, dx, dy, x + scrollX - child.getLeft(),
+                                y + scrollY - child.getTop())) {
+                    return true;
+                }
+            }
+        }
+
+        return checkV && (ViewCompat.canScrollHorizontally(v, -dx) ||
+                ViewCompat.canScrollVertically(v, -dy));
+    }
+
+    /**
+     * Check if this event as provided to the parent view's onInterceptTouchEvent should
+     * cause the parent to intercept the touch event stream.
+     *
+     * @param ev MotionEvent provided to onInterceptTouchEvent
+     * @return true if the parent view should return true from onInterceptTouchEvent
+     */
+    public boolean shouldInterceptTouchEvent(MotionEvent ev) {
+        final int action = MotionEventCompat.getActionMasked(ev);
+        final int actionIndex = MotionEventCompat.getActionIndex(ev);
+
+        if (action == MotionEvent.ACTION_DOWN) {
+            // Reset things for a new event stream, just in case we didn't get
+            // the whole previous stream.
+            cancel();
+        }
+
+        if (mVelocityTracker == null) {
+            mVelocityTracker = VelocityTracker.obtain();
+        }
+        mVelocityTracker.addMovement(ev);
+
+        switch (action) {
+            case MotionEvent.ACTION_DOWN: {
+                final float x = ev.getX();
+                final float y = ev.getY();
+                final int pointerId = MotionEventCompat.getPointerId(ev, 0);
+                saveInitialMotion(x, y, pointerId);
+
+                final View toCapture = findTopChildUnder((int) x, (int) y);
+
+                // Catch a settling view if possible.
+                if (toCapture == mCapturedView && mDragState == STATE_SETTLING) {
+                    tryCaptureViewForDrag(toCapture, pointerId);
+                }
+
+                final int edgesTouched = mInitialEdgesTouched[pointerId];
+                if ((edgesTouched & mTrackingEdges) != 0) {
+                    mCallback.onEdgeTouched(edgesTouched & mTrackingEdges, pointerId);
+                }
+                break;
+            }
+
+            case MotionEventCompat.ACTION_POINTER_DOWN: {
+                final int pointerId = MotionEventCompat.getPointerId(ev, actionIndex);
+                final float x = MotionEventCompat.getX(ev, actionIndex);
+                final float y = MotionEventCompat.getY(ev, actionIndex);
+
+                saveInitialMotion(x, y, pointerId);
+
+                // A ViewDragHelper can only manipulate one view at a time.
+                if (mDragState == STATE_IDLE) {
+                    final int edgesTouched = mInitialEdgesTouched[pointerId];
+                    if ((edgesTouched & mTrackingEdges) != 0) {
+                        mCallback.onEdgeTouched(edgesTouched & mTrackingEdges, pointerId);
+                    }
+                } else if (mDragState == STATE_SETTLING) {
+                    // Catch a settling view if possible.
+                    final View toCapture = findTopChildUnder((int) x, (int) y);
+                    if (toCapture == mCapturedView) {
+                        tryCaptureViewForDrag(toCapture, pointerId);
+                    }
+                }
+                break;
+            }
+
+            case MotionEvent.ACTION_MOVE: {
+                // First to cross a touch slop over a draggable view wins. Also report edge drags.
+                final int pointerCount = MotionEventCompat.getPointerCount(ev);
+                for (int i = 0; i < pointerCount; i++) {
+                    final int pointerId = MotionEventCompat.getPointerId(ev, i);
+                    final float x = MotionEventCompat.getX(ev, i);
+                    final float y = MotionEventCompat.getY(ev, i);
+                    final float dx = x - mInitialMotionX[pointerId];
+                    final float dy = y - mInitialMotionY[pointerId];
+
+                    reportNewEdgeDrags(dx, dy, pointerId);
+                    if (mDragState == STATE_DRAGGING) {
+                        // Callback might have started an edge drag
+                        break;
+                    }
+
+                    final View toCapture = findTopChildUnder((int) x, (int) y);
+                    if (toCapture != null && checkTouchSlop(toCapture, dx, dy) &&
+                            tryCaptureViewForDrag(toCapture, pointerId)) {
+                        break;
+                    }
+                }
+                saveLastMotion(ev);
+                break;
+            }
+
+            case MotionEventCompat.ACTION_POINTER_UP: {
+                final int pointerId = MotionEventCompat.getPointerId(ev, actionIndex);
+                clearMotionHistory(pointerId);
+                break;
+            }
+
+            case MotionEvent.ACTION_UP:
+            case MotionEvent.ACTION_CANCEL: {
+                cancel();
+                break;
+            }
+        }
+
+        return mDragState == STATE_DRAGGING;
+    }
+
+    /**
+     * Process a touch event received by the parent view. This method will dispatch callback events
+     * as needed before returning. The parent view's onTouchEvent implementation should call this.
+     *
+     * @param ev The touch event received by the parent view
+     */
+    public void processTouchEvent(MotionEvent ev) {
+        final int action = MotionEventCompat.getActionMasked(ev);
+        final int actionIndex = MotionEventCompat.getActionIndex(ev);
+
+        if (action == MotionEvent.ACTION_DOWN) {
+            // Reset things for a new event stream, just in case we didn't get
+            // the whole previous stream.
+            cancel();
+        }
+
+        if (mVelocityTracker == null) {
+            mVelocityTracker = VelocityTracker.obtain();
+        }
+        mVelocityTracker.addMovement(ev);
+
+        switch (action) {
+            case MotionEvent.ACTION_DOWN: {
+                final float x = ev.getX();
+                final float y = ev.getY();
+                final int pointerId = MotionEventCompat.getPointerId(ev, 0);
+                final View toCapture = findTopChildUnder((int) x, (int) y);
+
+                saveInitialMotion(x, y, pointerId);
+
+                // Since the parent is already directly processing this touch event,
+                // there is no reason to delay for a slop before dragging.
+                // Start immediately if possible.
+                tryCaptureViewForDrag(toCapture, pointerId);
+
+                final int edgesTouched = mInitialEdgesTouched[pointerId];
+                if ((edgesTouched & mTrackingEdges) != 0) {
+                    mCallback.onEdgeTouched(edgesTouched & mTrackingEdges, pointerId);
+                }
+                break;
+            }
+
+            case MotionEventCompat.ACTION_POINTER_DOWN: {
+                final int pointerId = MotionEventCompat.getPointerId(ev, actionIndex);
+                final float x = MotionEventCompat.getX(ev, actionIndex);
+                final float y = MotionEventCompat.getY(ev, actionIndex);
+
+                saveInitialMotion(x, y, pointerId);
+
+                // A ViewDragHelper can only manipulate one view at a time.
+                if (mDragState == STATE_IDLE) {
+                    // If we're idle we can do anything! Treat it like a normal down event.
+
+                    final View toCapture = findTopChildUnder((int) x, (int) y);
+                    tryCaptureViewForDrag(toCapture, pointerId);
+
+                    final int edgesTouched = mInitialEdgesTouched[pointerId];
+                    if ((edgesTouched & mTrackingEdges) != 0) {
+                        mCallback.onEdgeTouched(edgesTouched & mTrackingEdges, pointerId);
+                    }
+                } else if (isCapturedViewUnder((int) x, (int) y)) {
+                    // We're still tracking a captured view. If the same view is under this
+                    // point, we'll swap to controlling it with this pointer instead.
+                    // (This will still work if we're "catching" a settling view.)
+
+                    tryCaptureViewForDrag(mCapturedView, pointerId);
+                }
+                break;
+            }
+
+            case MotionEvent.ACTION_MOVE: {
+                if (mDragState == STATE_DRAGGING) {
+                    final int index = MotionEventCompat.findPointerIndex(ev, mActivePointerId);
+                    final float x = MotionEventCompat.getX(ev, index);
+                    final float y = MotionEventCompat.getY(ev, index);
+                    final int idx = (int) (x - mLastMotionX[mActivePointerId]);
+                    final int idy = (int) (y - mLastMotionY[mActivePointerId]);
+
+                    dragTo(mCapturedView.getLeft() + idx, mCapturedView.getTop() + idy, idx, idy);
+
+                    saveLastMotion(ev);
+                } else {
+                    // Check to see if any pointer is now over a draggable view.
+                    final int pointerCount = MotionEventCompat.getPointerCount(ev);
+                    for (int i = 0; i < pointerCount; i++) {
+                        final int pointerId = MotionEventCompat.getPointerId(ev, i);
+                        final float x = MotionEventCompat.getX(ev, i);
+                        final float y = MotionEventCompat.getY(ev, i);
+                        final float dx = x - mInitialMotionX[pointerId];
+                        final float dy = y - mInitialMotionY[pointerId];
+
+                        reportNewEdgeDrags(dx, dy, pointerId);
+                        if (mDragState == STATE_DRAGGING) {
+                            // Callback might have started an edge drag.
+                            break;
+                        }
+
+                        final View toCapture = findTopChildUnder((int) x, (int) y);
+                        if (checkTouchSlop(toCapture, dx, dy) &&
+                                tryCaptureViewForDrag(toCapture, pointerId)) {
+                            break;
+                        }
+                    }
+                    saveLastMotion(ev);
+                }
+                break;
+            }
+
+            case MotionEventCompat.ACTION_POINTER_UP: {
+                final int pointerId = MotionEventCompat.getPointerId(ev, actionIndex);
+                if (mDragState == STATE_DRAGGING && pointerId == mActivePointerId) {
+                    // Try to find another pointer that's still holding on to the captured view.
+                    int newActivePointer = INVALID_POINTER;
+                    final int pointerCount = MotionEventCompat.getPointerCount(ev);
+                    for (int i = 0; i < pointerCount; i++) {
+                        final int id = MotionEventCompat.getPointerId(ev, i);
+                        if (id == mActivePointerId) {
+                            // This one's going away, skip.
+                            continue;
+                        }
+
+                        final float x = MotionEventCompat.getX(ev, i);
+                        final float y = MotionEventCompat.getY(ev, i);
+                        if (findTopChildUnder((int) x, (int) y) == mCapturedView &&
+                                tryCaptureViewForDrag(mCapturedView, id)) {
+                            newActivePointer = mActivePointerId;
+                            break;
+                        }
+                    }
+
+                    if (newActivePointer == INVALID_POINTER) {
+                        // We didn't find another pointer still touching the view, release it.
+                        releaseViewForPointerUp();
+                    }
+                }
+                clearMotionHistory(pointerId);
+                break;
+            }
+
+            case MotionEvent.ACTION_UP: {
+                if (mDragState == STATE_DRAGGING) {
+                    releaseViewForPointerUp();
+                }
+                cancel();
+                break;
+            }
+
+            case MotionEvent.ACTION_CANCEL: {
+                if (mDragState == STATE_DRAGGING) {
+                    dispatchViewReleased(0, 0);
+                }
+                cancel();
+                break;
+            }
+        }
+    }
+
+    private void reportNewEdgeDrags(float dx, float dy, int pointerId) {
+        int dragsStarted = 0;
+        if (checkNewEdgeDrag(dx, dy, pointerId, EDGE_LEFT)) {
+            dragsStarted |= EDGE_LEFT;
+        }
+        if (checkNewEdgeDrag(dy, dx, pointerId, EDGE_TOP)) {
+            dragsStarted |= EDGE_TOP;
+        }
+        if (checkNewEdgeDrag(dx, dy, pointerId, EDGE_RIGHT)) {
+            dragsStarted |= EDGE_RIGHT;
+        }
+        if (checkNewEdgeDrag(dy, dx, pointerId, EDGE_BOTTOM)) {
+            dragsStarted |= EDGE_BOTTOM;
+        }
+
+        if (dragsStarted != 0) {
+            mEdgeDragsInProgress[pointerId] |= dragsStarted;
+            mCallback.onEdgeDragStarted(dragsStarted, pointerId);
+        }
+    }
+
+    private boolean checkNewEdgeDrag(float delta, float odelta, int pointerId, int edge) {
+        final float absDelta = Math.abs(delta);
+        final float absODelta = Math.abs(odelta);
+
+        if ((mInitialEdgesTouched[pointerId] & edge) != edge  || (mTrackingEdges & edge) == 0 ||
+                (mEdgeDragsLocked[pointerId] & edge) == edge ||
+                (mEdgeDragsInProgress[pointerId] & edge) == edge ||
+                (absDelta <= mTouchSlop && absODelta <= mTouchSlop)) {
+            return false;
+        }
+        if (absDelta < absODelta * 0.5f && mCallback.onEdgeLock(edge)) {
+            mEdgeDragsLocked[pointerId] |= edge;
+            return false;
+        }
+        return (mEdgeDragsInProgress[pointerId] & edge) == 0 && absDelta > mTouchSlop;
+    }
+
+    /**
+     * Check if we've crossed a reasonable touch slop for the given child view.
+     * If the child cannot be dragged along the horizontal or vertical axis, motion
+     * along that axis will not count toward the slop check.
+     *
+     * @param child Child to check
+     * @param dx Motion since initial position along X axis
+     * @param dy Motion since initial position along Y axis
+     * @return true if the touch slop has been crossed
+     */
+    private boolean checkTouchSlop(View child, float dx, float dy) {
+        if (child == null) {
+            return false;
+        }
+        final boolean checkHorizontal = mCallback.getViewHorizontalDragRange(child) > 0;
+        final boolean checkVertical = mCallback.getViewVerticalDragRange(child) > 0;
+
+        if (checkHorizontal && checkVertical) {
+            return dx * dx + dy * dy > mTouchSlop * mTouchSlop;
+        } else if (checkHorizontal) {
+            return Math.abs(dx) > mTouchSlop;
+        } else if (checkVertical) {
+            return Math.abs(dy) > mTouchSlop;
+        }
+        return false;
+    }
+
+    /**
+     * Check if any pointer tracked in the current gesture has crossed
+     * the required slop threshold.
+     *
+     * <p>This depends on internal state populated by
+     * {@link #shouldInterceptTouchEvent(android.view.MotionEvent)} or
+     * {@link #processTouchEvent(android.view.MotionEvent)}. You should only rely on
+     * the results of this method after all currently available touch data
+     * has been provided to one of these two methods.</p>
+     *
+     * @param directions Combination of direction flags, see {@link #DIRECTION_HORIZONTAL},
+     *                   {@link #DIRECTION_VERTICAL}, {@link #DIRECTION_ALL}
+     * @return true if the slop threshold has been crossed, false otherwise
+     */
+    public boolean checkTouchSlop(int directions) {
+        final int count = mInitialMotionX.length;
+        for (int i = 0; i < count; i++) {
+            if (checkTouchSlop(directions, i)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Check if the specified pointer tracked in the current gesture has crossed
+     * the required slop threshold.
+     *
+     * <p>This depends on internal state populated by
+     * {@link #shouldInterceptTouchEvent(android.view.MotionEvent)} or
+     * {@link #processTouchEvent(android.view.MotionEvent)}. You should only rely on
+     * the results of this method after all currently available touch data
+     * has been provided to one of these two methods.</p>
+     *
+     * @param directions Combination of direction flags, see {@link #DIRECTION_HORIZONTAL},
+     *                   {@link #DIRECTION_VERTICAL}, {@link #DIRECTION_ALL}
+     * @param pointerId ID of the pointer to slop check as specified by MotionEvent
+     * @return true if the slop threshold has been crossed, false otherwise
+     */
+    public boolean checkTouchSlop(int directions, int pointerId) {
+        if (!isPointerDown(pointerId)) {
+            return false;
+        }
+
+        final boolean checkHorizontal = (directions & DIRECTION_HORIZONTAL) == DIRECTION_HORIZONTAL;
+        final boolean checkVertical = (directions & DIRECTION_VERTICAL) == DIRECTION_VERTICAL;
+
+        final float dx = mLastMotionX[pointerId] - mInitialMotionX[pointerId];
+        final float dy = mLastMotionY[pointerId] - mInitialMotionY[pointerId];
+
+        if (checkHorizontal && checkVertical) {
+            return dx * dx + dy * dy > mTouchSlop * mTouchSlop;
+        } else if (checkHorizontal) {
+            return Math.abs(dx) > mTouchSlop;
+        } else if (checkVertical) {
+            return Math.abs(dy) > mTouchSlop;
+        }
+        return false;
+    }
+
+    /**
+     * Check if any of the edges specified were initially touched in the currently active gesture.
+     * If there is no currently active gesture this method will return false.
+     *
+     * @param edges Edges to check for an initial edge touch. See {@link #EDGE_LEFT},
+     *              {@link #EDGE_TOP}, {@link #EDGE_RIGHT}, {@link #EDGE_BOTTOM} and
+     *              {@link #EDGE_ALL}
+     * @return true if any of the edges specified were initially touched in the current gesture
+     */
+    public boolean isEdgeTouched(int edges) {
+        final int count = mInitialEdgesTouched.length;
+        for (int i = 0; i < count; i++) {
+            if (isEdgeTouched(edges, i)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Check if any of the edges specified were initially touched by the pointer with
+     * the specified ID. If there is no currently active gesture or if there is no pointer with
+     * the given ID currently down this method will return false.
+     *
+     * @param edges Edges to check for an initial edge touch. See {@link #EDGE_LEFT},
+     *              {@link #EDGE_TOP}, {@link #EDGE_RIGHT}, {@link #EDGE_BOTTOM} and
+     *              {@link #EDGE_ALL}
+     * @return true if any of the edges specified were initially touched in the current gesture
+     */
+    public boolean isEdgeTouched(int edges, int pointerId) {
+        return isPointerDown(pointerId) && (mInitialEdgesTouched[pointerId] & edges) != 0;
+    }
+
+    private void releaseViewForPointerUp() {
+        mVelocityTracker.computeCurrentVelocity(1000, mMaxVelocity);
+        final float xvel = clampMag(
+                VelocityTrackerCompat.getXVelocity(mVelocityTracker, mActivePointerId),
+                mMinVelocity, mMaxVelocity);
+        final float yvel = clampMag(
+                VelocityTrackerCompat.getYVelocity(mVelocityTracker, mActivePointerId),
+                mMinVelocity, mMaxVelocity);
+        dispatchViewReleased(xvel, yvel);
+    }
+
+    private void dragTo(int left, int top, int dx, int dy) {
+        int clampedX = left;
+        int clampedY = top;
+        final int oldLeft = mCapturedView.getLeft();
+        final int oldTop = mCapturedView.getTop();
+        if (dx != 0) {
+            clampedX = mCallback.clampViewPositionHorizontal(mCapturedView, left, dx);
+            mCapturedView.offsetLeftAndRight(clampedX - oldLeft);
+        }
+        if (dy != 0) {
+            clampedY = mCallback.clampViewPositionVertical(mCapturedView, top, dy);
+            mCapturedView.offsetTopAndBottom(clampedY - oldTop);
+        }
+
+        if (dx != 0 || dy != 0) {
+            final int clampedDx = clampedX - oldLeft;
+            final int clampedDy = clampedY - oldTop;
+            mCallback.onViewPositionChanged(mCapturedView, clampedX, clampedY,
+                    clampedDx, clampedDy);
+        }
+    }
+
+    /**
+     * Determine if the currently captured view is under the given point in the
+     * parent view's coordinate system. If there is no captured view this method
+     * will return false.
+     *
+     * @param x X position to test in the parent's coordinate system
+     * @param y Y position to test in the parent's coordinate system
+     * @return true if the captured view is under the given point, false otherwise
+     */
+    public boolean isCapturedViewUnder(int x, int y) {
+        return isViewUnder(mCapturedView, x, y);
+    }
+
+    /**
+     * Determine if the supplied view is under the given point in the
+     * parent view's coordinate system.
+     *
+     * @param view Child view of the parent to hit test
+     * @param x X position to test in the parent's coordinate system
+     * @param y Y position to test in the parent's coordinate system
+     * @return true if the supplied view is under the given point, false otherwise
+     */
+    public boolean isViewUnder(View view, int x, int y) {
+        if (view == null) {
+            return false;
+        }
+        return x >= view.getLeft() &&
+                x < view.getRight() &&
+                y >= view.getTop() &&
+                y < view.getBottom();
+    }
+
+    /**
+     * Find the topmost child under the given point within the parent view's coordinate system.
+     * The child order is determined using {@link Callback#getOrderedChildIndex(int)}.
+     *
+     * @param x X position to test in the parent's coordinate system
+     * @param y Y position to test in the parent's coordinate system
+     * @return The topmost child view under (x, y) or null if none found.
+     */
+    public View findTopChildUnder(int x, int y) {
+        final int childCount = mParentView.getChildCount();
+        for (int i = childCount - 1; i >= 0; i--) {
+            final View child = mParentView.getChildAt(mCallback.getOrderedChildIndex(i));
+            if (x >= child.getLeft() && x < child.getRight() &&
+                    y >= child.getTop() && y < child.getBottom()) {
+                return child;
+            }
+        }
+        return null;
+    }
+
+    private int getEdgesTouched(int x, int y) {
+        int result = 0;
+
+        if (x < mParentView.getLeft() + mEdgeSize) result |= EDGE_LEFT;
+        if (y < mParentView.getTop() + mEdgeSize) result |= EDGE_TOP;
+        if (x > mParentView.getRight() - mEdgeSize) result |= EDGE_RIGHT;
+        if (y > mParentView.getBottom() - mEdgeSize) result |= EDGE_BOTTOM;
+
+        return result;
+    }
+
+    /**
+     * Prepares the {@link ViewDragHelper} for the beginning of a nested scroll.
+     *
+     * @param target The child view that is dispatching the nested scroll.
+     */
+    public void startNestedScroll(View target) {
+        setDragState(STATE_DRAGGING);
+        mCapturedView = target;
+    }
+
+    /**
+     * Informs the {@link ViewDragHelper} that a nested scroll has ended.
+     *
+     * @param target The child view that is dispatching the nested scroll.
+     */
+    public void stopNestedScroll(View target) {
+        dispatchViewReleased(0, 0);
+    }
+
+    /**
+     * Update the {@link ViewDragHelper} with a new nested scrolling event.
+     *
+     * @param target The child view that is dispatching the nested scroll.
+     * @param dx The x distance scrolled on the child, in pixels.
+     * @param dy The y distance scroll on the child, in pixels.
+     * @param consumed An int array for the {@link ViewDragHelper} to report back the scroll
+     *         deltas that it consumed.
+     */
+    public void processNestedScroll(View target, int dx, int dy, int[] consumed) {
+        final int targetX = mCapturedView.getLeft() + dx;
+        final int targetY = mCapturedView.getTop() + dy;
+        dragTo(targetX, targetY, dx, dy);
+        if (consumed != null) {
+            final int unconsumedX = targetX - mCapturedView.getLeft();
+            final int unconsumedY = targetY - mCapturedView.getTop();
+            consumed[0] = dx - unconsumedX;
+            consumed[1] = dy - unconsumedY;
+        }
+    }
+
+}
diff --git a/src/com/android/dialerbind/ObjectFactory.java b/src/com/android/dialerbind/ObjectFactory.java
index c43dffc..9786311 100644
--- a/src/com/android/dialerbind/ObjectFactory.java
+++ b/src/com/android/dialerbind/ObjectFactory.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 
 import com.android.dialer.calllog.CallLogAdapter;
+import com.android.dialer.calllog.CallLogAdapter.CallItemExpandedListener;
 import com.android.dialer.calllog.ContactInfoHelper;
 import com.android.dialer.service.CachedNumberLookupService;
 
@@ -34,10 +35,18 @@
         return null;
     }
 
+    /**
+     * Create a new instance of the call log adapter.
+     * @param context The context to use.
+     * @param callFetcher Instance of call fetcher to use.
+     * @param contactInfoHelper Instance of contact info helper class to use.
+     * @param isCallLog Is this call log adapter being used on the call log?
+     * @return Instance of CallLogAdapter.
+     */
     public static CallLogAdapter newCallLogAdapter(Context context, CallFetcher callFetcher,
-            ContactInfoHelper contactInfoHelper, boolean useCallAsPrimaryAction,
+            ContactInfoHelper contactInfoHelper, CallItemExpandedListener callItemExpandedListener,
             boolean isCallLog) {
-        return new CallLogAdapter(context, callFetcher, contactInfoHelper, useCallAsPrimaryAction,
+        return new CallLogAdapter(context, callFetcher, contactInfoHelper, callItemExpandedListener,
                 isCallLog);
     }
 }
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 3a714e3..94aa3aa 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -25,6 +25,7 @@
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
 
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />
+    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
     <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
     <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
     <uses-permission android:name="android.permission.READ_SYNC_STATS" />
diff --git a/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java b/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
index 6f5a986..30fd0e2 100644
--- a/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
+++ b/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
@@ -111,9 +111,9 @@
     public void testSetPhoneCallDetails_Normal() {
         setPhoneCallDetailsWithNumber("14125551212",
                 Calls.PRESENTATION_ALLOWED, "1-412-555-1212");
-        assertEquals("Yesterday", mViews.callTypeAndDate.getText().toString());
-        assertEqualsHtml("<font color='#33b5e5'><b>Yesterday</b></font>",
-                mViews.callTypeAndDate.getText());
+        assertTrue(mViews.callLocationAndDate.getText().toString().contains("Yesterday"));
+        assertTrue(mViews.callLocationAndDate.getText().toString().contains(
+                "<font color='#33b5e5'><b>Yesterday</b></font>"));
     }
 
     /** Asserts that a char sequence is actually a Spanned corresponding to the expected HTML. */
@@ -252,12 +252,12 @@
 
     /** Asserts that the label text field contains the given string value. */
     private void assertLabelEquals(String text) {
-        assertEquals(text, mViews.labelView.getText().toString());
+        assertTrue(mViews.callLocationAndDate.getText().toString().contains(text));
     }
 
     /** Asserts that the date text field contains the given string value. */
     private void assertDateEquals(String text) {
-        assertEquals(text, mViews.callTypeAndDate.getText().toString());
+        assertTrue(mViews.callLocationAndDate.getText().toString().contains(text));
     }
 
     /** Asserts that the call type contains the images with the given drawables. */
@@ -268,7 +268,7 @@
             assertEquals(id, mViews.callTypeIcons.getCallType(index));
         }
         assertEquals(View.VISIBLE, mViews.callTypeIcons.getVisibility());
-        assertEquals("Yesterday", mViews.callTypeAndDate.getText().toString());
+        assertTrue(mViews.callLocationAndDate.getText().toString().contains("Yesterday"));
     }
 
     /**
@@ -282,7 +282,8 @@
             assertEquals(id, mViews.callTypeIcons.getCallType(index));
         }
         assertEquals(View.VISIBLE, mViews.callTypeIcons.getVisibility());
-        assertEquals(overflowText + " Yesterday", mViews.callTypeAndDate.getText().toString());
+        assertTrue(mViews.callLocationAndDate.getText().toString().contains(overflowText));
+        assertTrue(mViews.callLocationAndDate.getText().toString().contains("Yesterday"));
     }
 
     /** Sets the phone call details with default values and the given number. */
@@ -291,8 +292,8 @@
         mHelper.setPhoneCallDetails(mViews,
                 new PhoneCallDetails(number, presentation, formattedNumber,
                         TEST_COUNTRY_ISO, TEST_GEOCODE,
-                        new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION),
-                true);
+                        new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION)
+        );
     }
 
     /** Sets the phone call details with default values and the given number. */
@@ -301,8 +302,8 @@
         mHelper.setPhoneCallDetails(mViews,
                 new PhoneCallDetails(number, Calls.PRESENTATION_ALLOWED,
                         formattedNumber, TEST_COUNTRY_ISO, geocodedLocation,
-                        new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION),
-                true);
+                        new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION)
+        );
     }
 
     /** Sets the phone call details with default values and the given date. */
@@ -310,8 +311,8 @@
         mHelper.setPhoneCallDetails(mViews,
                 new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
                         TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
-                        new int[]{ Calls.INCOMING_TYPE }, date, TEST_DURATION),
-                false);
+                        new int[]{ Calls.INCOMING_TYPE }, date, TEST_DURATION)
+        );
     }
 
     /** Sets the phone call details with default values and the given call types using icons. */
@@ -319,8 +320,8 @@
         mHelper.setPhoneCallDetails(mViews,
                 new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
                         TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
-                        callTypes, TEST_DATE, TEST_DURATION),
-                false);
+                        callTypes, TEST_DATE, TEST_DURATION)
+        );
     }
 
     private void setCallDetailsHeaderWithNumber(String number, int presentation) {
@@ -335,6 +336,6 @@
                 new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
                         TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
                         new int[]{ Calls.INCOMING_TYPE }, TEST_DATE, TEST_DURATION,
-                        name, 0, "", null, null));
+                        name, 0, "", null, null, 0));
     }
 }
diff --git a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
index 12cdb2b..8225d13 100644
--- a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
@@ -212,7 +212,7 @@
 
         public TestCallLogAdapter(Context context, CallFetcher callFetcher,
                 ContactInfoHelper contactInfoHelper) {
-            super(context, callFetcher, contactInfoHelper, false, false);
+            super(context, callFetcher, contactInfoHelper, null, false);
         }
 
         @Override
diff --git a/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java b/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java
index d0a8725..2c0fe0e 100644
--- a/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java
@@ -35,6 +35,7 @@
 import android.test.ActivityInstrumentationTestCase2;
 import android.test.suitebuilder.annotation.LargeTest;
 import android.test.suitebuilder.annotation.MediumTest;
+import android.util.Log;
 import android.view.View;
 import android.widget.FrameLayout;
 
@@ -118,7 +119,7 @@
         FragmentManager fragmentManager = mActivity.getFragmentManager();
         FragmentTransaction transaction = fragmentManager.beginTransaction();
         transaction.add(FragmentTestActivity.LAYOUT_ID, mFragment);
-        transaction.commit();
+        transaction.commitAllowingStateLoss();
         // Wait for the fragment to be loaded.
         getInstrumentation().waitForIdleSync();
 
@@ -174,7 +175,6 @@
         insertPrivate(NOW, 0);
         View view = mAdapter.newGroupView(getActivity(), mParentView);
         mAdapter.bindGroupView(view, getActivity(), mCursor, 3, false);
-        assertNotNull(view.findViewById(R.id.secondary_action_icon));
     }
 
     @MediumTest
@@ -182,8 +182,7 @@
         mCursor.moveToFirst();
         insertPrivate(NOW, 0);
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
-        assertNotNull(view.findViewById(R.id.secondary_action_icon));
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
     }
 
     @MediumTest
@@ -192,7 +191,6 @@
         insertPrivate(NOW, 0);
         View view = mAdapter.newChildView(getActivity(), mParentView);
         mAdapter.bindChildView(view, getActivity(), mCursor);
-        assertNotNull(view.findViewById(R.id.secondary_action_icon));
     }
 
     @MediumTest
@@ -200,7 +198,7 @@
         mCursor.moveToFirst();
         insert(TEST_NUMBER, Calls.PRESENTATION_ALLOWED, NOW, 0, Calls.INCOMING_TYPE);
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
 
         CallLogListItemViews views = (CallLogListItemViews) view.getTag();
         assertNameIs(views, TEST_NUMBER);
@@ -214,7 +212,7 @@
         values[CallLogQuery.CACHED_FORMATTED_NUMBER] = TEST_FORMATTED_NUMBER;
         insertValues(values);
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
 
         CallLogListItemViews views = (CallLogListItemViews) view.getTag();
         assertNameIs(views, TEST_FORMATTED_NUMBER);
@@ -228,7 +226,7 @@
         insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
                 "John Doe", Phone.TYPE_HOME, TEST_DEFAULT_CUSTOM_LABEL);
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
 
         CallLogListItemViews views = (CallLogListItemViews) view.getTag();
         assertNameIs(views, "John Doe");
@@ -241,7 +239,7 @@
         insertWithCachedValues("sip:johndoe@gmail.com", NOW, 0, Calls.INCOMING_TYPE,
                 "John Doe", Phone.TYPE_HOME, TEST_DEFAULT_CUSTOM_LABEL);
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
 
         CallLogListItemViews views = (CallLogListItemViews) view.getTag();
         assertNameIs(views, "John Doe");
@@ -256,7 +254,7 @@
         insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
                 "John Doe", Phone.TYPE_HOME, TEST_DEFAULT_CUSTOM_LABEL);
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
 
         CallLogListItemViews views = (CallLogListItemViews) view.getTag();
         assertNameIs(views, "John Doe");
@@ -271,7 +269,7 @@
         insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
                 "John Doe", Phone.TYPE_WORK, TEST_DEFAULT_CUSTOM_LABEL);
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
 
         CallLogListItemViews views = (CallLogListItemViews) view.getTag();
         assertNameIs(views, "John Doe");
@@ -285,7 +283,7 @@
         insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
                 "John Doe", Phone.TYPE_CUSTOM, numberLabel);
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
 
         CallLogListItemViews views = (CallLogListItemViews) view.getTag();
         assertNameIs(views, "John Doe");
@@ -298,7 +296,7 @@
         insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
                 "John Doe", Phone.TYPE_HOME, "");
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
 
         CallLogListItemViews views = (CallLogListItemViews) view.getTag();
         assertTrue(views.quickContactView.isEnabled());
@@ -309,7 +307,7 @@
         mCursor.moveToFirst();
         insert(TEST_NUMBER, Calls.PRESENTATION_ALLOWED, NOW, 0, Calls.INCOMING_TYPE);
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
 
         CallLogListItemViews views = (CallLogListItemViews) view.getTag();
         assertFalse(views.quickContactView.isEnabled());
@@ -320,10 +318,15 @@
         mCursor.moveToFirst();
         insert(TEST_NUMBER, Calls.PRESENTATION_ALLOWED, NOW, 0, Calls.INCOMING_TYPE);
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
 
         CallLogListItemViews views = (CallLogListItemViews) view.getTag();
-        IntentProvider intentProvider = (IntentProvider) views.secondaryActionView.getTag();
+
+        // The primaryActionView tag is set in the
+        // {@link com.android.dialer.calllog.CallLogAdapter#bindView} method.  If it is possible
+        // to place a call to the phone number, a call intent will have been created for the
+        // primaryActionView.
+        IntentProvider intentProvider = (IntentProvider) views.callBackButtonView.getTag();
         Intent intent = intentProvider.getIntent(mActivity);
         // Starts a call.
         assertEquals(Intent.ACTION_CALL_PRIVILEGED, intent.getAction());
@@ -336,10 +339,10 @@
         mCursor.moveToFirst();
         insertVoicemail(TEST_NUMBER, Calls.PRESENTATION_ALLOWED, NOW, 0);
         View view = mAdapter.newStandAloneView(getActivity(), mParentView);
-        mAdapter.bindStandAloneView(view, getActivity(), mCursor);
+        mAdapter.bindViewForTest(view, getActivity(), mCursor);
 
         CallLogListItemViews views = (CallLogListItemViews) view.getTag();
-        IntentProvider intentProvider = (IntentProvider) views.secondaryActionView.getTag();
+        IntentProvider intentProvider = (IntentProvider) views.voicemailButtonView.getTag();
         Intent intent = intentProvider.getIntent(mActivity);
         // Starts the call detail activity.
         assertEquals(new ComponentName(mActivity, CallDetailActivity.class),
@@ -365,8 +368,9 @@
     // HELPERS to check conditions on the DB/views
     //
     /**
-     * Go over all the views in the list and check that the Call
-     * icon's visibility matches the nature of the number.
+     * Go over the views in the list and check to ensure that
+     * callable numbers have an associated call intent, where numbers
+     * which are not callable have a null intent.
      */
     private void checkCallStatus() {
         for (int i = 0; i < mList.length; i++) {
@@ -377,9 +381,17 @@
             int presentation = getPhoneNumberPresentationForListEntry(i);
             if (presentation == Calls.PRESENTATION_RESTRICTED ||
                     presentation == Calls.PRESENTATION_UNKNOWN) {
-                assertFalse(View.VISIBLE == mItem.secondaryActionView.getVisibility());
+                //If number is not callable, the primary action view should have a null tag.
+                assertNull(mItem.callBackButtonView.getTag());
             } else {
-                assertEquals(View.VISIBLE, mItem.secondaryActionView.getVisibility());
+                //If the number is callable, the primary action view should have a non-null tag.
+                assertNotNull(mItem.callBackButtonView.getTag());
+
+                IntentProvider intentProvider = (IntentProvider)mItem.callBackButtonView.getTag();
+                Intent callIntent = intentProvider.getIntent(mActivity);
+
+                //The intent should be to make the call
+                assertEquals(Intent.ACTION_CALL_PRIVILEGED, callIntent.getAction());
             }
         }
     }
@@ -427,7 +439,7 @@
             if (null == mList[i]) {
                 mList[i] = mAdapter.newStandAloneView(mActivity, mParentView);
             }
-            mAdapter.bindStandAloneView(mList[i], mActivity, mCursor);
+            mAdapter.bindViewForTest(mList[i], mActivity, mCursor);
             mCursor.moveToPrevious();
             i++;
         }
@@ -636,10 +648,9 @@
     /** Asserts that the label text view contains the given text. */
     private void assertLabel(CallLogListItemViews views, CharSequence number,
             CharSequence label) {
-        assertEquals(label == null ? View.GONE : View.VISIBLE,
-                views.phoneCallDetailsViews.labelView.getVisibility());
         if (label != null) {
-            assertEquals(label, views.phoneCallDetailsViews.labelView.getText().toString());
+            assertTrue(views.phoneCallDetailsViews.callLocationAndDate.getText().toString()
+                    .contains(label));
         }
     }
 }
diff --git a/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java b/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
index a10dec9..96eefbc 100644
--- a/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
@@ -24,6 +24,7 @@
 
 import com.android.dialer.PhoneCallDetails;
 import com.android.dialer.PhoneCallDetailsHelper;
+import com.android.dialer.R;
 
 /**
  * Unit tests for {@link CallLogListItemHelper}.
@@ -52,19 +53,21 @@
     private PhoneNumberDisplayHelper mPhoneNumberHelper;
     private PhoneNumberDisplayHelper mPhoneNumberDisplayHelper;
 
+    private Resources mResources;
+
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         Context context = getContext();
-        Resources resources = context.getResources();
-        CallTypeHelper callTypeHelper = new CallTypeHelper(resources);
+        mResources = context.getResources();
+        CallTypeHelper callTypeHelper = new CallTypeHelper(mResources);
         final TestPhoneNumberUtilsWrapper phoneUtils = new TestPhoneNumberUtilsWrapper(
                 TEST_VOICEMAIL_NUMBER);
         PhoneCallDetailsHelper phoneCallDetailsHelper = new PhoneCallDetailsHelper(
-                resources, callTypeHelper, phoneUtils);
-        mPhoneNumberDisplayHelper = new PhoneNumberDisplayHelper(resources);
+                mResources, callTypeHelper, phoneUtils);
+        mPhoneNumberDisplayHelper = new PhoneNumberDisplayHelper(mResources);
         mHelper = new CallLogListItemHelper(phoneCallDetailsHelper, mPhoneNumberDisplayHelper,
-                resources);
+                mResources);
         mViews = CallLogListItemViews.createForTest(context);
     }
 
@@ -78,92 +81,243 @@
     public void testSetPhoneCallDetails() {
         setPhoneCallDetailsWithNumber("12125551234", Calls.PRESENTATION_ALLOWED,
                 "1-212-555-1234");
-        assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
-    }
-
-    public void testSetPhoneCallDetailsInFavorites() {
-        setPhoneCallDetailsWithNumberInFavorites("12125551234", Calls.PRESENTATION_ALLOWED,
-                "1-212-555-1234");
-        assertNoCallButton();
+        assertEquals(View.VISIBLE, mViews.callBackButtonView.getVisibility());
     }
 
     public void testSetPhoneCallDetails_Unknown() {
         setPhoneCallDetailsWithNumber("", Calls.PRESENTATION_UNKNOWN, "");
-        assertNoCallButton();
-    }
-
-    public void testSetPhoneCallDetailsInFavorites_Unknown() {
-        setPhoneCallDetailsWithNumberInFavorites("", Calls.PRESENTATION_UNKNOWN, "");
-        assertNoCallButton();
+        assertNoCallIntent();
     }
 
     public void testSetPhoneCallDetails_Private() {
         setPhoneCallDetailsWithNumber("", Calls.PRESENTATION_RESTRICTED, "");
-        assertNoCallButton();
-    }
-
-    public void testSetPhoneCallDetailsInFavorites_Private() {
-        setPhoneCallDetailsWithNumberInFavorites("", Calls.PRESENTATION_RESTRICTED, "");
-        assertNoCallButton();
+        assertNoCallIntent();
     }
 
     public void testSetPhoneCallDetails_Payphone() {
         setPhoneCallDetailsWithNumber("", Calls.PRESENTATION_PAYPHONE, "");
-        assertNoCallButton();
-    }
-
-    public void testSetPhoneCallDetailsInFavorites_Payphone() {
-        setPhoneCallDetailsWithNumberInFavorites("", Calls.PRESENTATION_PAYPHONE, "");
-        assertNoCallButton();
+        assertNoCallIntent();
     }
 
     public void testSetPhoneCallDetails_VoicemailNumber() {
         setPhoneCallDetailsWithNumber(TEST_VOICEMAIL_NUMBER,
                 Calls.PRESENTATION_ALLOWED, TEST_VOICEMAIL_NUMBER);
-        assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
+        assertEquals(View.VISIBLE, mViews.voicemailButtonView.getVisibility());
     }
 
     public void testSetPhoneCallDetails_ReadVoicemail() {
         setPhoneCallDetailsWithTypes(Calls.VOICEMAIL_TYPE);
-        assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
+        assertEquals(View.VISIBLE, mViews.voicemailButtonView.getVisibility());
     }
 
     public void testSetPhoneCallDetails_UnreadVoicemail() {
         setUnreadPhoneCallDetailsWithTypes(Calls.VOICEMAIL_TYPE);
-        assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
+        assertEquals(View.VISIBLE, mViews.voicemailButtonView.getVisibility());
     }
 
     public void testSetPhoneCallDetails_VoicemailFromUnknown() {
         setPhoneCallDetailsWithNumberAndType("", Calls.PRESENTATION_UNKNOWN,
                 "", Calls.VOICEMAIL_TYPE);
-        assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
+        assertEquals(View.VISIBLE, mViews.voicemailButtonView.getVisibility());
     }
 
-    public void testSetPhoneCallDetailsInFavorites_VoicemailNumber() {
-        setPhoneCallDetailsWithNumberInFavorites(TEST_VOICEMAIL_NUMBER,
-                Calls.PRESENTATION_ALLOWED, TEST_VOICEMAIL_NUMBER);
-        assertNoCallButton();
+    /**
+     * Test getCallDescriptionID method used to get the accessibility description for calls.
+     * Test case where an answered unknown call is received.
+     */
+    public void testGetCallDescriptionID_UnknownAnswered() {
+        PhoneCallDetails details = new PhoneCallDetails("", Calls.PRESENTATION_UNKNOWN, "",
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.INCOMING_TYPE}, TEST_DATE, TEST_DURATION);
+        assertEquals(R.string.description_incoming_answered_call,
+                mHelper.getCallDescriptionStringID(details));
     }
 
-    public void testSetPhoneCallDetailsInFavorites_ReadVoicemail() {
-        setPhoneCallDetailsWithTypesInFavorites(Calls.VOICEMAIL_TYPE);
-        assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
+    /**
+     * Test getCallDescriptionID method used to get the accessibility description for calls.
+     * Test case where an missed unknown call is received.
+     */
+    public void testGetCallDescriptionID_UnknownMissed() {
+        PhoneCallDetails details = new PhoneCallDetails("", Calls.PRESENTATION_UNKNOWN, "",
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.MISSED_TYPE}, TEST_DATE, TEST_DURATION);
+        assertEquals(R.string.description_incoming_missed_call,
+                mHelper.getCallDescriptionStringID(details));
     }
 
-    public void testSetPhoneCallDetailsInFavorites_UnreadVoicemail() {
-        setUnreadPhoneCallDetailsWithTypesInFavorites(Calls.VOICEMAIL_TYPE);
-        assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
+    /**
+     * Test getCallDescriptionID method used to get the accessibility description for calls.
+     * Test case where an missed unknown call is received and a voicemail was left.
+     */
+    public void testGetCallDescriptionID_UnknownVoicemail() {
+        PhoneCallDetails details = new PhoneCallDetails("", Calls.PRESENTATION_UNKNOWN, "",
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.VOICEMAIL_TYPE}, TEST_DATE, TEST_DURATION);
+        assertEquals(R.string.description_incoming_missed_call,
+                mHelper.getCallDescriptionStringID(details));
     }
 
-    public void testSetPhoneCallDetailsInFavorites_VoicemailFromUnknown() {
-        setPhoneCallDetailsWithNumberAndTypeInFavorites("", Calls.PRESENTATION_UNKNOWN,
-                "", Calls.VOICEMAIL_TYPE);
-        assertEquals(View.VISIBLE, mViews.secondaryActionView.getVisibility());
+    /**
+     * Test getCallDescriptionID method used to get the accessibility description for calls.
+     * Test case where an answered call from a known caller is received.
+     */
+    public void testGetCallDescriptionID_KnownAnswered() {
+        PhoneCallDetails details = new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+                TEST_FORMATTED_NUMBER,
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.INCOMING_TYPE}, TEST_DATE, TEST_DURATION);
+        assertEquals(R.string.description_incoming_answered_call,
+                mHelper.getCallDescriptionStringID(details));
     }
 
-    /** Asserts that the whole call area is gone. */
-    private void assertNoCallButton() {
-        assertEquals(View.GONE, mViews.secondaryActionView.getVisibility());
+    /**
+     * Test getCallDescriptionID method used to get the accessibility description for calls.
+     * Test case where a missed call from a known caller is received.
+     */
+    public void testGetCallDescriptionID_KnownMissed() {
+        PhoneCallDetails details = new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+                TEST_FORMATTED_NUMBER,
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.MISSED_TYPE}, TEST_DATE, TEST_DURATION);
+        assertEquals(R.string.description_incoming_missed_call,
+                mHelper.getCallDescriptionStringID(details));
+    }
+
+    /**
+     * Test getCallDescriptionID method used to get the accessibility description for calls.
+     * Test case where a missed call from a known caller is received and a voicemail was left.
+     */
+    public void testGetCallDescriptionID_KnownVoicemail() {
+        PhoneCallDetails details = new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+                TEST_FORMATTED_NUMBER,
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.VOICEMAIL_TYPE}, TEST_DATE, TEST_DURATION);
+        assertEquals(R.string.description_incoming_missed_call,
+                mHelper.getCallDescriptionStringID(details));
+    }
+
+    /**
+     * Test getCallDescriptionID method used to get the accessibility description for calls.
+     * Test case where an outgoing call is made to a known number and there is a history of
+     * only a single call for this caller.
+     */
+    public void testGetCallDescriptionID_OutgoingSingle() {
+        PhoneCallDetails details = new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+                TEST_FORMATTED_NUMBER,
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.OUTGOING_TYPE}, TEST_DATE, TEST_DURATION);
+        assertEquals(R.string.description_outgoing_call,
+                mHelper.getCallDescriptionStringID(details));
+    }
+
+    /**
+     * Test getCallDescriptionID method used to get the accessibility description for calls.
+     * Test case where an outgoing call is made to a known number and there is a history of
+     * many calls for this caller.
+     */
+    public void testGetCallDescriptionID_OutgoingMultiple() {
+        PhoneCallDetails details = new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+                TEST_FORMATTED_NUMBER,
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.OUTGOING_TYPE, Calls.OUTGOING_TYPE}, TEST_DATE, TEST_DURATION);
+        assertEquals(R.string.description_outgoing_call,
+                mHelper.getCallDescriptionStringID(details));
+    }
+
+    /**
+     * Test getCallDescription method used to get the accessibility description for calls.
+     * For outgoing calls, we should NOT have "New Voicemail" in the description.
+     */
+    public void testGetCallDescription_NoVoicemailOutgoing() {
+        PhoneCallDetails details = new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+                TEST_FORMATTED_NUMBER,
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.OUTGOING_TYPE, Calls.OUTGOING_TYPE}, TEST_DATE, TEST_DURATION);
+        CharSequence description = mHelper.getCallDescription(details);
+        assertFalse(description.toString()
+                .contains(this.mResources.getString(R.string.description_new_voicemail)));
+    }
+
+    /**
+     * Test getCallDescription method used to get the accessibility description for calls.
+     * For regular incoming calls, we should NOT have "New Voicemail" in the description.
+     */
+    public void testGetCallDescription_NoVoicemailIncoming() {
+        PhoneCallDetails details = new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+                TEST_FORMATTED_NUMBER,
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.INCOMING_TYPE, Calls.OUTGOING_TYPE}, TEST_DATE, TEST_DURATION);
+        CharSequence description = mHelper.getCallDescription(details);
+        assertFalse(description.toString()
+                .contains(this.mResources.getString(R.string.description_new_voicemail)));
+    }
+
+    /**
+     * Test getCallDescription method used to get the accessibility description for calls.
+     * For regular missed calls, we should NOT have "New Voicemail" in the description.
+     */
+    public void testGetCallDescription_NoVoicemailMissed() {
+        PhoneCallDetails details = new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+                TEST_FORMATTED_NUMBER,
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.MISSED_TYPE, Calls.OUTGOING_TYPE}, TEST_DATE, TEST_DURATION);
+        CharSequence description = mHelper.getCallDescription(details);
+        assertFalse(description.toString()
+                .contains(this.mResources.getString(R.string.description_new_voicemail)));
+    }
+
+    /**
+     * Test getCallDescription method used to get the accessibility description for calls.
+     * For voicemail calls, we should have "New Voicemail" in the description.
+     */
+    public void testGetCallDescription_Voicemail() {
+        PhoneCallDetails details = new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+                TEST_FORMATTED_NUMBER,
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.VOICEMAIL_TYPE, Calls.OUTGOING_TYPE}, TEST_DATE, TEST_DURATION);
+        CharSequence description = mHelper.getCallDescription(details);
+        assertTrue(description.toString()
+                .contains(this.mResources.getString(R.string.description_new_voicemail)));
+    }
+
+    /**
+     * Test getCallDescription method used to get the accessibility description for calls.
+     * Test that the "X calls" message is not present if there is only a single call.
+     */
+    public void testGetCallDescription_NumCallsSingle() {
+        PhoneCallDetails details = new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+                TEST_FORMATTED_NUMBER,
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.VOICEMAIL_TYPE}, TEST_DATE, TEST_DURATION);
+        CharSequence description = mHelper.getCallDescription(details);
+
+        // Rather than hard coding the "X calls" string message, we'll generate it with an empty
+        // number of calls, and trim the resulting string.  This gets us just the word "calls",
+        // and ensures any trivial changes to that string resource won't unnecessarily break
+        // the unit test.
+        assertFalse(description.toString()
+                .contains(this.mResources.getString(R.string.description_num_calls, "").trim()));
+    }
+
+    /**
+     * Test getCallDescription method used to get the accessibility description for calls.
+     * Test that the "X calls" message is present if there are many calls.
+     */
+    public void testGetCallDescription_NumCallsMultiple() {
+        PhoneCallDetails details = new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
+                TEST_FORMATTED_NUMBER,
+                TEST_COUNTRY_ISO, TEST_GEOCODE,
+                new int[]{Calls.VOICEMAIL_TYPE, Calls.INCOMING_TYPE}, TEST_DATE, TEST_DURATION);
+        CharSequence description = mHelper.getCallDescription(details);
+        assertTrue(description.toString()
+                .contains(this.mResources.getString(R.string.description_num_calls, 2)));
+    }
+
+    /** Asserts that the primary action view does not have a call intent. */
+    private void assertNoCallIntent() {
+        Object intentProvider = (IntentProvider)mViews.primaryActionView.getTag();
+        // The intent provider should be null as there is no ability to make a call.
+        assertNull(intentProvider);
     }
 
     /** Sets the details of a phone call using the specified phone number. */
@@ -173,31 +327,14 @@
                 formattedNumber, Calls.INCOMING_TYPE);
     }
 
-    /** Sets the details of a phone call in the favorite screen using the specified phone number. */
-    private void setPhoneCallDetailsWithNumberInFavorites(String number,
-            int presentation, String formattedNumber) {
-        setPhoneCallDetailsWithNumberAndTypeInFavorites(number, presentation,
-                formattedNumber, Calls.INCOMING_TYPE);
-    }
-
     /** Sets the details of a phone call using the specified phone number. */
     private void setPhoneCallDetailsWithNumberAndType(String number,
             int presentation, String formattedNumber, int callType) {
         mHelper.setPhoneCallDetails(mViews,
                 new PhoneCallDetails(number, presentation, formattedNumber,
                         TEST_COUNTRY_ISO, TEST_GEOCODE,
-                        new int[]{ callType }, TEST_DATE, TEST_DURATION),
-                false, false);
-    }
-
-    /** Sets the details of a phone call in the favorite screen using the specified phone number. */
-    private void setPhoneCallDetailsWithNumberAndTypeInFavorites(String number,
-            int presentation, String formattedNumber, int callType) {
-        mHelper.setPhoneCallDetails(mViews,
-                new PhoneCallDetails(number, presentation, formattedNumber,
-                        TEST_COUNTRY_ISO, TEST_GEOCODE,
-                        new int[]{ callType }, TEST_DATE, TEST_DURATION),
-                false, true);
+                        new int[]{ callType }, TEST_DATE, TEST_DURATION)
+        );
     }
 
     /** Sets the details of a phone call using the specified call type. */
@@ -205,17 +342,8 @@
         mHelper.setPhoneCallDetails(mViews,
                 new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
                         TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
-                        types, TEST_DATE, TEST_DURATION),
-                false, false);
-    }
-
-    /** Sets the details of a phone call in the favorite screen using the specified call type. */
-    private void setPhoneCallDetailsWithTypesInFavorites(int... types) {
-        mHelper.setPhoneCallDetails(mViews,
-                new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
-                        TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
-                        types, TEST_DATE, TEST_DURATION),
-                false, true);
+                        types, TEST_DATE, TEST_DURATION)
+        );
     }
 
     /** Sets the details of an unread phone call using the specified call type. */
@@ -223,18 +351,7 @@
         mHelper.setPhoneCallDetails(mViews,
                 new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
                         TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
-                        types, TEST_DATE, TEST_DURATION),
-                true, false);
-    }
-
-    /** Sets the details of an unread phone call in the favorite screen using the specified call
-     * type.
-     */
-    private void setUnreadPhoneCallDetailsWithTypesInFavorites(int... types) {
-        mHelper.setPhoneCallDetails(mViews,
-                new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
-                        TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
-                        types, TEST_DATE, TEST_DURATION),
-                true, true);
+                        types, TEST_DATE, TEST_DURATION)
+        );
     }
 }
diff --git a/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java b/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
index 611b3f1..c2069bd 100644
--- a/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
+++ b/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
@@ -1,15 +1,26 @@
 package com.android.dialer.list;
 
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.provider.ContactsContract.PinnedPositions;
 import android.test.AndroidTestCase;
 
+import com.android.contacts.common.ContactTileLoaderFactory;
+import com.android.contacts.common.list.ContactEntry;
+import com.android.dialer.list.PhoneFavoritesTileAdapter.OnDataSetChangedForAnimationListener;
+
+import java.util.ArrayList;
+
 public class PhoneFavoritesTileAdapterTest extends AndroidTestCase {
     private PhoneFavoritesTileAdapter mAdapter;
+    private static final OnDataSetChangedForAnimationListener
+            sOnDataSetChangedForAnimationListener = new OnDataSetChangedForAnimationListener() {
+                @Override
+                public void onDataSetChangedForAnimation(long... idsInPlace) {}
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mAdapter = new PhoneFavoritesTileAdapter(getContext(), null, null, 3, 1);
-    }
+                @Override
+                public void cacheOffsetsForDatasetChange() {}
+            };
 
     /**
      * TODO: Add tests
@@ -42,5 +53,55 @@
 
     }
 
+    /**
+     * Returns a cursor containing starred and frequent contacts for test purposes.
+     *
+     * @param numStarred Number of starred contacts in the cursor. Cannot be a negative number.
+     * @param numFrequents Number of frequent contacts in the cursor. Cannot be a negative number.
+     * @return Cursor containing the required number of rows, each representing one ContactEntry
+     */
+    private Cursor getCursorForTest(int numStarred, int numFrequents) {
+        assertTrue(numStarred >= 0);
+        assertTrue(numFrequents >= 0);
+        final MatrixCursor c = new MatrixCursor(ContactTileLoaderFactory.COLUMNS_PHONE_ONLY);
+        int countId = 0;
 
+        // Add starred contact entries. These entries have the starred field set to 1 (true).
+        // The only field that really matters for testing is the contact id.
+        for (int i = 0; i < numStarred; i++) {
+            c.addRow(new Object[] {countId, null, 1, null, null, 0, 0, null, 0,
+                    PinnedPositions.UNPINNED, countId});
+            countId++;
+        }
+
+        // Add frequent contact entries. These entries have the starred field set to 0 (false).
+        for (int i = 0; i < numFrequents; i++) {
+            c.addRow(new Object[] {countId, null, 0, null, null, 0, 0, null, 0,
+                    PinnedPositions.UNPINNED, countId});
+            countId++;
+        }
+        return c;
+    }
+
+    /**
+     * Returns a ContactEntry with test data corresponding to the provided contact Id
+     *
+     * @param id Non-negative id
+     * @return ContactEntry item used for testing
+     */
+    private ContactEntry getTestContactEntry(int id, boolean isFavorite) {
+        ContactEntry contactEntry = new ContactEntry();
+        contactEntry.id = id;
+        contactEntry.isFavorite = isFavorite;
+        return contactEntry;
+    }
+
+    private void assertContactEntryRowsEqual(ArrayList<ContactEntry> expected,
+            ArrayList<ContactEntry> actual) {
+        assertEquals(expected.size(), actual.size());
+        for (int i = 0; i < actual.size(); i++) {
+            assertEquals(expected.get(i).id, actual.get(i).id);
+            assertEquals(expected.get(i).isFavorite, actual.get(i).isFavorite);
+        }
+    }
 }
