Merge "PhoneNumberTestService: show truncated number too." into jb-mr1-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 996bc78..babd439 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -121,7 +121,7 @@
             android:launchMode="singleTask"
             android:clearTaskOnLaunch="true"
             android:icon="@mipmap/ic_launcher_phone"
-            android:screenOrientation="portrait"
+            android:screenOrientation="nosensor"
             android:enabled="@*android:bool/config_voice_capable"
             android:taskAffinity="android.task.contacts.phone"
             android:windowSoftInputMode="stateAlwaysHidden|adjustNothing">
@@ -464,7 +464,7 @@
         <activity android:name="CallDetailActivity"
             android:label="@string/callDetailTitle"
             android:theme="@style/CallDetailActivityTheme"
-            android:screenOrientation="nosensor"
+            android:screenOrientation="portrait"
             android:icon="@mipmap/ic_launcher_phone"
             android:taskAffinity="android.task.contacts.phone"
         >
diff --git a/res/layout-land/dialpad_fragment.xml b/res/layout-land/dialpad_fragment.xml
index c5f3056..63dd369 100644
--- a/res/layout-land/dialpad_fragment.xml
+++ b/res/layout-land/dialpad_fragment.xml
@@ -17,41 +17,81 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/top"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
->
+    android:layout_height="match_parent" >
 
-    <!-- Text field above the keypad where the digits are displayed.
-         It's type is set to PHONE (to put the keyboard in the right
-         config) in the java code.
-    -->
-    <!-- TODO: Use a textAppearance to control the display of the number -->
-    <EditText android:id="@+id/digits"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/dialpad_digits_height"
-        android:layout_marginBottom="@dimen/dialpad_digits_margin_bottom"
-        android:layout_marginTop="1dip"
-        android:gravity="center"
-        android:maxLines="1"
-        android:scrollHorizontally="true"
-        android:textSize="@dimen/dialpad_digits_text_size"
-        android:freezesText="true"
-        android:background="@drawable/dialpad_background"
-        android:textColor="@color/dialer_button_text"
-        android:hint="@string/dialerKeyboardHintText"
-     />
+    <LinearLayout
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="3"
+        android:orientation="vertical" >
 
-    <!-- Horizontal row of buttons (Voicemail + DialButton + Delete.) -->
-    <include layout="@layout/dialpad_additional_buttons" />
+        <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:background="@drawable/dialpad_background"
+            android:gravity="center">
 
-    <!-- "Dialpad chooser" UI, shown only when the user brings up the
+            <com.android.contacts.dialpad.DigitsEditText
+                android:id="@+id/digits"
+                android:layout_width="0dip"
+                android:layout_weight="1"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:textAppearance="@style/DialtactsDigitsTextAppearance"
+                android:textColor="?android:attr/textColorPrimary"
+                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>
+        <!-- "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 and button) are hidden. -->
-    <ListView android:id="@+id/dialpadChooser"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:footerDividersEnabled="true"
-    />
+        <ListView android:id="@+id/dialpadChooser"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:footerDividersEnabled="true" />
 
+        <!-- Keypad section -->
+        <include layout="@layout/dialpad" />
+    </LinearLayout>
+    <View
+       android:layout_width="@dimen/dialpad_center_margin"
+       android:layout_height="match_parent"
+       android:background="#66000000"/>
+    <RelativeLayout
+        android:id="@+id/dialButtonContainer"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="2"
+        android:background="@drawable/dialpad_background">
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dialpad_button_margin"
+            android:layout_above="@id/dialButton"
+            android:background="#33000000" />
+        <ImageButton android:id="@+id/dialButton"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/call_button_height"
+            android:layout_alignParentBottom="true"
+            android:state_enabled="false"
+            android:background="@drawable/btn_call"
+            android:contentDescription="@string/description_dial_button"
+            android:src="@drawable/ic_dial_action_call" />
+    </RelativeLayout>
 </LinearLayout>
