Merge "Automatically expand call log row when it gains accessibility focus" into lmp-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5c1164b..fa13adf 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -281,7 +281,7 @@
                   android:configChanges="keyboardHidden"
                   android:exported="false"
                   android:process="com.android.incallui"
-                  android:screenOrientation="nosensor">
+                  android:screenOrientation="sensor" >
         </activity>
 
         <!-- BroadcastReceiver for receiving Intents from Notification mechanism. -->
diff --git a/res/layout/call_detail.xml b/res/layout/call_detail.xml
index 45431a2..2e38e2d 100644
--- a/res/layout/call_detail.xml
+++ b/res/layout/call_detail.xml
@@ -24,7 +24,7 @@
         android:orientation="vertical"
         android:layout_alignParentStart="true"
         android:layout_alignParentTop="true"
-        android:background="@color/background_dialer_list_items" >
+        android:background="@color/background_dialer_details_list_items" >
         <!-- Caller information "card" -->
         <LinearLayout
             android:id="@+id/caller_information"
@@ -104,8 +104,7 @@
             android:paddingStart="@dimen/call_detail_horizontal_margin"
             android:paddingEnd="@dimen/call_detail_horizontal_margin"
             android:paddingTop="@dimen/transcription_top_margin"
-            android:paddingBottom="@dimen/transcription_bottom_margin"
-            android:background="@color/background_dialer_list_items" />
+            android:paddingBottom="@dimen/transcription_bottom_margin" />
         <LinearLayout
             android:id="@+id/voicemail_container"
             android:layout_width="match_parent"
diff --git a/res/layout/call_detail_history_item.xml b/res/layout/call_detail_history_item.xml
index 0e5dcf2..cbe8442 100644
--- a/res/layout/call_detail_history_item.xml
+++ b/res/layout/call_detail_history_item.xml
@@ -22,8 +22,7 @@
     android:paddingBottom="@dimen/call_log_inner_margin"
     android:paddingStart="@dimen/call_detail_horizontal_margin"
     android:paddingEnd="@dimen/call_log_outer_margin"
-    android:orientation="vertical"
-    android:background="@color/background_dialer_list_items" >
+    android:orientation="vertical" >
     <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index b470f5f..9851f67 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -81,8 +81,8 @@
     <string name="description_playback_start_stop" msgid="5060732345522492292">"Pokretanje ili zaustavljanje reprodukcije"</string>
     <string name="description_playback_speakerphone" msgid="6008323900245707504">"Uključivanje ili isključivanje zvučnika"</string>
     <string name="description_playback_seek" msgid="4509404274968530055">"Traženje položaja reprodukcije"</string>
-    <string name="description_rate_decrease" msgid="3161652589401708284">"Smanjenje stope reprodukcije"</string>
-    <string name="description_rate_increase" msgid="6324606574127052385">"Povećanje stope reprodukcije"</string>
+    <string name="description_rate_decrease" msgid="3161652589401708284">"Smanjenje brzine reprodukcije"</string>
+    <string name="description_rate_increase" msgid="6324606574127052385">"Povećanje brzine reprodukcije"</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>
     <string name="action_menu_dialpad_button" msgid="1425910318049008136">"površina za biranje brojeva"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 5667a40..244e0b7 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -147,7 +147,7 @@
     <string name="recentVoicemails_empty" msgid="4905583746647459963">"אין לך הודעות דואר קולי אחרונות."</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"הצג מועדפים בלבד"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"היסטוריה"</string>
-    <string name="call_log_all_title" msgid="3566738938889333307">"הכול"</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>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index a4ad64e..2e2e9a2 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -79,8 +79,8 @@
     <string name="description_dial_button" msgid="1274091017188142646">"დარეკვა"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"ასაკრეფი ნომერი"</string>
     <string name="description_playback_start_stop" msgid="5060732345522492292">"დაკვრის შეჩერება ან გაშვება"</string>
-    <string name="description_playback_speakerphone" msgid="6008323900245707504">"სპიკერები შეგიძლიათ ჩაროთ და ამაგროდ."</string>
-    <string name="description_playback_seek" msgid="4509404274968530055">"დაკვრის პოძიციის მოძებნა"</string>
+    <string name="description_playback_speakerphone" msgid="6008323900245707504">"სპიკერები შეგიძლიათ ჩართოთ და გამორთოთ."</string>
+    <string name="description_playback_seek" msgid="4509404274968530055">"დაკვრის პოზიციის მოძებნა"</string>
     <string name="description_rate_decrease" msgid="3161652589401708284">"დაკვრის კოეფიციენტის შემცირება"</string>
     <string name="description_rate_increase" msgid="6324606574127052385">"დაკვრის კოეფიციენტის გაზრდა"</string>
     <string name="action_menu_call_history_description" msgid="9018442816219748968">"საუბრის ისტორია"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 548d795..cd76ece 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -79,7 +79,7 @@
     <string name="description_dial_button" msgid="1274091017188142646">"전화걸기"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"전화를 걸 번호"</string>
     <string name="description_playback_start_stop" msgid="5060732345522492292">"재생 실행 또는 중지"</string>
-    <string name="description_playback_speakerphone" msgid="6008323900245707504">"스피커폰을 켜거나 끄기"</string>
+    <string name="description_playback_speakerphone" msgid="6008323900245707504">"스피커폰 켜고 끄기"</string>
     <string name="description_playback_seek" msgid="4509404274968530055">"재생 위치 찾기"</string>
     <string name="description_rate_decrease" msgid="3161652589401708284">"재생 속도 낮추기"</string>
     <string name="description_rate_increase" msgid="6324606574127052385">"재생 속도 높이기"</string>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index be5f439..26e53dc 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -103,16 +103,11 @@
     <skip />
     <!-- no translation found for description_digits_edittext (8760207516497016437) -->
     <skip />
