diff --git a/res/layout/conversation_list.xml b/res/layout/conversation_list.xml
index 4d87975..2d2bfa8 100644
--- a/res/layout/conversation_list.xml
+++ b/res/layout/conversation_list.xml
@@ -29,9 +29,9 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent">
         <FrameLayout
+            android:id="@+id/conversation_list_parent_frame"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:animateLayoutChanges="true"
             android:clickable="true">
             <!-- Note: intentionally not called "empty" because we call
              setEmptyView programmatically-->
diff --git a/res/layout/conversation_list_empty_view.xml b/res/layout/conversation_list_empty_view.xml
index 93e905a..c5dc31c 100644
--- a/res/layout/conversation_list_empty_view.xml
+++ b/res/layout/conversation_list_empty_view.xml
@@ -22,7 +22,7 @@
         android:layout_height="match_parent"
         android:gravity="center"
         android:orientation="vertical"
-        android:visibility="gone" >
+        android:visibility="invisible" >
 
     <ImageView
             android:id="@+id/empty_icon"
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index c3b63b8..27f1644 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Verskuif na <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Resultate"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Search word nie ondersteun op hierdie rekening nie."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Soek tans…"</string>
     <string name="add_label" msgid="6060201715848652940">"Voeg vouer by"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Wys nuwe boodskap van <xliff:g id="SENDER">%s</xliff:g> af."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 9b640aa..c2f0700 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"ወደ <xliff:g id="FOLDERNAME">%1$s</xliff:g> ተወስዷል"</string>
     <string name="search_results_header" msgid="4669917471897026269">"ውጤቶች"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"ፍለጋ በዚህ መለያ አይደገፍም።"</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"በመፈለግ ላይ…"</string>
     <string name="add_label" msgid="6060201715848652940">"አቃፊ አክል"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"ከ<xliff:g id="SENDER">%s</xliff:g> የመጣ አዲስ መልዕክት አሳይ።"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 8ba41b6..27607b8 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"تم النقل إلى <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"النتائج"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"لا يمكن استخدام البحث على هذا الحساب."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"جارٍ البحث…"</string>
     <string name="add_label" msgid="6060201715848652940">"إضافة مجلد"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"عرض رسالة جديدة من <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 2416e91..a97724c 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Преместено в/ъв „<xliff:g id="FOLDERNAME">%1$s</xliff:g>“"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Резултати"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Търсенето не се поддържа за този профил."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Търси се…"</string>
     <string name="add_label" msgid="6060201715848652940">"Добавяне на папка"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Показване на ново съобщение от <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 3f7b76d..e4e1a61 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"S\'ha mogut a <xliff:g id="FOLDERNAME">%1$s</xliff:g>."</string>
     <string name="search_results_header" msgid="4669917471897026269">"Resultats"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"La cerca no és compatible en aquest compte."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"S\'està cercant..."</string>
     <string name="add_label" msgid="6060201715848652940">"Afegeix una carpeta"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Mostra el missatge nou de <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 48c5ede..ad83fc8 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Přesunuto do složky <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Výsledky"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Vyhledávání není v tomto účtu podporováno."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Vyhledávání..."</string>
     <string name="add_label" msgid="6060201715848652940">"Přidat složku"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Zobrazit novou zprávu od odesílatele <xliff:g id="SENDER">%s</xliff:g>"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 8cf6379..5725d28 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Flyttet til <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Resultater"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Søgningen understøttes ikke på denne konto."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Søger..."</string>
     <string name="add_label" msgid="6060201715848652940">"Tilføj mappe"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Vis ny besked fra <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index b286ccf..5693f07 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Verschoben nach <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Ergebnisse"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Die Suche wird für dieses Konto nicht unterstützt."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Wird gesucht..."</string>
     <string name="add_label" msgid="6060201715848652940">"Ordner hinzufügen"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Neue Nachricht von <xliff:g id="SENDER">%s</xliff:g> anzeigen"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 86d7cb2..ffb81a8 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Μεταφέρθηκε στο φάκελο <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Αποτελέσματα"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Η αναζήτηση δεν υποστηρίζεται σε αυτόν τον λογαριασμό."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Αναζήτηση…"</string>
     <string name="add_label" msgid="6060201715848652940">"Προσθήκη φακέλου"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Εμφάνιση νέου μηνύματος από το χρήστη <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 0d9c929..33ab9bf 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Moved to <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Results"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Search is not supported on this account."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Searching…"</string>
     <string name="add_label" msgid="6060201715848652940">"Add folder"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Show new message from <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 0d9c929..33ab9bf 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Moved to <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Results"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Search is not supported on this account."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Searching…"</string>
     <string name="add_label" msgid="6060201715848652940">"Add folder"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Show new message from <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 8e231fe..1a46df4 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Enviada a <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Resultados"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Esta cuenta no admite la función de búsqueda."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Buscando…"</string>
     <string name="add_label" msgid="6060201715848652940">"Agregar carpeta"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Mostrar mensaje nuevo de <xliff:g id="SENDER">%s</xliff:g>"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index c011712..b433b3f 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Movida a <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Resultados"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Esta cuenta no admite la función de búsqueda."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Buscando..."</string>
     <string name="add_label" msgid="6060201715848652940">"Añadir carpeta"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Mostrar mensaje nuevo de <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index e397d08..17276dd 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Teisaldati kausta <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Tulemused"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Sellel kontol ei toetata otsingut."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Otsimine ..."</string>
     <string name="add_label" msgid="6060201715848652940">"Lisa kaust"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Näita uut sõnumit saatjalt <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 5912129..aef7203 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"به <xliff:g id="FOLDERNAME">%1$s</xliff:g> انتقال یافت"</string>
     <string name="search_results_header" msgid="4669917471897026269">"نتایج"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"جستجو در این حساب پشتیبانی نمی‌شود."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"در حال جستجو..."</string>
     <string name="add_label" msgid="6060201715848652940">"افزودن پوشه"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"نمایش پیام جدید از <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 3ca26e8..5fe582f 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -78,8 +78,7 @@
     <string name="menu_folder_options" msgid="8897520487430647932">"Kansion asetukset..."</string>
     <string name="menu_settings" msgid="6007027046949837282">"Asetukset"</string>
     <string name="menu_search" msgid="5297197523031943248">"Haku"</string>
-    <!-- no translation found for drawer_title (5888199203222498840) -->
-    <skip />
+    <string name="drawer_title" msgid="5888199203222498840">"Navigointi"</string>
     <string name="mark_important" msgid="6904096897104265870">"Merkitse tärkeäksi"</string>
     <string name="mark_not_important" msgid="4550967327747977068">"Merkitse ei-tärkeäksi"</string>
     <string name="add_cc_label" msgid="504861315425773180">"Lisää kopio/piilokopio"</string>