diff --git a/res/layout-land/dialtacts_activity.xml b/res/layout-land/dialtacts_activity.xml
new file mode 100644
index 0000000..f43fe5f
--- /dev/null
+++ b/res/layout-land/dialtacts_activity.xml
@@ -0,0 +1,27 @@
+<?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.
+-->
+
+<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/dialtacts_frame"
+    >
+    <android.support.v4.view.ViewPager
+        android:id="@+id/pager"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</FrameLayout>
diff --git a/res/layout/call_log_fragment.xml b/res/layout/call_log_fragment.xml
index 5e7061c..34b4b7f 100644
--- a/res/layout/call_log_fragment.xml
+++ b/res/layout/call_log_fragment.xml
@@ -16,10 +16,10 @@
 
 <!-- Layout parameters are set programmatically. -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/FragmentActionBarPadding"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
-    android:paddingBottom="?android:attr/actionBarSize"
     android:divider="?android:attr/dividerHorizontal"
     android:showDividers="end">
 
@@ -27,8 +27,6 @@
         android:id="@+id/voicemail_status"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentBottom="true"
         android:visibility="gone">
         <include layout="@layout/call_log_voicemail_status"
     />
diff --git a/res/layout/dialpad_additional_buttons.xml b/res/layout/dialpad_additional_buttons.xml
deleted file mode 100644
index 392f97a..0000000
--- a/res/layout/dialpad_additional_buttons.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<!-- Horizontal row of buttons (Voicemail + DialButton + Delete.) -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/dialpadAdditionalButtons"
-    android:layout_width="match_parent"
-    android:layout_height="0px"
-    android:layout_weight="@integer/dialpad_layout_weight_additional_buttons"
-    android:layout_gravity="center_horizontal"
-    android:background="@drawable/dialpad_background"
-    android:orientation="horizontal">
-
-    <!-- Onscreen "All contacts" button.
-         TODO: rename this id. -->
-    <ImageButton android:id="@+id/searchButton"
-        android:layout_width="0px"
-        android:layout_weight="0.30"
-        android:layout_height="match_parent"
-        android:layout_gravity="center_vertical"
-        android:state_enabled="false"
-        android:background="?android:attr/selectableItemBackground"
-        android:contentDescription="@string/description_search_button"
-        android:src="@drawable/ic_dial_action_search"/>
-
-    <View
-        android:layout_width="1dip"
-        android:layout_height="24dip"
-        android:layout_gravity="center_vertical"
-        android:background="?android:attr/dividerVertical" />
-
-    <!-- Onscreen "Dial" button, diused on all platforms by
-         default. Its usage can be disabled using resources (see
-         config.xml.) -->
-    <ImageButton android:id="@+id/dialButton"
-        android:layout_width="0px"
-        android:layout_weight="0.40"
-        android:layout_height="match_parent"
-        android:layout_gravity="center_vertical"
-        android:state_enabled="false"
-        android:background="@drawable/btn_call"
-        android:contentDescription="@string/description_dial_button"
-        android:src="@drawable/ic_dial_action_call" />
-
-    <View
-        android:layout_width="1dip"
-        android:layout_height="24dip"
-        android:layout_gravity="center_vertical"
-        android:background="?android:attr/dividerVertical" />
-
-    <!-- Onscreen "Backspace/Delete" button -->
-    <ImageButton android:id="@+id/deleteButton"
-        android:layout_width="0px"
-        android:layout_weight="0.30"
-        android:layout_height="match_parent"
-        android:layout_gravity="center_vertical"
-        android:state_enabled="false"
-        android:background="?android:attr/selectableItemBackground"
-        android:contentDescription="@string/description_delete_button"
-        android:src="@drawable/ic_dial_action_delete" />
-</LinearLayout>
-
diff --git a/res/layout/phone_contact_tile_list.xml b/res/layout/phone_contact_tile_list.xml
index 57dd66c..8931cf6 100644
--- a/res/layout/phone_contact_tile_list.xml
+++ b/res/layout/phone_contact_tile_list.xml
@@ -17,10 +17,10 @@
 <!-- Use LinearLayout + FrameLayout, just to rely on android:divider and android:showDividers -->
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/FragmentActionBarPadding"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
-    android:paddingBottom="?android:attr/actionBarSize"
     android:divider="?android:attr/dividerHorizontal"
     android:showDividers="end">
     <FrameLayout
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 54b9f6a..6cf5256 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Kon nie stemboodskap haal nie."</string>
     <string name="call_log_new_header" msgid="846546437517724715">"Nuut"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"Ouer"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"Oproepe met stemboodskappe"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"Inkomende oproepe"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"Uitgaande oproepe"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"Verbeurde oproepe"</string>
     <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Kan nie aan stemboodskapsbediener koppel nie."</string>
     <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Kan nie aan stemboodskapbediener koppel nie. Nuwe stemboodskappe wag."</string>
     <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Stel jou stemboodskapdiens op."</string>