-    <!-- no translation found for description_playback_start_stop (5060732345522492292) -->
-    <skip />
-    <!-- no translation found for description_playback_speakerphone (6008323900245707504) -->
-    <skip />
-    <!-- no translation found for description_playback_seek (4509404274968530055) -->
-    <skip />
-    <!-- no translation found for description_rate_decrease (3161652589401708284) -->
-    <skip />
-    <!-- no translation found for description_rate_increase (6324606574127052385) -->
-    <skip />
+    <string name="description_playback_start_stop" msgid="5060732345522492292">"Ойнотууну иштетүү же токтотуу"</string>
+    <string name="description_playback_speakerphone" msgid="6008323900245707504">"Катуу сүйлөткүчтү күйгүзүү же өчүрүү"</string>
+    <string name="description_playback_seek" msgid="4509404274968530055">"Ойнотуунун жайгашкан жерин издөө"</string>
+    <string name="description_rate_decrease" msgid="3161652589401708284">"Ойнотуу ылдамдыгын жайлатуу"</string>
+    <string name="description_rate_increase" msgid="6324606574127052385">"Ойнотуу ылдамдыгын тездетүү"</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>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index e740905..a736ec6 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -78,16 +78,11 @@
     <string name="description_search_button" msgid="3660807558587384889">"ຊອກຫາ"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"ແປ້ນໂທ"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"ໝາຍເລກທີ່ຈະໂທ"</string>
-    <!-- no translation found for description_playback_start_stop (5060732345522492292) -->
-    <skip />
-    <!-- no translation found for description_playback_speakerphone (6008323900245707504) -->
-    <skip />
-    <!-- no translation found for description_playback_seek (4509404274968530055) -->
-    <skip />
-    <!-- no translation found for description_rate_decrease (3161652589401708284) -->
-    <skip />
-    <!-- no translation found for description_rate_increase (6324606574127052385) -->
-    <skip />
+    <string name="description_playback_start_stop" msgid="5060732345522492292">"​ຫຼິ້ນ ຫຼື​ຢຸດ​ການຫຼິ້ນ"</string>
+    <string name="description_playback_speakerphone" msgid="6008323900245707504">"​ປິດຫຼື​ເປີດ​ລຳ​ໂພງ​ມື​ຖື"</string>
+    <string name="description_playback_seek" msgid="4509404274968530055">"​ຊອກ​ຫາ​ຕຳ​​ແໜ່ງ​ຫຼິ້ນ"</string>
+    <string name="description_rate_decrease" msgid="3161652589401708284">"ຫຼ​ຸດ​ອັດ​ຕາ​ການຫຼິ້ນ"</string>
+    <string name="description_rate_increase" msgid="6324606574127052385">"​ເພີ​່ມ​ອັດ​ຕາ​ການຫຼິ້ນ"</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>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index cdef8c6..29b4b4e 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -78,7 +78,7 @@
     <string name="description_search_button" msgid="3660807558587384889">"cari"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"dail"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"nombor untuk didail"</string>
-    <string name="description_playback_start_stop" msgid="5060732345522492292">"Main atau berhenti main balik"</string>
+    <string name="description_playback_start_stop" msgid="5060732345522492292">"Mainkan atau berhenti main balik"</string>
     <string name="description_playback_speakerphone" msgid="6008323900245707504">"Hidupkan atau matikan pembesar suara"</string>
     <string name="description_playback_seek" msgid="4509404274968530055">"Dapatkan kedudukan main balik"</string>
     <string name="description_rate_decrease" msgid="3161652589401708284">"Kurangkan kadar main balik"</string>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index 4429a78..fb70490 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -42,7 +42,7 @@
     <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_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>
@@ -78,11 +78,11 @@
     <string name="description_search_button" msgid="3660807558587384889">"ရှာဖွေရန်"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"ဖုန်းခေါ်သည်"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"ခေါ်ရန် နံပါတ်"</string>
-    <string name="description_playback_start_stop" msgid="5060732345522492292">"ပြန်ဖွင့်ပြမှုကို ဖွင့်ရန် သို့မဟုတ် ရပ်ရန်"</string>
-    <string name="description_playback_speakerphone" msgid="6008323900245707504">"စပီကာဖုန်းကို ဖွင့် သို့မဟုတ် ပိတ်ရန်"</string>
-    <string name="description_playback_seek" msgid="4509404274968530055">"အသံပြန်ဖွင့်ရေး နေရာကို ရှာရန်"</string>
-    <string name="description_rate_decrease" msgid="3161652589401708284">"ပြန်ဖွင့်မှု နှုန်းကို လျှော့ချရန်"</string>
-    <string name="description_rate_increase" msgid="6324606574127052385">"ပြန်ဖွင့်မှု နှုန်းကို မြှင့်ရန်"</string>
+    <string name="description_playback_start_stop" msgid="5060732345522492292">"ပြန်ဖွင့်ပြမှုကို ဖွင့်ရန် သို့မဟုတ် ရပ်ရန်"</string>
+    <string name="description_playback_speakerphone" msgid="6008323900245707504">"စပီကာဖုန်းကို ဖွင့် သို့မဟုတ် ပိတ်ရန်"</string>
+    <string name="description_playback_seek" msgid="4509404274968530055">"အသံပြန်ဖွင့်ရေး နေရာကို ရှာရန်"</string>
+    <string name="description_rate_decrease" msgid="3161652589401708284">"ပြန်ဖွင့်မှု နှုန်းကို လျှော့ချရန်"</string>
+    <string name="description_rate_increase" msgid="6324606574127052385">"ပြန်ဖွင့်မှု နှုန်းကို မြှင့်ရန်"</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>
@@ -93,9 +93,9 @@
     <string name="menu_show_voicemails_only" msgid="1898421289561435703">"အသံပို့စာများသာ ပြပါ"</string>
     <string name="menu_show_all_calls" msgid="7560347482073345885">"ဖုန်းခေါ်မှုအားလုံးပြရန်"</string>
     <string name="add_contact" msgid="4579643070374941999">"အဆက်အသွယ်များ ထဲသို့ ထည့်ရန်"</string>