@@ -215,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Siirretty kansioon <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Tulokset"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Hakua ei voi käyttää tällä tilillä."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Haetaan.."</string>
     <string name="add_label" msgid="6060201715848652940">"Lisää kansio"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Näytä uusi viesti lähettäjältä <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 283a90f..694d4ad 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Déplacée vers <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Résultats"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"La fonctionnalité de recherche n\'est pas compatible avec ce compte."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Recherche en cours…"</string>
     <string name="add_label" msgid="6060201715848652940">"Ajouter un dossier"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Afficher le nouveau message envoyé par <xliff:g id="SENDER">%s</xliff:g>"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 8082183..71f4c17 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Déplacée vers <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Résultats"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"La fonctionnalité de recherche n\'est pas compatible avec ce compte."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Recherche en cours…"</string>
     <string name="add_label" msgid="6060201715848652940">"Ajouter un dossier"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Afficher le nouveau message envoyé par <xliff:g id="SENDER">%s</xliff:g>"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 379509a..6fcd274 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"<xliff:g id="FOLDERNAME">%1$s</xliff:g> में ले जाया गया"</string>
     <string name="search_results_header" msgid="4669917471897026269">"परिणाम"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"इस खाते पर खोज समर्थित नहीं है."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"खोज रहा है…"</string>
     <string name="add_label" msgid="6060201715848652940">"फ़ोल्‍डर जोड़ें"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"<xliff:g id="SENDER">%s</xliff:g> के नए संदेश दिखाएं."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 6b49837..017db00 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Premješteno u mapu <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Rezultati"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Pretraživanje nije podržano na ovom računu."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Traženje..."</string>
     <string name="add_label" msgid="6060201715848652940">"Dodaj mapu"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Pokaži nove poruke pošiljatelja <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index eaac1f7..995955d 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Áthelyezve ide: <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Találatok"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"A keresés nem támogatott ebben a fiókban."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Keresés..."</string>
     <string name="add_label" msgid="6060201715848652940">"Mappa hozzáadása"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Új üzenetek megjelenítése tőle: <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 7c53d32..4d1661a 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Տեղափոխվել է <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Արդյունքներ"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Որոնումը չի աջակցվում այս հաշվի համար:"</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Որոնում..."</string>
     <string name="add_label" msgid="6060201715848652940">"Ավելացնել թղթապանակ"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Ցույց տալ նոր հաղորդագրությունը <xliff:g id="SENDER">%s</xliff:g>-ից:"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 4018155..ab44f9b 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Dipindahkan ke <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Hasil"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Penelusuran tidak didukung pada akun ini."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Menelusuri…"</string>
     <string name="add_label" msgid="6060201715848652940">"Tambahkan folder"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Tampilkan pesan baru dari <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 53abc16..20d361c 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Spostata in <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Risultati"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"La ricerca non è supportata per l\'account in uso."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Ricerca…"</string>
     <string name="add_label" msgid="6060201715848652940">"Aggiungi cartella"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Mostra nuovo messaggio di <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 81f8386..9aa42ea 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"הועברה אל <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"תוצאות"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"חיפוש אינו נתמך בחשבון זה."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"מחפש…"</string>
     <string name="add_label" msgid="6060201715848652940">"הוסף תיקיה"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"הצג הודעות חדשות מ-<xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 8b1bb80..99f9b9d 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"<xliff:g id="FOLDERNAME">%1$s</xliff:g>に移動しました"</string>
     <string name="search_results_header" msgid="4669917471897026269">"検索結果"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"このアカウントでは検索をご利用いただけません。"</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"検索しています…"</string>
     <string name="add_label" msgid="6060201715848652940">"フォルダを追加"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"<xliff:g id="SENDER">%s</xliff:g>さんからの新着メールを表示"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index a871d7b..f89bf80 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"გადატანილია <xliff:g id="FOLDERNAME">%1$s</xliff:g>-ში"</string>
     <string name="search_results_header" msgid="4669917471897026269">"შედეგები"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"ძიება ამ ანგარიშში არ არის მხარდაჭერილი."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"ძიება…"</string>
     <string name="add_label" msgid="6060201715848652940">"საქაღალდის დამატება"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"<xliff:g id="SENDER">%s</xliff:g>-დან მიღებული ახალი შეტყობინების ჩვენება."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index 6d4fa8a..34c88e4 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"បាន​ផ្លាស់​ទី​ទៅ <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"លទ្ធផល"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"មិន​គាំទ្រ​ការ​ស្វែងរក​​នៅ​លើ​គណនី​នេះ​។"</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"កំពុង​​ស្វែងរក..."</string>
     <string name="add_label" msgid="6060201715848652940">"បន្ថែម​ថត"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"បង្ហាញ​សារ​ថ្មី​ពី <xliff:g id="SENDER">%s</xliff:g> ។"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 38156d2..7fdcd2b 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"<xliff:g id="FOLDERNAME">%1$s</xliff:g>(으)로 이동함"</string>
     <string name="search_results_header" msgid="4669917471897026269">"검색결과"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"이 계정에서는 검색이 지원되지 않습니다."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"검색 중…"</string>
     <string name="add_label" msgid="6060201715848652940">"폴더 추가"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"<xliff:g id="SENDER">%s</xliff:g>님이 보낸 새 메일 보기"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index b449244..3230021 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"ຍ້າຍໄປ <xliff:g id="FOLDERNAME">%1$s</xliff:g> ແລ້ວ"</string>
     <string name="search_results_header" msgid="4669917471897026269">"ຜົນໄດ້ຮັບ"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"ການຊອກຫາບໍ່ຮອງຮັບສຳລັບບັນຊີນີ້."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"ກຳລັງຊອກຫາ..."</string>
     <string name="add_label" msgid="6060201715848652940">"ເພີ່ມໂຟນເດີ"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"ສະ​ແດງ​ຂໍ້​ຄວາມ​ໃຫມ່​ຈາກ <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 87c63ba..226273b 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Perkelta į <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Rezultatai"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Šioje paskyroje paieška nepalaikoma."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Ieškoma…"</string>
     <string name="add_label" msgid="6060201715848652940">"Pridėti aplanką"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Rodyti naują pranešimą nuo <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 0385328..514c1b6 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Pārvietota uz: <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Rezultāti"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Šajā kontā netiek atbalstīta meklēšana."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Notiek meklēšana..."</string>
     <string name="add_label" msgid="6060201715848652940">"Pievienot mapi"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Rādīt jaunu ziņojumu no: <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 0ec43b3..7fce862 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"<xliff:g id="FOLDERNAME">%1$s</xliff:g> руу зөөсөн"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Илэрцүүд"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Энэ акаунтад хайлт дэмжигддэггүй."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Хайж байна..."</string>
     <string name="add_label" msgid="6060201715848652940">"Фолдер нэмэх"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"<xliff:g id="SENDER">%s</xliff:g>-с ирсэн шинэ зурвасыг харуулах."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index f009626..4c87353 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -78,8 +78,7 @@
     <string name="menu_folder_options" msgid="8897520487430647932">"Tetapan folder"</string>
     <string name="menu_settings" msgid="6007027046949837282">"Tetapan"</string>
     <string name="menu_search" msgid="5297197523031943248">"Carian"</string>
-    <!-- no translation found for drawer_title (5888199203222498840) -->
-    <skip />
+    <string name="drawer_title" msgid="5888199203222498840">"Navigasi"</string>
     <string name="mark_important" msgid="6904096897104265870">"Tandakan penting"</string>
     <string name="mark_not_important" msgid="4550967327747977068">"Tandakan tidak penting"</string>
     <string name="add_cc_label" msgid="504861315425773180">"Tambah Sk/Skt"</string>