@@ -533,7 +529,7 @@
     <string name="group_name_hint" msgid="238359485263401293">"Groep se naam"</string>
     <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontak ontvang via NFC"</string>
     <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Wys slegs uitgaande"</string>
-    <string name="menu_show_incoming_only" msgid="7534206815238877417">"Wys slegs inkomend"</string>
+    <string name="menu_show_incoming_only" msgid="7534206815238877417">"Wys slegs inkomende"</string>
     <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>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 9155393..8965a22 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"ድምፅ ደብዳቤን ፈልጎ ማግኘት አልተቻለም፡፡"</string>
     <string name="call_log_new_header" msgid="846546437517724715">"አዲስ"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"የድሮ"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"የድምጽ መልዕክት ያላቸው ጥሪዎች"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"ገቢ ጥሪዎች"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"ወጪ ጥሪ"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"ያመለጡ ጥሪዎች"</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>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 06801fe..ecb00f3 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Nepodařilo se načíst hlasovou zprávu."</string>
     <string name="call_log_new_header" msgid="846546437517724715">"Nové"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"Starší"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"Hovory s hlasovou schránkou"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"Příchozí hovory"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"Odchozí hovory"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"Zmeškané hovory"</string>
     <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Nelze se připojit k serveru hlasové schránky."</string>
     <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Nové zprávy v hlasové schránce. K serveru se nelze připojit."</string>
     <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Nastavte hlasovou schránku."</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index e8caf41..db11d11 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Telefonsvarerbeskeden kunne ikke hentes."</string>
     <string name="call_log_new_header" msgid="846546437517724715">"Nye"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"Ældre"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"Opkald med telefonsvarer"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"Indgående opkald"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"Udgående opkald"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"Ubesvarede opkald"</string>
     <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Der kan ikke oprettes forbindelse til telefonsvarerserveren."</string>
     <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Der kan ikke oprettes forbindelse til telefonsvarerserveren. Du har nye beskeder."</string>
     <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Konfigurer din telefonsvarer."</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 71c421b..ce3f3d6 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Δεν ανακτήθηκαν τα μην. αυτ. τηλεφ."</string>
     <string name="call_log_new_header" msgid="846546437517724715">"Νέο"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"Παλαιότερα"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"Κλήσεις με φωνητικό μήνυμα"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"Εισερχόμενες κλήσεις"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"Εξερχόμενες κλήσεις"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"Αναπάντητες κλήσεις"</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>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index cbdcaea..c328fd1 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"No se pudo obtener el mensaje de voz."</string>
     <string name="call_log_new_header" msgid="846546437517724715">"Nuevo"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"Más antigua"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"Llamadas con buzón de voz"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"Llamadas entrantes"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"Llamadas salientes"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"Llamadas perdidas"</string>
     <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"No se puede conectar al servidor del buzón de voz."</string>
     <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"No se puede conectar al buzón de voz. Nuevos mensajes en espera."</string>
     <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Configura tu buzón de voz."</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 9715b24..3b67565 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"No se ha podido recuperar el mensaje."</string>
     <string name="call_log_new_header" msgid="846546437517724715">"Nuevo"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"Anteriores"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"Llamadas con mensajes de voz"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"Llamadas entrantes"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"Llamadas salientes"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"Llamadas perdidas"</string>
     <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"No se puede conectar con el servidor del buzón de voz."</string>
     <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"No se puede conectar al buzón de voz. Nuevos mensajes en espera"</string>
     <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Configurar el buzón de voz"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index d5db02e..576f4a2 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -412,7 +412,7 @@
     <string name="take_photo" msgid="7496128293167402354">"फ़ोटो लें"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"नया फ़ोटो लें"</string>
     <string name="pick_photo" msgid="3746334626214970837">"गैलरी से फ़ोटो चुनें"</string>