-    <string name="add_2sec_pause" msgid="9214012315201040129">"၂စက္ကန့်ရပ်ဆိုင်းရန် ထည့်ပါ"</string>
+    <string name="add_2sec_pause" msgid="9214012315201040129">"၂စက္ကန့်ရပ်ဆိုင်းရန် ထည့်ပါ"</string>
     <string name="add_wait" msgid="3360818652790319634">"စောင့်ဆိုင်းခြင်း ထည့်ပါ"</string>
-    <string name="menu_select_account" msgid="5576598753317289565">"အကောင့်ကို ရွေးရန်"</string>
+    <string name="menu_select_account" msgid="5576598753317289565">"အကောင့်ကို ရွေးရန်"</string>
     <string name="dialer_settings_label" msgid="4305043242594150479">"ဆက်တင်များ"</string>
     <string name="menu_newContact" msgid="1209922412763274638">"အဆက်အသွယ်အသစ်"</string>
     <string name="menu_allContacts" msgid="6948308384034051670">"လိပ်စာများအားလုံး"</string>
@@ -103,11 +103,11 @@
     <string name="toast_call_detail_error" msgid="7200975244804730096">"တောင်းဆိုထားသော ခေါ်ဆိုမှုအတွက် အသေးစိတ်အချက်အလက်များ ဖတ်လို့မရပါ"</string>
     <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"touch tone ကီးခလုတ် ကိုအသုံးပြုပါ"</string>
     <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"ဖုန်းပြန်ခေါ်မှု ပြုလုပ်နေစဉ်"</string>
-    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"ဖုန်းခေါ်မှု ထပ်ထည့်ပါ"</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_incoming_video" msgid="82323391702796181">"ဝင်လာသည့် ဗီဒီယို ခေါ်ဆိုမှု"</string>
+    <string name="type_incoming_video" msgid="82323391702796181">"ဝင်လာသည့် ဗီဒီယို ခေါ်ဆိုမှု"</string>
     <string name="type_outgoing_video" msgid="2858140021680755266">"ပြုလုပ်နေဆဲ ဗီဒီယို ခေါ်ဆိုမှု"</string>
     <string name="type_missed_video" msgid="954396897034220545">"လွတ်သွားသော ဗီဒီယို ခေါ်ဆိုမှု"</string>
     <string name="type_voicemail" msgid="5153139450668549908">"အသံစာပို့စနစ်"</string>
@@ -129,7 +129,7 @@
     <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="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">"အသံစာပို့စနစ်ကို ပြင်ဆင်ရန်၊ မီနူး ပြီးနောက် ဆက်တင် သို့သွားပါ"</string>
     <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"အသံစာပို့စနစ်ကို ခေါ်ဆိုမှုပြုရန်, လေယာဉ်ပျံပေါ်အသုံးပြုသောစနစ်ကို ပိတ်ပါ"</string>
@@ -141,9 +141,9 @@
     <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="activity_not_available" msgid="8265265380537872585">"ရွေးချယ်ထားသည့် လုပ်ဆောင်ချက်ကို ကိုင်တွယ်ရန် ထည့်သွင်းထားသည့် လှုပ်ရှားမှု မရှိပါ။"</string>
     <string name="dialer_hint_find_contact" msgid="8798845521253672403">"နာမည် သို့မဟုတ် ဖုန်းနံပါတ် တစ်ခု ရိုက်ထည့်ပါ"</string>
-    <string name="recentMissed_empty" msgid="4177320482947526015">"သင်ဆီမှာ မကြာမီတုန်းက လွတ်သွားသည့် ခေါ်ဆိုမှုများ မရှိပါ။"</string>
+    <string name="recentMissed_empty" msgid="4177320482947526015">"သင်ဆီမှာ မကြာမီတုန်းက လွတ်သွားသည့် ခေါ်ဆိုမှုများ မရှိပါ။"</string>
     <string name="recentVoicemails_empty" msgid="4905583746647459963">"သင်ဆီမှာ မကြာမီတုန်းက အသံမေးလ်များ မရှိပါ။"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"အနှစ်သက်ဆုံးများသာ ပြပါ"</string>
     <string name="call_log_activity_title" msgid="4612824396355272023">"မှတ်တမ်း"</string>
@@ -158,10 +158,10 @@
     <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="search_shortcut_make_video_call" msgid="1265971685034465166">"ဗီဒီယို ခေါ်ဆိုမှု ပြုလုပ်ရန်"</string>