@@ -215,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Dialihkan ke <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Hasil"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Carian tidak disokong pada akaun ini."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Mencari..."</string>
     <string name="add_label" msgid="6060201715848652940">"Tambah folder"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Tunjukkan mesej baharu daripada <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index b8f24c2..6e5c312 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Flyttet til <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Resultater"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Søk støttes ikke på denne kontoen."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Søker …"</string>
     <string name="add_label" msgid="6060201715848652940">"Legg til mappe"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Vis ny e-post fra <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index fd112e0..22c00e0 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Verplaatst naar <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Resultaten"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Zoeken wordt niet ondersteund in dit account."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Zoeken…"</string>
     <string name="add_label" msgid="6060201715848652940">"Map toevoegen"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Nieuw bericht van <xliff:g id="SENDER">%s</xliff:g> weergeven."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 3f30855..86d596c 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Przeniesiono do: <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Wyniki"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Wyszukiwanie nie jest obsługiwane na tym koncie."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Wyszukiwanie…"</string>
     <string name="add_label" msgid="6060201715848652940">"Dodaj folder"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Pokaż nową wiadomość od: <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index bbf9880..fb355c0 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Movida para <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Resultados"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"A pesquisa não é suportada nesta conta."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"A pesquisar..."</string>
     <string name="add_label" msgid="6060201715848652940">"Adicionar pasta"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Mostrar nova mensagem de <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 77fb5ba..22378a3 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Movida para <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Resultados"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Não há suporte para pesquisa nesta conta."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Pesquisando..."</string>
     <string name="add_label" msgid="6060201715848652940">"Adicionar pasta"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Mostrar nova mensagem de <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index 77abb5d..c55cc96 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -317,8 +317,6 @@
     <skip />
     <!-- no translation found for search_unsupported (4654227193354052607) -->
     <skip />
-    <!-- no translation found for search_results_searching_header (3821361153909466819) -->
-    <skip />
     <!-- no translation found for add_label (6060201715848652940) -->
     <skip />
     <!-- no translation found for new_incoming_messages_one (827152289636155810) -->
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 17a506c..6dee716 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Mutată în <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Rezultate"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Căutarea nu este acceptată pentru acest cont."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Se caută..."</string>
     <string name="add_label" msgid="6060201715848652940">"Adăugați un dosar"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Afișați mesajul nou de la <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 798d6b6..0390810 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Перемещено в папку \"<xliff:g id="FOLDERNAME">%1$s</xliff:g>\""</string>
     <string name="search_results_header" msgid="4669917471897026269">"Результаты"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"В этом аккаунте не поддерживается поиск."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Поиск…"</string>
     <string name="add_label" msgid="6060201715848652940">"Добавить папку"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Показать новое сообщение (автор: <xliff:g id="SENDER">%s</xliff:g>)"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index efec722..856e19b 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Presunuté do priečinka <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Výsledky"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Hľadanie nie je v tomto účte podporované."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Prebieha vyhľadávanie..."</string>
     <string name="add_label" msgid="6060201715848652940">"Pridať priečinok"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Zobraziť novú správu od odosielateľa <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 430b200..6f88d5a 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Premaknjeno v: <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Rezultati"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Iskanje ni podprto za ta račun."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Iskanje ..."</string>
     <string name="add_label" msgid="6060201715848652940">"Dodaj mapo"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Prikaži novo sporočilo pošiljatelja <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 88f97e7..bf84397 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -22,7 +22,7 @@
     <string name="cc" msgid="7017720927911078193">"Копија"</string>
     <string name="bcc" msgid="3098643138241111579">"Скривена копија"</string>
     <string name="subject_hint" msgid="7253964583324677128">"Наслов"</string>
-    <string name="body_hint" msgid="4279864165439577668">"Напишите поруку е-поште"</string>
+    <string name="body_hint" msgid="4279864165439577668">"Напишите имејл"</string>
     <string name="add_file_attachment" msgid="2203398371671979481">"Приложи датотеку"</string>
     <string name="add_photo_attachment" msgid="3738882100645552858">"Приложи слику"</string>
     <string name="save_draft" msgid="5555744208032445632">"Сачувај недовршену поруку"</string>
@@ -124,7 +124,7 @@
     <string name="contextmenu_dial_dot" msgid="9104426720103729453">"Позови..."</string>
     <string name="contextmenu_sms_dot" msgid="6481040539501081547">"SMS…"</string>
     <string name="contextmenu_add_contact" msgid="8395100913366045250">"Додај контакт"</string>
-    <string name="contextmenu_send_mail" msgid="8301941130009797208">"Пошаљи поруку е-поште"</string>
+    <string name="contextmenu_send_mail" msgid="8301941130009797208">"Пошаљи имејл"</string>
     <string name="contextmenu_map" msgid="7721544518698532954">"Мапа"</string>
     <string name="contextmenu_sharelink" msgid="6213520416250245200">"Дели везу"</string>
     <string name="contextmenu_help" msgid="4651718679842414097">"Помоћ"</string>
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Премештена је у <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Резултати"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Претрага није подржана на овом налогу."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Претраживање..."</string>
     <string name="add_label" msgid="6060201715848652940">"Додај директоријум"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Прикажи нову поруку пошиљаоца <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index d0ea324..fe8fd1f 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Flyttades till <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Resultat"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Det går inte att söka i det här kontot."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Söker …"</string>
     <string name="add_label" msgid="6060201715848652940">"Lägg till mapp"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Visa nytt meddelande från <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 1653abd..3a88557 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Imehamishwa kwenda <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Matokeo"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Utafutaji hauauniwi kwenye akaunti hii."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Inatafuta…"</string>
     <string name="add_label" msgid="6060201715848652940">"Ongeza folda"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Onyesha barua pepe mpya kutoka kwa <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 6e5c7b5..007b1ef 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"ย้ายไปยัง <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"ผลการค้นหา"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"บัญชีนี้ไม่สนับสนุนการค้นหา"</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"กำลังค้นหา..."</string>
     <string name="add_label" msgid="6060201715848652940">"เพิ่มโฟลเดอร์"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"แสดงข้อความใหม่จาก <xliff:g id="SENDER">%s</xliff:g>"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 4db0eb5..66b1382 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Inilipat sa <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Mga resulta"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Hindi sinusuportahan ang paghahanap sa account na ito."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Naghahanap..."</string>
     <string name="add_label" msgid="6060201715848652940">"Magdagdag ng folder"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Ipakita mga bagong mensahe mula kay <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 563e1be..ecbf706 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"<xliff:g id="FOLDERNAME">%1$s</xliff:g> klasörüne taşındı"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Sonuçlar"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Bu hesapta arama desteklenmiyor"</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Aranıyor…"</string>
     <string name="add_label" msgid="6060201715848652940">"Klasör ekle"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"<xliff:g id="SENDER">%s</xliff:g> adlı kişiden gelen yeni mesajı göster."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 23c5a1f..be11cf9 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Переміщено в папку <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Результати"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Функція пошуку в цьому обліковому записі не підтримується."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Пошук..."</string>
     <string name="add_label" msgid="6060201715848652940">"Додати папку"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Показати нове повідомлення (автор <xliff:g id="SENDER">%s</xliff:g>)."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 5f2e19b..4b494e3 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Đã chuyển vào <xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Kết quả"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Không hỗ trợ tính năng tìm kiếm trên tài khoản này."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Đang tìm kiếm…"</string>
     <string name="add_label" msgid="6060201715848652940">"Thêm thư mục"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Hiển thị tin nhắn mới từ <xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 4821a2b..28a251f 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -78,8 +78,7 @@
     <string name="menu_folder_options" msgid="8897520487430647932">"文件夹设置"</string>
     <string name="menu_settings" msgid="6007027046949837282">"设置"</string>
     <string name="menu_search" msgid="5297197523031943248">"搜索"</string>