-    <string name="pick_new_photo" msgid="7962368009197147617">"गैलरी से नए फ़ोटो का चयन करें"</string>
+    <string name="pick_new_photo" msgid="7962368009197147617">"गैलरी से नए फ़ोटो को चुनें"</string>
     <string name="locale_change_in_progress" msgid="7583992153091537467">"भाषा के परिवर्तन दिखाने के लिए संपर्क सूची को अपडेट किया जा रहा है."</string>
     <string name="upgrade_in_progress" msgid="474511436863451061">"संपर्क सूची अपडेट की जा रही है."</string>
     <string name="upgrade_out_of_memory" msgid="1209994418877625940">"संपर्क अपग्रेड होने की प्रक्रिया में हैं. "\n\n"अपग्रेड प्रक्रिया को लगभग <xliff:g id="SIZE_IN_MEGABYTES">%s</xliff:g> MB आंतरिक संग्रहण की आवश्‍यकता होती है."\n\n"निम्‍न विकल्‍पों में से कोई एक चुनें:"</string>
@@ -421,7 +421,7 @@
     <string name="search_results_searching" msgid="3984833028938569930">"खोज रहा है…"</string>
     <string name="menu_display_selected" msgid="6470001164297969034">"चयनित दिखाएं"</string>
     <string name="menu_display_all" msgid="8887488642609786198">"सभी दिखाएं"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"सभी का चयन करें"</string>
+    <string name="menu_select_all" msgid="621719255150713545">"सभी को चुनें"</string>
     <string name="menu_select_none" msgid="7093222469852132345">"सभी का चयन रद्द करें"</string>
     <string name="no_contacts_selected" msgid="5877803471037324613">"कोई भी संपर्क नहीं चुने गए."</string>
     <string name="add_field" msgid="2384260056674995230">"दूसरा फ़ील्ड जोड़ें"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 258b957..281c4df 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Tidak dapat mengambil pesan suara."</string>
     <string name="call_log_new_header" msgid="846546437517724715">"Baru"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"Lawas"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"Panggilan dengan pesan suara"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"Panggilan masuk"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"Panggilan keluar"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"Panggilan tak terjawab"</string>
     <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Tidak dapat tersambung ke server kotak pesan."</string>
     <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Tak dpt trsmbung ke srvr ktk pesan. Ktk pesan baru sdg menunggu."</string>
     <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Siapkan kotak pesan Anda."</string>
diff --git a/res/values-land/styles.xml b/res/values-land/styles.xml
index dab7802..e1d8a49 100644
--- a/res/values-land/styles.xml
+++ b/res/values-land/styles.xml
@@ -24,4 +24,8 @@
         <item name="android:layout_height">0dip</item>
         <item name="android:layout_weight">1</item>
     </style>