-    <string name="recents_footer_text" msgid="7315554578957453359">"ခေါ်ဆိုမှု မှတ်တမ်း အပြည့်ကို ကြည့်ရန်"</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="speed_dial_empty" msgid="5476435149276295630">"အမြန် နံပါတ်ကွက်မှာ အကြိုက်ဆုံးများ နှင့် သင် မကြာခဏ ခေါ်ယူသည့် နံပါတ်များ \nကို တစ်ချက် ထိလျက် ခေါ်ဆိုခြင်း\n ဖြစ်သည်။"</string>
-    <string name="all_contacts_empty" msgid="4536082452651392894">"သင့်ဆီမှာ အဆက်အသွယ်များ မရှိပါ။"</string>
+    <string name="speed_dial_empty" msgid="5476435149276295630">"အမြန် နံပါတ်ကွက်မှာ အကြိုက်ဆုံးများ နှင့် သင် မကြာခဏ ခေါ်ယူသည့် နံပါတ်များ \nကို တစ်ချက် ထိလျက် ခေါ်ဆိုခြင်း\n ဖြစ်သည်။"</string>
+    <string name="all_contacts_empty" msgid="4536082452651392894">"သင့်ဆီမှာ အဆက်အသွယ်များ မရှိပါ။"</string>
     <string name="contact_tooltip" msgid="7817483485692282287">"နံပါတ်အားလုံးကို မြင်နိုင်ရန် ပုံကို ထိကိုင်ခြင်း သို့မဟုတ် အစဉ်လိုက်ပြန်စီရန် ဖိကိုင်ထားပါ"</string>
     <string name="description_dismiss" msgid="2146276780562549643">"လွှတ်လိုက်သည်"</string>
     <string name="remove_contact" msgid="1080555335283662961">"ဖယ်ရှာခြင်း"</string>
@@ -177,7 +177,7 @@
     <string name="description_video_call_action" msgid="4303952636480252389">"<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_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>၏ ခေါ်ဆိုမှု အသေးစိတ်များ"</string>
-    <string name="toast_entry_removed" msgid="3389119736202317999">"ခေါ်ဆိုမှု လော့ဂ် ထည့်သွင်းမှု ဖျက်ပြီး။"</string>
+    <string name="toast_entry_removed" msgid="3389119736202317999">"ခေါ်ဆိုမှု လော့ဂ် ထည့်သွင်းမှု ဖျက်ပြီး။"</string>
     <string name="toast_caller_id_reported" msgid="1127087402649645557">"အဆက်အသွယ်ကို အစီရင်ခံထား"</string>
     <string name="call_log_action_report" msgid="561229827189128879">"အစီရင်ခံရန်"</string>
     <string name="call_log_header_today" msgid="3225248682434212981">"ယနေ့"</string>
@@ -185,12 +185,12 @@
     <string name="call_log_header_last_week" msgid="5197040511028258038">"လွန်ခဲ့သော အပတ်"</string>
     <string name="call_log_header_other" msgid="5769921959940709084">"ပိုဟောင်းသော"</string>
     <string name="call_detail_list_header" msgid="866455969433213220">"ခေါ်ဆိုမှု စာရင်း"</string>
-    <string name="voicemail_speaker_on" msgid="209154030283487068">"စပီကာကို ဖွင့်ပါ။"</string>
+    <string name="voicemail_speaker_on" msgid="209154030283487068">"စပီကာကို ဖွင့်ပါ။"</string>
     <string name="voicemail_speaker_off" msgid="7390530056413093958">"စပီကာကို ပိတ်ပါ။"</string>
     <string name="voicemail_play_faster" msgid="3444751008615323006">"ပိုမြန်စွာ ကစားရန်"</string>
     <string name="voicemail_play_slower" msgid="4544796503902818832">"ပိုနှေးစွာ ကစားရန်"</string>
-    <string name="voicemail_play_start_pause" msgid="3687447935787768983">"ဖွင့်မှု စတင် သို့မဟုတ် ဆိုင်းငံ့ရန်"</string>
+    <string name="voicemail_play_start_pause" msgid="3687447935787768983">"ဖွင့်မှု စတင် သို့မဟုတ် ဆိုင်းငံ့ရန်"</string>
     <string name="list_delimeter" msgid="4571593167738725100">"၊ "</string>
     <string name="call_settings_label" msgid="2934215322075055446">"ခေါ်ဆိုမှု ဆက်တင်များ"</string>
-    <string name="call_settings_description" msgid="7955465849094897305">"အသံစဉ်များ၊ အသံစာ ဆက်တင်များ၊ VoIP ခေါ်ဆိုမှုများ စသဖြင့်"</string>
+    <string name="call_settings_description" msgid="7955465849094897305">"အသံစဉ်များ၊ အသံစာ ဆက်တင်များ၊ VoIP ခေါ်ဆိုမှုများ စသဖြင့်"</string>
 </resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 4288c0f..72558cf 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -78,11 +78,11 @@
     <string name="description_search_button" msgid="3660807558587384889">"खोजी गर्नुहोस्"</string>
     <string name="description_dial_button" msgid="1274091017188142646">"डायल"</string>
     <string name="description_digits_edittext" msgid="8760207516497016437">"डायल गर्न संख्या"</string>
-    <string name="description_playback_start_stop" msgid="5060732345522492292">"प्लेब्याक चलाउनुहोस वा रोक्नुस्"</string>
-    <string name="description_playback_speakerphone" msgid="6008323900245707504">"स्पीकरफोन खोल्नुस् वा बन्द गर्नुहोस्"</string>
+    <string name="description_playback_start_stop" msgid="5060732345522492292">"प्लेब्याक चलाउनुहोस वा रोक्नुहोस्"</string>
+    <string name="description_playback_speakerphone" msgid="6008323900245707504">"स्पीकरफोन खोल्नुहोस् वा बन्द गर्नुहोस्"</string>
     <string name="description_playback_seek" msgid="4509404274968530055">"प्लेब्याक स्थिति खोज्नुहोस्"</string>
     <string name="description_rate_decrease" msgid="3161652589401708284">"प्लेब्याक दर कम गर्नुहोस्"</string>