-    <!-- no translation found for drawer_title (5888199203222498840) -->
-    <skip />
+    <string name="drawer_title" msgid="5888199203222498840">"导航"</string>
     <string name="mark_important" msgid="6904096897104265870">"标记为重要"</string>
     <string name="mark_not_important" msgid="4550967327747977068">"标记为不重要"</string>
     <string name="add_cc_label" msgid="504861315425773180">"添加抄送/密送地址"</string>
@@ -215,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"已移至“<xliff:g id="FOLDERNAME">%1$s</xliff:g>”"</string>
     <string name="search_results_header" msgid="4669917471897026269">"结果"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"此帐户不支持搜索。"</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"正在搜索..."</string>
     <string name="add_label" msgid="6060201715848652940">"添加文件夹"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"显示来自<xliff:g id="SENDER">%s</xliff:g>的新邮件。"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index dfd7b07..4c55885 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"已移至「<xliff:g id="FOLDERNAME">%1$s</xliff:g>」"</string>
     <string name="search_results_header" msgid="4669917471897026269">"結果"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"這個帳戶不支援搜尋功能。"</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"正在搜尋..."</string>
     <string name="add_label" msgid="6060201715848652940">"新增資料夾"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"顯示來自<xliff:g id="SENDER">%s</xliff:g>的新郵件。"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index b591f25..4e5285f 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"已移至「<xliff:g id="FOLDERNAME">%1$s</xliff:g>」"</string>
     <string name="search_results_header" msgid="4669917471897026269">"搜尋結果"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"這個帳戶不支援搜尋功能。"</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"搜尋中…"</string>
     <string name="add_label" msgid="6060201715848652940">"新增資料夾"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"顯示來自<xliff:g id="SENDER">%s</xliff:g>的新郵件。"</string>
   <plurals name="new_incoming_messages_many">
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 30d183d..86c0772 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -214,7 +214,6 @@
     <string name="conversation_folder_moved" msgid="297469098857964678">"Kuhanjiswe ku-<xliff:g id="FOLDERNAME">%1$s</xliff:g>"</string>
     <string name="search_results_header" msgid="4669917471897026269">"Imiphumela"</string>
     <string name="search_unsupported" msgid="4654227193354052607">"Usesho alusekelwe kule akhawunti."</string>
-    <string name="search_results_searching_header" msgid="3821361153909466819">"Iyasesha..."</string>
     <string name="add_label" msgid="6060201715848652940">"Engeza ifolda"</string>
     <string name="new_incoming_messages_one" msgid="827152289636155810">"Bonisa umlayezo omusha osuka ku-<xliff:g id="SENDER">%s</xliff:g>."</string>
   <plurals name="new_incoming_messages_many">
diff --git a/src/com/android/mail/analytics/AnalyticsTimer.java b/src/com/android/mail/analytics/AnalyticsTimer.java
index 88bc270..1392a38 100644
--- a/src/com/android/mail/analytics/AnalyticsTimer.java
+++ b/src/com/android/mail/analytics/AnalyticsTimer.java
@@ -32,6 +32,8 @@
  */
 public class AnalyticsTimer {
     public static final String OPEN_CONV_VIEW_FROM_LIST = "open_conv_from_list";
+    public static final String COLD_START_LAUNCHER = "cold_start_to_list";
+    public static final String SEARCH_TO_LIST = "search_to_list";
 
     private final Map<String, Long> mStartTimes = Maps.newConcurrentMap();
 
@@ -44,6 +46,11 @@
         return mInstance;
     }
 
+    /**
+     * Record the current time as the start time of the provided id. If the id has a previously
+     * recorded start time, that time is overwritten.
+     * @param id
+     */
     public void trackStart(String id) {
         mStartTimes.put(id, SystemClock.uptimeMillis());
     }
diff --git a/src/com/android/mail/browse/EmlViewerActivity.java b/src/com/android/mail/browse/EmlViewerActivity.java
index 1812f13..ab3fd60 100644
--- a/src/com/android/mail/browse/EmlViewerActivity.java
+++ b/src/com/android/mail/browse/EmlViewerActivity.java
@@ -22,6 +22,7 @@
 import android.os.Bundle;
 
 import com.android.mail.R;
+import com.android.mail.analytics.Analytics;
 import com.android.mail.ui.AccountFeedbackActivity;
 import com.android.mail.utils.LogTag;
 import com.android.mail.utils.LogUtils;
@@ -47,6 +48,7 @@
                 transaction.add(R.id.root, EmlMessageViewFragment.newInstance(
                         intent.getData(), mAccountUri), FRAGMENT_TAG);
                 transaction.commit();