+
+    <style name="FragmentActionBarPadding">
+        <item name="android:paddingBottom">0dp</item>
+    </style>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index d06a676..76429e7 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Kunne ikke hente talepost."</string>
     <string name="call_log_new_header" msgid="846546437517724715">"Nytt"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"Eldre"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"Samtaler til telefonsvarer"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"Innkommende anrop"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"Utgående anrop"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"Tapte anrop"</string>
     <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Kan ikke koble til taleposttjener."</string>
     <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Kan ikke koble til taleposttjener. Nye talemeldinger venter."</string>
     <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Konfigurer talepost."</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 774a1ca..e651f68 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Não foi possível obter o correio de voz."</string>
     <string name="call_log_new_header" msgid="846546437517724715">"Novas"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"Antigas"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"Chamadas com correio de voz"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"Chamadas recebidas"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"Chamada de saída"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"Chamadas perdidas"</string>
     <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Não é possível se conectar ao servidor de correio de voz."</string>
     <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Impossível conect. ao serv. correio voz. Novas mensagens de voz."</string>
     <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Configure seu correio de voz."</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 9a4a900..9dfaaa8 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Не удалось получить голосовую почту."</string>
     <string name="call_log_new_header" msgid="846546437517724715">"Новые"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"Раньше"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"Звонки с голосовой почтой"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"Входящие вызовы"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"Исходящие вызовы"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"Пропущенные вызовы"</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>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 1e1e272..ef12cff 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -308,7 +308,7 @@
     <string name="display_ungrouped" msgid="6885954210243119591">"Alla andra kontakter"</string>
     <string name="display_all_contacts" msgid="2031647544742889505">"Alla kontakter"</string>
     <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Om du tar bort <xliff:g id="GROUP">%s</xliff:g> från synkroniseringen tas även kontakter som inte tillhör grupper bort från synkroniseringen."</string>
-    <string name="account_phone" product="tablet" msgid="7946049152658522054">"Bara pekdator (osynkad)"</string>
+    <string name="account_phone" product="tablet" msgid="7946049152658522054">"Bara surfplatta (osynkad)"</string>
     <string name="account_phone" product="default" msgid="3682950835276226870">"Bara telefon (osynkad)"</string>
     <string name="call_custom" msgid="7756571794763171802">"Ring <xliff:g id="CUSTOM">%s</xliff:g>"</string>
     <string name="call_home" msgid="1990519474420545392">"Ring hem"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 56deff6..2b57482 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -510,14 +510,10 @@
     <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Yehlulekile ukulanda i-voicemail."</string>
     <string name="call_log_new_header" msgid="846546437517724715">"Okusha"</string>
     <string name="call_log_old_header" msgid="6262205894314263629">"Okudadlana"</string>
-    <!-- no translation found for call_log_voicemail_header (4484032064803446806) -->
-    <skip />
-    <!-- no translation found for call_log_incoming_header (297542827180501480) -->
-    <skip />
-    <!-- no translation found for call_log_outgoing_header (9017138725495067284) -->
-    <skip />
-    <!-- no translation found for call_log_missed_header (2168865291934970151) -->
-    <skip />
+    <string name="call_log_voicemail_header" msgid="4484032064803446806">"Amakholi wemeyili yezwi"</string>
+    <string name="call_log_incoming_header" msgid="297542827180501480">"Amakholi angenayo"</string>
+    <string name="call_log_outgoing_header" msgid="9017138725495067284">"Amakholi aphumayo"</string>
+    <string name="call_log_missed_header" msgid="2168865291934970151">"Amakholi akuphuthele"</string>
     <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Ayikwazi ukuxhuma kusiphakeli se-imeyli yezwi."</string>
     <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Ayikwazi ukuxhumana nesiphakeli semeyli yezwi. Ama-imeyli ezwi amasha alindile"</string>
     <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Setha umyalezo wakho wephimbo."</string>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 5037279..94faf49 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -168,6 +168,10 @@
     <!-- 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>
 
     <!-- Width of search view in action bar.  Use 0dip for MATCH_PARENT -->
     <dimen name="search_view_width">0dip</dimen>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 6a7bd6f..ad8d07b 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -356,4 +356,8 @@
         <item name="android:textColor">#cdffffff</item>
         <item name="android:textSize">18sp</item>
     </style>
+
+    <style name="FragmentActionBarPadding">
+        <item name="android:paddingBottom">?android:attr/actionBarSize</item>
+    </style>
 </resources>