-    <string name="description_rate_increase" msgid="6324606574127052385">"प्लेब्याक दर बढाउनुस्"</string>
+    <string name="description_rate_increase" msgid="6324606574127052385">"प्लेब्याक दर बढाउनुहोस्"</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>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index bdf92f5..95c4ced 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -147,7 +147,7 @@
     <string name="recentVoicemails_empty" msgid="4905583746647459963">"Não existem mensagens de correio de voz recentes."</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="call_log_all_title" msgid="3566738938889333307">"Todos"</string>
+    <string name="call_log_all_title" msgid="3566738938889333307">"Todas"</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>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index ae54d0b..448d1e6 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -20,6 +20,8 @@
     <!-- Secondary text color in the Dialer -->
     <color name="dialtacts_secondary_text_color">#737373</color>
     <color name="dialer_accent_color">#eeff41</color>
+    <color name="dialer_red_highlight_color">#ff1744</color>
+    <color name="dialer_green_highlight_color">#00c853</color>
 
     <!-- Color for the setting text. -->
     <color name="setting_primary_color">#4d4c4c</color>
@@ -28,7 +30,7 @@
     <color name="setting_background_color">#ffffff</color>
 
     <!-- Color of the text describing an unconsumed missed call. -->
-    <color name="call_log_missed_call_highlight_color">#FF0000</color>
+    <color name="call_log_missed_call_highlight_color">@color/dialer_red_highlight_color</color>
 
     <!-- Color of the text describing an unconsumed voicemail. -->
     <color name="call_log_voicemail_highlight_color">#33b5e5</color>
@@ -48,14 +50,15 @@
     <!-- Standard color for selected items. -->
     <color name="item_selected">#660099cc</color>
 
-    <!-- Secondary background color for dialer -->
-    <color name="background_dialer_secondary">#f9f9f9</color>
     <!-- White background for dialer -->
     <color name="background_dialer_white">#ffffff</color>
     <!-- Background color of new dialer activity -->
     <color name="background_dialer_light">#fafafa</color>
+    <!-- Background color for search results and call details -->
+    <color name="background_dialer_results">#f9f9f9</color>
     <!-- Background color of dialer list items (contacts, call log entries) -->
     <color name="background_dialer_list_items">@color/background_dialer_light</color>
+    <color name="background_dialer_details_list_items">@color/background_dialer_results</color>
 
     <!-- Color of the 1dp divider that separates favorites -->
     <color name="favorite_contacts_separator_color">#d0d0d0</color>
@@ -65,7 +68,7 @@
     <!-- Color of the contact name in favorite tiles -->
     <color name="contact_tile_name_color">#ffffff</color>
 
-    <color name="contact_list_name_text_color">#4d4d4d</color>
+    <color name="contact_list_name_text_color">@color/dialtacts_primary_text_color</color>
 
     <!-- Undo dialogue color -->
     <color name="undo_dialogue_text_color">#4d4d4d</color>
@@ -92,7 +95,7 @@
     <color name="missed_call">#ff2e58</color>
 
     <!-- Color for answered or outgoing call icons. -->
-    <color name="answered_call">#2aad6f</color>
+    <color name="answered_call">@color/dialer_green_highlight_color</color>
 
     <!-- Color for icons in the actionbar -->
     <color name="actionbar_icon_color">#ffffff</color>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index dcd23d1..9f37d28 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -102,11 +102,9 @@
     </style>
 
     <style name="CallDetailActivityTheme" parent="DialtactsThemeWithoutActionBarOverlay">
-        <item name="android:windowBackground">@color/background_dialer_light</item>
+        <item name="android:windowBackground">@color/background_dialer_results</item>
         <!-- CallLog -->
-        <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">#8f8f8f</item>
         <item name="call_log_secondary_background_color">#FFFFFF</item>
         <item name="call_log_header_color">#FFFFFF</item>
         <!-- VoicemailStatus -->
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index e44ff83..e716719 100644
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -16,7 +16,6 @@
 
 package com.android.dialer;
 
-import android.app.Activity;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.ContentUris;
@@ -68,6 +67,7 @@
 import com.android.dialer.voicemail.VoicemailStatusHelper;
 import com.android.dialer.voicemail.VoicemailStatusHelper.StatusMessage;
 import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
+import com.android.dialerbind.analytics.AnalyticsActivity;
 
 import java.util.List;
 