+                Analytics.getInstance().sendEvent("eml_viewer", null, null, 0);
             } else {
                 LogUtils.wtf(LOG_TAG,
                         "Entered EmlViewerActivity with wrong intent action or type: %s, %s",
diff --git a/src/com/android/mail/browse/InlineAttachmentViewIntentBuilder.java b/src/com/android/mail/browse/InlineAttachmentViewIntentBuilder.java
index ac169b9..1722239 100644
--- a/src/com/android/mail/browse/InlineAttachmentViewIntentBuilder.java
+++ b/src/com/android/mail/browse/InlineAttachmentViewIntentBuilder.java
@@ -20,8 +20,6 @@
 import android.content.Context;
 import android.content.Intent;
 
-import com.android.mail.providers.Message;
-
 /**
  * Builds an intent to be used when the user long presses an
  * inline image and selects "View image".
@@ -39,5 +37,6 @@
      * inline image and selects "View Image" or {@code null} if there should not
      * be a "View image" option for this url.
      */
-    Intent createInlineAttachmentViewIntent(Context context, String url, Message message);
+    Intent createInlineAttachmentViewIntent(
+            Context context, String url, ConversationMessage message);
 }
diff --git a/src/com/android/mail/browse/MessageAttachmentBar.java b/src/com/android/mail/browse/MessageAttachmentBar.java
index 230e634..2c6cbbe 100644
--- a/src/com/android/mail/browse/MessageAttachmentBar.java
+++ b/src/com/android/mail/browse/MessageAttachmentBar.java
@@ -83,6 +83,13 @@
 
     private static final String LOG_TAG = LogTag.getLogTag();
 
+    /**
+     * Boolean used to tell whether extra option 1 should always be hidden.
+     * Currently makes sure that there is no conversation because that state
+     * means that we're in the EML viewer.
+     */
+    private boolean mHideExtraOptionOne;
+
 
     public MessageAttachmentBar(Context context) {
         this(context, null);
@@ -119,6 +126,7 @@
         mActionHandler.setAccount(mAccount.getEmailAddress());
         mActionHandler.setMessage(message);
         mActionHandler.setAttachment(mAttachment);
+        mHideExtraOptionOne = message.getConversation() == null;
 
         // reset mSaveClicked if we are not currently downloading
         // So if the download fails or the download completes, we stop
@@ -304,7 +312,7 @@
     }
 
     private boolean shouldShowExtraOption1() {
-        return mActionHandler.shouldShowExtraOption1();
+        return !mHideExtraOptionOne && mActionHandler.shouldShowExtraOption1();
     }
 
     private boolean shouldShowOverflow() {
diff --git a/src/com/android/mail/browse/MessageFooterView.java b/src/com/android/mail/browse/MessageFooterView.java
index cfec4e3..24bc5f8 100644
--- a/src/com/android/mail/browse/MessageFooterView.java
+++ b/src/com/android/mail/browse/MessageFooterView.java
@@ -89,6 +89,12 @@
         MessageFooterView getViewForItem(MessageFooterItem item);
 
         int getUpdatedHeight(MessageFooterItem item);
+
+        /**
+         * @return <tt>true</tt> if this footer is contained within a SecureConversationViewFragment
+         * and cannot assume the content is <strong>not</strong> malicious
+         */
+        boolean isSecure();
     }
 
     public MessageFooterView(Context context) {
@@ -222,13 +228,15 @@
         final List<Attachment> barAttachments = new ArrayList<Attachment>(maxSize);
 
         for (Attachment attachment : attachments) {
-            if (attachment.isInlineAttachment()) {
-                // skip non-standard (aka inline) attachments
-                continue;
-            } else if (AttachmentTile.isTiledAttachment(attachment)) {
-                tiledAttachments.add(attachment);
-            } else {
-                barAttachments.add(attachment);
+            // attachments in secure views are displayed in the footer so the user may interact with
+            // them; for normal views there is no need to show inline attachments in the footer
+            // since users can interact with them in place
+            if (!attachment.isInlineAttachment() || mCallbacks.isSecure()) {
+                if (AttachmentTile.isTiledAttachment(attachment)) {
+                    tiledAttachments.add(attachment);
+                } else {
+                    barAttachments.add(attachment);
+                }
             }
         }
 
@@ -367,7 +375,7 @@
     }
 
     public void collapseAboveBarAttachmentsView() {
-        int heightBefore = measureHeight();
+        measureHeight();
         mAboveAttachmentBarListLayout.setVisibility(View.GONE);
         updateSpacerHeight();
     }
diff --git a/src/com/android/mail/browse/MessageHeaderView.java b/src/com/android/mail/browse/MessageHeaderView.java
index d398fc5..7330338 100644
--- a/src/com/android/mail/browse/MessageHeaderView.java
+++ b/src/com/android/mail/browse/MessageHeaderView.java
@@ -84,15 +84,10 @@
     private static final int SHOW_IMAGE_PROMPT_ONCE = 1;
     private static final int SHOW_IMAGE_PROMPT_ALWAYS = 2;
 
-    private static final String HEADER_INFLATE_TAG = "message header inflate";
-    private static final String HEADER_ADDVIEW_TAG = "message header addView";
     private static final String HEADER_RENDER_TAG = "message header render";
-    private static final String PREMEASURE_TAG = "message header pre-measure";
     private static final String LAYOUT_TAG = "message header layout";
     private static final String MEASURE_TAG = "message header measure";
 
-    private static final String RECIPIENT_HEADING_DELIMITER = "   ";
-
     private static final String LOG_TAG = LogTag.getLogTag();
 
     // This is a debug only feature
@@ -230,6 +225,12 @@
         String getMessageTransforms(Message msg);
 
         FragmentManager getFragmentManager();
+
+        /**
+         * @return <tt>true</tt> if this header is contained within a SecureConversationViewFragment
+         * and cannot assume the content is <strong>not</strong> malicious
+         */
+        boolean isSecure();
     }
 
     public MessageHeaderView(Context context) {
@@ -419,9 +420,21 @@
         mMessage = mMessageHeaderItem.getMessage();
 
         final Account account = getAccount();
-        final boolean alwaysShowImages = (account != null) &&
+        final boolean alwaysShowImagesForAccount = (account != null) &&
                 (account.settings.showImages == Settings.ShowImages.ALWAYS);
-        mShowImagePrompt = mMessage.shouldShowImagePrompt() && !alwaysShowImages;
+
+        final boolean alwaysShowImagesForMessage = mMessage.shouldShowImagePrompt();
+
+        if (!alwaysShowImagesForMessage) {
+            // we don't need the "Show picture" prompt if the user allows images for this message
+            mShowImagePrompt = false;
+        } else if (mCallbacks.isSecure()) {
+            // in a secure view we always display the "Show picture" prompt
+            mShowImagePrompt = true;
+        } else {
+            // otherwise honor the account setting for automatically showing pictures
+            mShowImagePrompt = !alwaysShowImagesForAccount;
+        }
 
         setExpanded(mMessageHeaderItem.isExpanded());
 
@@ -563,13 +576,6 @@
         return TextUtils.isEmpty(displayName) ? sender.getAddress() : displayName;
     }
 
-    /**
-     * Return the address, if a name is present, or null if not.
-     */
-    private static CharSequence getSenderAddress(Address sender) {
-        return (sender != null) ? sender.getAddress() : "";
-    }
-
     private static void setChildVisibility(int visibility, View... children) {
         for (View v : children) {
             if (v != null) {
@@ -854,7 +860,9 @@
         boolean photoSet = false;
         final String email = mSender.getAddress();
         final ContactInfo info = mContactInfoSource.getContactInfo(email);
-        if (info != null) {
+        // Need to also check if we have a contactUri because we put empty
+        // results in the ContactInfoSource if no result was found but a query happened.
+        if (info != null && info.contactUri != null) {
             mPhotoView.assignContactUri(info.contactUri);
             if (info.photo != null) {
                 mPhotoView.setImageBitmap(info.photo);
@@ -1081,7 +1089,7 @@
         public int bottomHeight = -1;
     }
 
-    private boolean isValidPosition(int position, int size) {
+    private static boolean isValidPosition(int position, int size) {
         return position >= 0 && position < size;
     }
 
diff --git a/src/com/android/mail/browse/WebViewContextMenu.java b/src/com/android/mail/browse/WebViewContextMenu.java
index fc6ac63..a71cff2 100644
--- a/src/com/android/mail/browse/WebViewContextMenu.java
+++ b/src/com/android/mail/browse/WebViewContextMenu.java
@@ -90,7 +90,7 @@
          * @param url URL of a selected link
          * @return Message containing that URL
          */
-        Message getMessageForClickedUrl(String url);
+        ConversationMessage getMessageForClickedUrl(String url);
     }
 
     public WebViewContextMenu(Activity host, InlineAttachmentViewIntentBuilder builder) {
@@ -385,7 +385,8 @@
      * @param menu The {@link android.view.ContextMenu} that is about to be shown.
      */
     private void setupImageMenu(String url, ContextMenu menu) {
-        final Message msg = (mCallbacks != null) ? mCallbacks.getMessageForClickedUrl(url) : null;
+        final ConversationMessage msg =
+                (mCallbacks != null) ? mCallbacks.getMessageForClickedUrl(url) : null;
         if (msg == null) {
             menu.setGroupVisible(R.id.IMAGE_MENU, false);
             return;
diff --git a/src/com/android/mail/photo/MailPhotoViewActivity.java b/src/com/android/mail/photo/MailPhotoViewActivity.java
index 3113bdf..5d24394 100644
--- a/src/com/android/mail/photo/MailPhotoViewActivity.java
+++ b/src/com/android/mail/photo/MailPhotoViewActivity.java
@@ -39,6 +39,7 @@
 import com.android.mail.R;
 import com.android.mail.analytics.Analytics;
 import com.android.mail.browse.AttachmentActionHandler;
+import com.android.mail.browse.ConversationMessage;
 import com.android.mail.print.PrintUtils;
 import com.android.mail.providers.Attachment;
 import com.android.mail.providers.Message;
@@ -79,6 +80,10 @@
 
     private static final String EXTRA_ACCOUNT = MailPhotoViewActivity.class.getName() + "-acct";
     private static final String EXTRA_MESSAGE = MailPhotoViewActivity.class.getName() + "-msg";
+    private static final String EXTRA_HIDE_EXTRA_OPTION_ONE =
+            MailPhotoViewActivity.class.getName() + "-hide-extra-option-one";
+
+    private boolean mHideExtraOptionOne;
 
     /**
      * Start a new MailPhotoViewActivity to view the given images.
@@ -86,7 +91,7 @@
      * @param photoIndex The index of the photo to show first.
      */
     public static void startMailPhotoViewActivity(final Context context, final String account,
-            final Message msg, final int photoIndex) {
+            final ConversationMessage msg, final int photoIndex) {
         final Intents.PhotoViewIntentBuilder builder =
                 Intents.newPhotoViewIntentBuilder(context,
                         "com.android.mail.photo.MailPhotoViewActivity");
@@ -104,13 +109,13 @@
      * @param initialPhotoUri The uri of the photo to show first.
      */
     public static void startMailPhotoViewActivity(final Context context, final String account,
-            final Message msg, final String initialPhotoUri) {
+            final ConversationMessage msg, final String initialPhotoUri) {
         context.startActivity(
                 buildMailPhotoViewActivityIntent(context, account, msg, initialPhotoUri));
     }
 
     public static Intent buildMailPhotoViewActivityIntent(
-            final Context context, final String account, final Message msg,
+            final Context context, final String account, final ConversationMessage msg,
             final String initialPhotoUri) {
         final Intents.PhotoViewIntentBuilder builder = Intents.newPhotoViewIntentBuilder(
                 context, "com.android.mail.photo.MailPhotoViewActivity");
@@ -122,9 +127,11 @@
         return wrapIntent(builder.build(), account, msg);
     }
 
-    private static Intent wrapIntent(final Intent intent, final String account, final Message msg) {
+    private static Intent wrapIntent(
+            final Intent intent, final String account, final ConversationMessage msg) {
         intent.putExtra(EXTRA_MESSAGE, msg);
         intent.putExtra(EXTRA_ACCOUNT, account);
+        intent.putExtra(EXTRA_HIDE_EXTRA_OPTION_ONE, msg.getConversation() == null);
         return intent;
     }
 
@@ -139,6 +146,7 @@
         final Intent intent = getIntent();
         final String account = intent.getStringExtra(EXTRA_ACCOUNT);
         final Message msg = intent.getParcelableExtra(EXTRA_MESSAGE);
+        mHideExtraOptionOne = intent.getBooleanExtra(EXTRA_HIDE_EXTRA_OPTION_ONE, false);
         mActionHandler.setAccount(account);
         mActionHandler.setMessage(msg);
     }
@@ -183,7 +191,11 @@
             mShareItem.setEnabled(canShare);
             mPrintItem.setEnabled(canShare);
             mDownloadAgainItem.setEnabled(attachment.canSave() && attachment.isDownloading());
-            mExtraOption1Item.setEnabled(mActionHandler.shouldShowExtraOption1());
+            if (mHideExtraOptionOne) {
+                mExtraOption1Item.setVisible(false);
+            } else {
+                mExtraOption1Item.setEnabled(mActionHandler.shouldShowExtraOption1());
+            }
         } else {
             if (mMenu != null) {
                 mMenu.setGroupEnabled(R.id.photo_view_menu_group, false);
diff --git a/src/com/android/mail/providers/Message.java b/src/com/android/mail/providers/Message.java
index 29522e5..7fd3b41 100644
--- a/src/com/android/mail/providers/Message.java
+++ b/src/com/android/mail/providers/Message.java
@@ -468,7 +468,7 @@
         int partId = 0;
         for (final Part attachmentPart : attachments) {
             mAttachments.add(new Attachment(context, attachmentPart,
-                    emlFileUri, messageId, Integer.toString(partId++), false));
+                    emlFileUri, messageId, Integer.toString(partId++), false /* inline */));
         }
 
         // instantiating an Attachment for each viewable will cause it to be registered within the
@@ -477,7 +477,8 @@
             final String[] cids = viewablePart.getHeader(MimeHeader.HEADER_CONTENT_ID);
             if (cids != null && cids.length == 1) {
                 final String cid = REMOVE_OPTIONAL_BRACKETS.matcher(cids[0]).replaceAll("$1");
-                new Attachment(context, viewablePart, emlFileUri, messageId, cid, true);
+                mAttachments.add(new Attachment(context, viewablePart, emlFileUri, messageId, cid,
+                        true /* inline */));
             }
         }
 
diff --git a/src/com/android/mail/ui/AbstractActivityController.java b/src/com/android/mail/ui/AbstractActivityController.java
index 1c02015..94df3a8 100644
--- a/src/com/android/mail/ui/AbstractActivityController.java
+++ b/src/com/android/mail/ui/AbstractActivityController.java
@@ -66,6 +66,7 @@
 import com.android.mail.MailLogService;
 import com.android.mail.R;
 import com.android.mail.analytics.Analytics;
+import com.android.mail.analytics.AnalyticsTimer;
 import com.android.mail.analytics.AnalyticsUtils;
 import com.android.mail.browse.ConfirmDialogFragment;
 import com.android.mail.browse.ConversationCursor;
@@ -2186,6 +2187,7 @@
 
     @Override
     public void executeSearch(String query) {
+        AnalyticsTimer.getInstance().trackStart(AnalyticsTimer.SEARCH_TO_LIST);
         Intent intent = new Intent();
         intent.setAction(Intent.ACTION_SEARCH);
         intent.putExtra(ConversationListContext.EXTRA_SEARCH_QUERY, query);
diff --git a/src/com/android/mail/ui/AttachmentTileGrid.java b/src/com/android/mail/ui/AttachmentTileGrid.java
index 59ff704..b5fefcc 100644
--- a/src/com/android/mail/ui/AttachmentTileGrid.java
+++ b/src/com/android/mail/ui/AttachmentTileGrid.java
@@ -31,7 +31,6 @@
 import com.android.mail.photo.MailPhotoViewActivity;
 import com.android.mail.providers.Account;
 import com.android.mail.providers.Attachment;
-import com.android.mail.providers.Message;
 import com.android.mail.ui.AttachmentTile.AttachmentPreview;
 import com.android.mail.ui.AttachmentTile.AttachmentPreviewCache;
 import com.android.mail.utils.ViewUtils;
@@ -54,7 +53,7 @@
     private final HashMap<String, AttachmentPreview> mAttachmentPreviews;
     private FragmentManager mFragmentManager;
     private Account mAccount;
-    private Message mMessage;
+    private ConversationMessage mMessage;
 
     public AttachmentTileGrid(Context context, AttributeSet attrs) {
         super(context, attrs);
diff --git a/src/com/android/mail/ui/ConversationListFragment.java b/src/com/android/mail/ui/ConversationListFragment.java
index ddc0c28..510e870 100644
--- a/src/com/android/mail/ui/ConversationListFragment.java
+++ b/src/com/android/mail/ui/ConversationListFragment.java
@@ -17,6 +17,7 @@
 
 package com.android.mail.ui;
 
+import android.animation.LayoutTransition;
 import android.app.Activity;
 import android.app.ListFragment;
 import android.app.LoaderManager;
@@ -27,7 +28,6 @@
 import android.os.Handler;
 import android.os.Parcelable;
 import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
-import android.text.format.DateUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -97,8 +97,6 @@
      */
     private static int TIMESTAMP_UPDATE_INTERVAL = 0;
 
-    private static long NO_NEW_MESSAGE_DURATION = 1 * DateUtils.SECOND_IN_MILLIS;
-
     private ControllableActivity mActivity;
 
     // Control state.
@@ -153,41 +151,39 @@
     // The number of items in the last known ConversationCursor
     private int mConversationCursorLastCount;
     // State variable to keep track if we just loaded a new list
-    private boolean mJustLoadedNewList;
+    // True if NO DATA has returned, false if we either partially or fully loaded the data
+    private boolean mInitialCursorLoading;
 
     /** Duration, in milliseconds, of the CAB mode (peek icon) animation. */
     private static long sSelectionModeAnimationDuration = -1;
-    /** The time at which we last exited CAB mode. */
-    private long mSelectionModeExitedTimestamp = -1;
 
     // Let's ensure that we are only showing one out of the three views at once
     private void showListView() {
         mListView.setVisibility(View.VISIBLE);
-        mEmptyView.setVisibility(View.GONE);
-        mLoadingView.setVisibility(View.GONE);
+        mEmptyView.setVisibility(View.INVISIBLE);
+        mLoadingView.setVisibility(View.INVISIBLE);
     }
 
     private void showEmptyView() {
         mEmptyView.setupEmptyView(
                 mFolder, mViewContext.searchQuery, mListAdapter.getBidiFormatter());
-        mListView.setEmptyView(mEmptyView);
-        mListView.setVisibility(View.GONE);
+        mListView.setVisibility(View.INVISIBLE);
         mEmptyView.setVisibility(View.VISIBLE);
-        mLoadingView.setVisibility(View.GONE);
+        mLoadingView.setVisibility(View.INVISIBLE);
     }
 
     private void showLoadingView() {
-        mListView.setVisibility(View.GONE);
-        mEmptyView.setVisibility(View.GONE);
+        mListView.setVisibility(View.INVISIBLE);
+        mEmptyView.setVisibility(View.INVISIBLE);
         mLoadingView.setVisibility(View.VISIBLE);
     }
 
     private final Runnable mLoadingViewRunnable = new FragmentRunnable("LoadingRunnable", this) {
         @Override
         public void go() {
-            if (isLoadingAndEmpty()) {
-                showLoadingView();;
+            if (mInitialCursorLoading) {
                 mCanTakeDownLoadingView = false;
+                showLoadingView();
                 mHandler.removeCallbacks(mHideLoadingRunnable);
                 mHandler.postDelayed(mHideLoadingRunnable, MINIMUM_LOADING_DURATION);
             }
@@ -199,12 +195,14 @@
         @Override
         public void go() {
             mCanTakeDownLoadingView = true;
-            if (!isLoadingAndEmpty()) {
+            if (!mInitialCursorLoading) {
                 hideLoadingViewAndShowContents();
             }
         }
     };
 
+    // Keep track of if we are waiting for the loading view. This variable is also used to check
+    // if the cursor corresponding to the current folder loaded (either partially or completely).
     private boolean mLoadingViewPending;
     private boolean mCanTakeDownLoadingView;
 
@@ -493,6 +491,12 @@
         mListView.setListItemSwipedListener(this);
         mListView.setSwipeListener(this);
 
+        // enable animateOnLayout (equivalent of setLayoutTransition) only for >=JB (b/14302062)
+        if (Utils.isRunningJellybeanOrLater()) {
+            ((ViewGroup) rootView.findViewById(R.id.conversation_list_parent_frame))
+                    .setLayoutTransition(new LayoutTransition());
+        }
+
         // By default let's show the list view
         showListView();
 
@@ -723,8 +727,7 @@
      * must be called on the UI thread.
      */
     private void showList() {
-        mJustLoadedNewList = true;
-        mListView.setEmptyView(null);
+        mInitialCursorLoading = true;
         onFolderUpdated(mActivity.getFolderController().getFolder());
         onConversationListStatusUpdated();
 
@@ -860,6 +863,17 @@
     }
 
     public void onFolderUpdated(Folder folder) {
+        if (mInitialCursorLoading) {
+            // Wait a bit before showing either the empty or loading view. If the messages are
+            // actually local, it's disorienting to see this appear on every folder transition.
+            // If they aren't, then it will likely take more than 200 milliseconds to load, and
+            // then we'll see the loading view.
+            if (!mLoadingViewPending) {
+                mHandler.postDelayed(mLoadingViewRunnable, LOADING_DELAY_MS);
+                mLoadingViewPending = true;
+            }
+        }
+
         mFolder = folder;
         setSwipeAction();
 
@@ -882,39 +896,16 @@
         ConversationItemViewModel.onFolderUpdated(mFolder);
     }
 
-    private boolean isLoadingAndEmpty() {
-        final ConversationCursor cursor = getConversationListCursor();
-        if (cursor == null) {
-            return true;
-        } else {
-            final Bundle extras = cursor.getExtras();
-            final int cursorStatus = extras.getInt(UIProvider.CursorExtraKeys.EXTRA_STATUS);
-            return(UIProvider.CursorStatus.isWaitingForResults(cursorStatus) &&
-                    cursor.getCount() == 0);
-        }
-    }
     /**
      * Updates the footer visibility and updates the conversation cursor
      */
     public void onConversationListStatusUpdated() {
-        if (isLoadingAndEmpty()) {
-            // Wait a bit before showing either the empty or loading view. If the messages are
-            // actually local, it's disorienting to see this appear on every folder transition.
-            // If they aren't, then it will likely take more than 200 milliseconds to load, and
-            // then we'll see the loading view.
-            if (!mLoadingViewPending) {
-                mHandler.postDelayed(mLoadingViewRunnable, LOADING_DELAY_MS);
-                mLoadingViewPending = true;
-            }
-
-        } else {
-            if (mCanTakeDownLoadingView) {
-                hideLoadingViewAndShowContents();
-            }
-        }
-
         // Also change the cursor here.
         onCursorUpdated();
+
+        if (!mInitialCursorLoading && mCanTakeDownLoadingView) {
+            hideLoadingViewAndShowContents();
+        }
     }
 
     private void hideLoadingViewAndShowContents() {
@@ -949,9 +940,6 @@
                 && (cursorStatus == UIProvider.CursorStatus.LOADED
                 || cursorStatus == UIProvider.CursorStatus.COMPLETE) || folderCount > 0) {
             updateSearchResultHeader(folderCount);
-            if (folderCount == 0) {
-                showEmptyView();
-            }
         }
     }
 
@@ -1028,14 +1016,16 @@
         if (mConversationCursorHash == newCursorHash && mConversationCursorHash != 0) {
             mListAdapter.notifyDataSetChanged();
         }
-        if (newCursor != null) {
-            updateAnalyticsData(newCursor);
-        }
         mConversationCursorHash = newCursorHash;
 
-        if (newCursor != null && newCursor.getCount() > 0) {
-            newCursor.markContentsSeen();
-            restoreLastScrolledPosition();
+        updateAnalyticsData(newCursor);
+        if (newCursor != null) {
+            final int newCursorCount = newCursor.getCount();
+            updateSearchResultHeader(newCursorCount);
+            if (newCursorCount > 0) {
+                newCursor.markContentsSeen();
+                restoreLastScrolledPosition();
+            }
         }
 
         // If a current conversation is available, and none is selected in the list, then ask
@@ -1096,7 +1086,6 @@
 
         @Override
         public void onSetEmpty() {
-            mSelectionModeExitedTimestamp = System.currentTimeMillis();
             mSwipeRefreshWidget.setEnabled(true);
         }
 
@@ -1144,21 +1133,40 @@
     }
 
     /**
-     * Extracted function that handles Analytics state and logging updates whenever a new non-null
-     * cursor is set as the new cursor
-     * @param newCursor
+     * Extracted function that handles Analytics state and logging updates for each new cursor
+     * @param newCursor the new cursor pointer
      */
     private void updateAnalyticsData(ConversationCursor newCursor) {
-        Bundle extras = (newCursor.getExtras() != null) ? newCursor.getExtras() : Bundle.EMPTY;
-        int cursorStatus = extras.getInt(UIProvider.CursorExtraKeys.EXTRA_STATUS);
-        // Check if the cursor is ready for display
-        if (!UIProvider.CursorStatus.isWaitingForResults(cursorStatus)) {
-            // If the count is 0, then we check which log is applicable
-            if (newCursor.getCount() == 0) {
-                if (mJustLoadedNewList) {
-                    Analytics.getInstance().sendEvent("empty_state", "post_label_change",
-                            mFolder.getTypeDescription(), 0);
-                } else if (mConversationCursorLastCount > 0) {
+        if (newCursor != null) {
+            // Check if the initial data returned yet
+            if (mInitialCursorLoading) {
+                // This marks the very first time the cursor with the data the user sees returned.
+                // We either have a cursor in LOADING state with cursor's count > 0, OR the cursor
+                // completed loading.
+                // Use this point to log the appropriate timing information that depends on when
+                // the conversation list view finishes loading
+                final int cursorStatus = newCursor.getExtras().getInt(
+                        UIProvider.CursorExtraKeys.EXTRA_STATUS);
+                if (newCursor.getCount() > 0 ||
+                        !UIProvider.CursorStatus.isWaitingForResults(cursorStatus)) {
+                    if (newCursor.getCount() == 0) {
+                        Analytics.getInstance().sendEvent("empty_state", "post_label_change",
+                                mFolder.getTypeDescription(), 0);
+                    }
+                    AnalyticsTimer.getInstance().logDuration(AnalyticsTimer.COLD_START_LAUNCHER,
+                            true /* isDestructive */, "cold_start_to_list", "from_launcher", null);
+                    // Don't need null checks because the activity, controller, and folder cannot
+                    // be null in this case
+                    if (mActivity.getFolderController().getFolder().isSearch()) {
+                        AnalyticsTimer.getInstance().logDuration(AnalyticsTimer.SEARCH_TO_LIST,
+                                true /* isDestructive */, "search_to_list", null, null);
+                    }
+
+                    mInitialCursorLoading = false;
+                }
+            } else {
+                // Log the appropriate events that happen after the initial cursor is loaded
+                if (newCursor.getCount() == 0 && mConversationCursorLastCount > 0) {
                     Analytics.getInstance().sendEvent("empty_state", "post_delete",
                             mFolder.getTypeDescription(), 0);
                 }
@@ -1168,7 +1176,8 @@
             // cursor loads will occur with size of 0. Thus we don't want to emit any false
             // positive post_delete events.
             mConversationCursorLastCount = newCursor.getCount();
-            mJustLoadedNewList = false;
+        } else {
+            mConversationCursorLastCount = 0;
         }
     }
 }
diff --git a/src/com/android/mail/ui/ConversationViewFragment.java b/src/com/android/mail/ui/ConversationViewFragment.java
index 74805d5..bd027f6 100644
--- a/src/com/android/mail/ui/ConversationViewFragment.java
+++ b/src/com/android/mail/ui/ConversationViewFragment.java
@@ -451,7 +451,10 @@
     public void onDestroyView() {
         super.onDestroyView();
         mConversationContainer.setOverlayAdapter(null);
-        AttachmentActionHandler.unregisterDismissListeners(mConversation.uri);
+        // AdViewFragment has no conversation and will crash.
+        if (mConversation != null) {
+            AttachmentActionHandler.unregisterDismissListeners(mConversation.uri);
+        }
         mAdapter = null;
         resetLoadWaiting(); // be sure to unregister any active load observer
         mViewsCreated = false;
@@ -1038,6 +1041,11 @@
         return (domId == null) ? null : mMessageTransforms.get(domId);
     }
 
+    @Override
+    public boolean isSecure() {
+        return false;
+    }
+
     // END message header callbacks
 
     @Override
@@ -1125,7 +1133,7 @@
     }
 
     @Override
-    public Message getMessageForClickedUrl(String url) {
+    public ConversationMessage getMessageForClickedUrl(String url) {
         final String domMessageId = mUrlToMessageIdMap.get(url);
         if (domMessageId == null) {
             return null;
diff --git a/src/com/android/mail/ui/MailActivity.java b/src/com/android/mail/ui/MailActivity.java
index 8234da2..6f33b7d 100644
--- a/src/com/android/mail/ui/MailActivity.java
+++ b/src/com/android/mail/ui/MailActivity.java
@@ -33,6 +33,7 @@
 import android.view.MotionEvent;
 import android.view.accessibility.AccessibilityManager;
 
+import com.android.mail.analytics.AnalyticsTimer;
 import com.android.mail.compose.ComposeActivity;
 import com.android.mail.providers.Folder;
 import com.android.mail.utils.StorageLowState;
@@ -137,6 +138,12 @@
     @Override
     public void onCreate(Bundle savedState) {
         super.onCreate(savedState);
+        // Log the start time if this is launched from the launcher with no saved states
+        Intent i = getIntent();
+        if (i != null && i.getCategories() != null &&
+                i.getCategories().contains(Intent.CATEGORY_LAUNCHER)) {
+            AnalyticsTimer.getInstance().trackStart(AnalyticsTimer.COLD_START_LAUNCHER);
+        }
 
         mViewMode = new ViewMode();
         final boolean tabletUi = Utils.useTabletUI(this.getResources());
diff --git a/src/com/android/mail/ui/SecureConversationViewController.java b/src/com/android/mail/ui/SecureConversationViewController.java
index ac0aac1..1fed820 100644
--- a/src/com/android/mail/ui/SecureConversationViewController.java
+++ b/src/com/android/mail/ui/SecureConversationViewController.java
@@ -22,7 +22,6 @@
 import android.content.res.Resources;
 import android.graphics.Rect;
 import android.os.Bundle;
-import android.support.v4.text.BidiFormatter;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -172,7 +171,9 @@
     }
 
     public void onDestroyView() {
-        AttachmentActionHandler.unregisterDismissListeners(mMessage.conversationUri);
+        if (mMessage != null && mMessage.getConversation() != null) {
+            AttachmentActionHandler.unregisterDismissListeners(mMessage.getConversation().uri);
+        }
     }
 
     @Override
@@ -292,6 +293,11 @@
     }
 
     @Override
+    public boolean isSecure() {
+        return true;
+    }
+
+    @Override
     public FragmentManager getFragmentManager() {
         return mCallbacks.getFragment().getFragmentManager();
     }