diff --git a/src/com/android/contacts/ContactsUtils.java b/src/com/android/contacts/ContactsUtils.java
index e8aa1ae..15b33ab 100644
--- a/src/com/android/contacts/ContactsUtils.java
+++ b/src/com/android/contacts/ContactsUtils.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Configuration;
 import android.database.Cursor;
 import android.graphics.Rect;
 import android.location.CountryDetector;
@@ -331,4 +332,12 @@
         }
         return sThumbnailSize;
     }
+
+    /**
+     * @return if the context is in landscape orientation.
+     */
+    public static boolean isLandscape(Context context) {
+        return context.getResources().getConfiguration().orientation
+                == Configuration.ORIENTATION_LANDSCAPE;
+    }
 }
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index b71f15a..ea68407 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -1021,7 +1021,8 @@
         } else {
             // This is when the user is looking at the dialer pad.  In this case, the real
             // ActionBar is hidden and fake menu items are shown.
-            searchMenuItem.setVisible(false);
+            // Except in landscape, in which case the real search menu item is shown.
+            searchMenuItem.setVisible(ContactsUtils.isLandscape(this));
             // If a permanent menu key is available, then we need to show the call settings item
             // so that the call settings item can be invoked by the permanent menu key.
             callSettingsMenuItem.setVisible(ViewConfiguration.get(this).hasPermanentMenuKey());
@@ -1224,6 +1225,7 @@
      * @param visible True when visible.
      */
     private void updateFakeMenuButtonsVisibility(boolean visible) {
+        // Note: Landscape mode does not have the fake menu and search buttons.
         if (DEBUG) {
             Log.d(TAG, "updateFakeMenuButtonVisibility(" + visible + ")");
         }
diff --git a/src/com/android/contacts/dialpad/DialpadFragment.java b/src/com/android/contacts/dialpad/DialpadFragment.java
index a853711..6ba4178 100644
--- a/src/com/android/contacts/dialpad/DialpadFragment.java
+++ b/src/com/android/contacts/dialpad/DialpadFragment.java
@@ -288,7 +288,9 @@
         int cellCount = dm.widthPixels / minCellSize;
         int fakeMenuItemWidth = dm.widthPixels / cellCount;
         mDialButtonContainer = fragmentView.findViewById(R.id.dialButtonContainer);
-        if (mDialButtonContainer != null) {
+        // If in portrait, add padding to the dial button since we need space for the
+        // search and menu/overflow buttons.
+        if (mDialButtonContainer != null && !ContactsUtils.isLandscape(this.getActivity())) {
             mDialButtonContainer.setPadding(
                     fakeMenuItemWidth, mDialButtonContainer.getPaddingTop(),
                     fakeMenuItemWidth, mDialButtonContainer.getPaddingBottom());
@@ -621,7 +623,10 @@
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         super.onCreateOptionsMenu(menu, inflater);
-        if (ViewConfiguration.get(getActivity()).hasPermanentMenuKey() &&
+        // Landscape dialer uses the real actionbar menu, whereas portrait uses a fake one
+        // that is created using constructPopupMenu()
+        if (ContactsUtils.isLandscape(this.getActivity()) ||
+                ViewConfiguration.get(getActivity()).hasPermanentMenuKey() &&
                 isLayoutReady() && mDialpadChooser != null) {
             inflater.inflate(R.menu.dialpad_options, menu);
         }
@@ -630,9 +635,10 @@
     @Override
     public void onPrepareOptionsMenu(Menu menu) {
         // Hardware menu key should be available and Views should already be ready.
-        if (ViewConfiguration.get(getActivity()).hasPermanentMenuKey() &&
+        if (ContactsUtils.isLandscape(this.getActivity()) ||
+                ViewConfiguration.get(getActivity()).hasPermanentMenuKey() &&
                 isLayoutReady() && mDialpadChooser != null) {
-             setupMenuItems(menu);
+            setupMenuItems(menu);
         }
     }