@@ -77,7 +77,7 @@
  * This activity can be either started with the URI of a single call log entry, or with the
  * {@link #EXTRA_CALL_LOG_IDS} extra to specify a group of call log entries.
  */
-public class CallDetailActivity extends Activity implements ProximitySensorAware {
+public class CallDetailActivity extends AnalyticsActivity implements ProximitySensorAware {
     private static final String TAG = "CallDetail";
 
     private static final int LOADER_ID = 0;
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 53627f6..7d4e2d0 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -63,11 +63,11 @@
 import android.widget.Toast;
 
 import com.android.contacts.common.CallUtil;
-import com.android.contacts.common.activity.TransactionSafeActivity;
 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.widget.FloatingActionButtonController;
+import com.android.dialer.activity.TransactionSafeActivity;
 import com.android.dialer.calllog.CallLogActivity;
 import com.android.dialer.database.DialerDatabaseHelper;
 import com.android.dialer.dialpad.DialpadFragment;
diff --git a/src/com/android/dialer/activity/TransactionSafeActivity.java b/src/com/android/dialer/activity/TransactionSafeActivity.java
new file mode 100644
index 0000000..d7a2120
--- /dev/null
+++ b/src/com/android/dialer/activity/TransactionSafeActivity.java
@@ -0,0 +1,67 @@
+/*
+ * 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.activity;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+import com.android.dialerbind.analytics.AnalyticsActivity;
+
+/**
+ * A common superclass that keeps track of whether an {@link Activity} has saved its state yet or
+ * not.
+ */
+public abstract class TransactionSafeActivity extends AnalyticsActivity {
+
+    private boolean mIsSafeToCommitTransactions;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mIsSafeToCommitTransactions = true;
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        mIsSafeToCommitTransactions = true;
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mIsSafeToCommitTransactions = true;
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        mIsSafeToCommitTransactions = false;
+    }
+
+    /**
+     * Returns true if it is safe to commit {@link FragmentTransaction}s at this time, based on
+     * whether {@link Activity#onSaveInstanceState} has been called or not.
+     *
+     * Make sure that the current activity calls into
+     * {@link super.onSaveInstanceState(Bundle outState)} (if that method is overridden),
+     * so the flag is properly set.
+     */
+    public boolean isSafeToCommitTransactions() {
+        return mIsSafeToCommitTransactions;
+    }
+}
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java
index 3eb4b6b..0054ac0 100644
--- a/src/com/android/dialer/calllog/CallLogActivity.java
+++ b/src/com/android/dialer/calllog/CallLogActivity.java
@@ -16,7 +16,6 @@
 package com.android.dialer.calllog;
 
 import android.app.ActionBar;
-import android.app.Activity;
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.content.Intent;
@@ -36,8 +35,9 @@
 import com.android.dialer.R;
 import com.android.dialer.voicemail.VoicemailStatusHelper;
 import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
+import com.android.dialerbind.analytics.AnalyticsActivity;
 
-public class CallLogActivity extends Activity implements CallLogQueryHandler.Listener {
+public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHandler.Listener {
     private Handler mHandler;
     private ViewPager mViewPager;
     private ViewPagerTabs mViewPagerTabs;
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index eebe725..64b1055 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -670,7 +670,8 @@
         views.number = number;
         views.numberPresentation = numberPresentation;
         views.callType = callType;
-        views.mAccountHandle = accountHandle;
+        // NOTE: This is currently not being used, but can be used in future versions.
+        views.accountHandle = accountHandle;
         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, count);
@@ -688,8 +689,7 @@
             // 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,
-                        accountHandle));
+                views.primaryActionView.setTag(IntentProvider.getReturnCallIntentProvider(number));
             } else {
                 // Number is not callable, so hide button.
                 views.primaryActionView.setTag(null);
@@ -970,7 +970,7 @@
         if (canPlaceCallToNumber) {
             // Sets the primary action to call the number.
             views.callBackButtonView.setTag(
-                    IntentProvider.getReturnCallIntentProvider(views.number, views.mAccountHandle));
+                    IntentProvider.getReturnCallIntentProvider(views.number));
             views.callBackButtonView.setVisibility(View.VISIBLE);
             views.callBackButtonView.setOnClickListener(mActionListener);
         } else {
@@ -982,8 +982,7 @@
         // If one of the calls had video capabilities, show the video call button.
         if (canPlaceCallToNumber && views.phoneCallDetailsViews.callTypeIcons.isVideoShown()) {
             views.videoCallButtonView.setTag(
-                    IntentProvider.getReturnVideoCallIntentProvider(views.number,
-                            views.mAccountHandle));
+                    IntentProvider.getReturnVideoCallIntentProvider(views.number));
             views.videoCallButtonView.setVisibility(View.VISIBLE);
             views.videoCallButtonView.setOnClickListener(mActionListener);
         } else {
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index 52375ed..ded65ed 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -22,7 +22,6 @@
 import android.app.Activity;
 import android.app.DialogFragment;
 import android.app.KeyguardManager;
-import android.app.ListFragment;
 import android.content.Context;
 import android.content.Intent;
 import android.database.ContentObserver;
@@ -58,6 +57,7 @@
 import com.android.dialer.voicemail.VoicemailStatusHelper.StatusMessage;
 import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
 import com.android.dialerbind.ObjectFactory;
+import com.android.dialerbind.analytics.AnalyticsListFragment;
 
 import java.util.List;
 
@@ -65,7 +65,7 @@
  * Displays a list of call log entries. To filter for a particular kind of call
  * (all, missed or voicemails), specify it in the constructor.
  */
-public class CallLogFragment extends ListFragment
+public class CallLogFragment extends AnalyticsListFragment
         implements CallLogQueryHandler.Listener, CallLogAdapter.OnReportButtonClickListener,
         CallLogAdapter.CallFetcher,
         CallLogAdapter.CallItemExpandedListener {
diff --git a/src/com/android/dialer/calllog/CallLogListItemViews.java b/src/com/android/dialer/calllog/CallLogListItemViews.java
index 21e0cb0..e95d7b0 100644
--- a/src/com/android/dialer/calllog/CallLogListItemViews.java
+++ b/src/com/android/dialer/calllog/CallLogListItemViews.java
@@ -87,7 +87,7 @@
      * The account for the current call log entry.  Cached here as the call back
      * intent is set only when the actions ViewStub is inflated.
      */
-    public PhoneAccountHandle mAccountHandle;
+    public PhoneAccountHandle accountHandle;
 
     /**
      * If the call has an associated voicemail message, the URI of the voicemail message for
diff --git a/src/com/android/dialer/calllog/IntentProvider.java b/src/com/android/dialer/calllog/IntentProvider.java
index 517d9e7..11dd69f 100644
--- a/src/com/android/dialer/calllog/IntentProvider.java
+++ b/src/com/android/dialer/calllog/IntentProvider.java
@@ -37,6 +37,10 @@
 
     public abstract Intent getIntent(Context context);
 
+    public static IntentProvider getReturnCallIntentProvider(final String number) {
+        return getReturnCallIntentProvider(number, null);
+    }
+
     public static IntentProvider getReturnCallIntentProvider(final String number,
             final PhoneAccountHandle accountHandle) {
         return new IntentProvider() {
@@ -47,6 +51,10 @@
         };
     }
 
+    public static IntentProvider getReturnVideoCallIntentProvider(final String number) {
+        return getReturnVideoCallIntentProvider(number, null);
+    }
+
     public static IntentProvider getReturnVideoCallIntentProvider(final String number,
             final PhoneAccountHandle accountHandle) {
         return new IntentProvider() {
diff --git a/src/com/android/dialer/calllog/PhoneAccountUtils.java b/src/com/android/dialer/calllog/PhoneAccountUtils.java
index dc838fb..f90ad0d 100644
--- a/src/com/android/dialer/calllog/PhoneAccountUtils.java
+++ b/src/com/android/dialer/calllog/PhoneAccountUtils.java
@@ -68,7 +68,8 @@
      */
     private static PhoneAccount getAccountOrNull(Context context,
             PhoneAccountHandle phoneAccount) {
-        final TelecommManager telecommManager = TelecommManager.from(context);
+        final TelecommManager telecommManager =
+                (TelecommManager) context.getSystemService(Context.TELECOMM_SERVICE);
         final PhoneAccount account = telecommManager.getPhoneAccount(phoneAccount);
         if (account == null || !telecommManager.hasMultipleEnabledAccounts()) {
             return null;
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 450b9af..963dc51 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -20,7 +20,6 @@
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.DialogFragment;
-import android.app.Fragment;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -74,10 +73,13 @@
 import com.android.dialer.R;
 import com.android.dialer.SpecialCharSequenceMgr;
 import com.android.dialer.util.DialerUtils;
+import com.android.dialerbind.analytics.AnalyticsFragment;
 import com.android.phone.common.CallLogAsync;
 import com.android.phone.common.HapticFeedback;
+import com.android.phone.common.animation.AnimUtils;
 import com.android.phone.common.dialpad.DialpadKeyButton;
 import com.android.phone.common.dialpad.DialpadView;
+
 import com.google.common.annotations.VisibleForTesting;
 
 import java.util.HashSet;
@@ -85,7 +87,7 @@
 /**
  * Fragment that displays a twelve-key phone dialpad.
  */
-public class DialpadFragment extends Fragment
+public class DialpadFragment extends AnalyticsFragment
         implements View.OnClickListener,
         View.OnLongClickListener, View.OnKeyListener,
         AdapterView.OnItemClickListener, TextWatcher,
@@ -169,6 +171,7 @@
     /** Remembers if we need to clear digits field when the screen is completely gone. */
     private boolean mClearDigitsOnStop;
 
+    private View mOverflowMenuButton;
     private PopupMenu mOverflowPopupMenu;
     private View mDelete;
     private ToneGenerator mToneGenerator;
@@ -285,6 +288,7 @@
             final Activity activity = getActivity();
             if (activity != null) {
                 activity.invalidateOptionsMenu();
+                updateMenuOverflowButton(mWasEmptyBeforeTextChange);
             }
         }
 
@@ -646,10 +650,11 @@
 
         mSmsPackageComponentName = DialerUtils.getSmsComponent(activity);
 
-        View overflowMenuButton = mDialpadView.getOverflowMenuButton();
-        mOverflowPopupMenu = buildOptionsMenu(overflowMenuButton);
-        overflowMenuButton.setOnTouchListener(mOverflowPopupMenu.getDragToOpenListener());
-        overflowMenuButton.setOnClickListener(this);
+        mOverflowMenuButton = mDialpadView.getOverflowMenuButton();
+        mOverflowPopupMenu = buildOptionsMenu(mOverflowMenuButton);
+        mOverflowMenuButton.setOnTouchListener(mOverflowPopupMenu.getDragToOpenListener());
+        mOverflowMenuButton.setOnClickListener(this);
+        mOverflowMenuButton.setVisibility(View.INVISIBLE);
     }
 
     @Override
@@ -1480,6 +1485,21 @@
     }
 
     /**
+     * Handle transitions for the menu button depending on the state of the digits edit text.
+     * Transition out when going from digits to no digits and transition in when the first digit
+     * is pressed.
+     * @param transitionIn True if transitioning in, False if transitioning out
+     */
+    private void updateMenuOverflowButton(boolean transitionIn) {
+        mOverflowMenuButton = mDialpadView.getOverflowMenuButton();
+        if (transitionIn) {
+            AnimUtils.fadeIn(mOverflowMenuButton, AnimUtils.DEFAULT_DURATION);
+        } else {
+            AnimUtils.fadeOut(mOverflowMenuButton, AnimUtils.DEFAULT_DURATION);
+        }
+    }
+
+    /**
      * Check if voicemail is enabled/accessible.
      *
      * @return true if voicemail is enabled and accessibly. Note that this can be false
diff --git a/src/com/android/dialer/interactions/PhoneNumberInteraction.java b/src/com/android/dialer/interactions/PhoneNumberInteraction.java
index a0f0c80..dc35b06 100644
--- a/src/com/android/dialer/interactions/PhoneNumberInteraction.java
+++ b/src/com/android/dialer/interactions/PhoneNumberInteraction.java
@@ -49,9 +49,9 @@
 import com.android.contacts.common.Collapser;
 import com.android.contacts.common.Collapser.Collapsible;
 import com.android.contacts.common.MoreContactUtils;
-import com.android.contacts.common.activity.TransactionSafeActivity;
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.dialer.R;
+import com.android.dialer.activity.TransactionSafeActivity;
 import com.android.dialer.contact.ContactUpdateService;
 import com.android.dialer.util.DialerUtils;
 
diff --git a/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java b/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
index 2a686c7..6d74cd0 100644
--- a/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
+++ b/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
@@ -59,8 +59,7 @@
         // If the contact is not demoted, this will not do anything. Otherwise, it will
         // restore it to an unpinned position. If it was a frequently called contact, it will
         // show up once again show up on the favorites screen.
-        context.getContentResolver().call(ContactsContract.AUTHORITY_URI,
-                PinnedPositions.UNDEMOTE_METHOD, String.valueOf(id), null);
+        PinnedPositions.undemote(context.getContentResolver(), id);
     }
 
     private long getContactIdFromPhoneNumber(Context context, String number) {
diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java
index 4f96d63..8ca66cf 100644
--- a/src/com/android/dialer/list/ListsFragment.java
+++ b/src/com/android/dialer/list/ListsFragment.java
@@ -35,6 +35,7 @@
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.widget.OverlappingPaneLayout;
 import com.android.dialer.widget.OverlappingPaneLayout.PanelSlideListener;
+import com.android.dialerbind.analytics.AnalyticsFragment;
 import com.android.dialerbind.ObjectFactory;
 
 import java.util.ArrayList;
@@ -47,7 +48,7 @@
  * 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,
+public class ListsFragment extends AnalyticsFragment implements CallLogQueryHandler.Listener,
         CallLogAdapter.CallFetcher, ViewPager.OnPageChangeListener {
 
     private static final boolean DEBUG = DialtactsActivity.DEBUG;
diff --git a/src/com/android/dialer/list/SpeedDialFragment.java b/src/com/android/dialer/list/SpeedDialFragment.java
index a04d4cc..9732e19 100644
--- a/src/com/android/dialer/list/SpeedDialFragment.java
+++ b/src/com/android/dialer/list/SpeedDialFragment.java
@@ -19,7 +19,6 @@
 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;
@@ -49,6 +48,7 @@
 import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
 import com.android.dialer.R;
 import com.android.dialer.util.DialerUtils;
+import com.android.dialerbind.analytics.AnalyticsFragment;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -56,7 +56,7 @@
 /**
  * This fragment displays the user's favorite/frequent contacts in a grid.
  */
-public class SpeedDialFragment extends Fragment implements OnItemClickListener,
+public class SpeedDialFragment extends AnalyticsFragment implements OnItemClickListener,
         PhoneFavoritesTileAdapter.OnDataSetChangedForAnimationListener {
 
     /**
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java
index 6d21db0..8d41d77 100644
--- a/src/com/android/dialer/settings/DialerSettingsActivity.java
+++ b/src/com/android/dialer/settings/DialerSettingsActivity.java
@@ -5,7 +5,6 @@
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.os.Bundle;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceManager;
 import android.preference.PreferenceActivity.Header;
 import android.text.TextUtils;
@@ -21,10 +20,11 @@
 import com.android.contacts.common.preference.DisplayOptionsPreferenceFragment;
 import com.android.dialer.DialtactsActivity;
 import com.android.dialer.R;
+import com.android.dialerbind.analytics.AnalyticsPreferenceActivity;
 
 import java.util.List;
 
-public class DialerSettingsActivity extends PreferenceActivity {
+public class DialerSettingsActivity extends AnalyticsPreferenceActivity {
 
     protected SharedPreferences mPreferences;
     private HeaderAdapter mHeaderAdapter;
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackFragment.java b/src/com/android/dialer/voicemail/VoicemailPlaybackFragment.java
index 33ae5c8..133a988 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackFragment.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackFragment.java
@@ -20,7 +20,6 @@
 import static com.android.dialer.CallDetailActivity.EXTRA_VOICEMAIL_URI;
 
 import android.app.Activity;
-import android.app.Fragment;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
@@ -43,6 +42,7 @@
 import com.android.dialer.ProximitySensorAware;
 import com.android.dialer.R;
 import com.android.dialer.util.AsyncTaskExecutors;
+import com.android.dialerbind.analytics.AnalyticsFragment;
 import com.android.ex.variablespeed.MediaPlayerProxy;
 import com.android.ex.variablespeed.VariableSpeed;
 import com.google.common.base.Preconditions;
@@ -66,7 +66,7 @@
  * methods on this class are expected to come from the main ui thread.
  */
 @NotThreadSafe
-public class VoicemailPlaybackFragment extends Fragment {
+public class VoicemailPlaybackFragment extends AnalyticsFragment {
     private static final String TAG = "VoicemailPlayback";
     private static final int NUMBER_OF_THREADS_IN_POOL = 2;
     private static final String[] HAS_CONTENT_PROJECTION = new String[] {