Merge "Merge Android10 QPR1 into AOSP master"
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 80fde81..55a8b3d 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -19,17 +19,17 @@
     <string name="app_label" msgid="3658948994665187911">"Deskargen kudeatzailea"</string>
     <string name="storage_description" msgid="7982444311558023664">"Deskargak"</string>
     <string name="permlab_downloadManager" msgid="7779544811202855500">"Atzitu deskargen kudeatzailea."</string>
-    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Deskargen kudeatzailea atzitzea eta fitxategiak deskargatzeko hori erabiltzeko baimena ematen die aplikazioei. Aplikazio gaiztoek deskargak eteteko eta informazio pribatua atzitzeko erabil dezakete hori."</string>
+    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Deskargen kudeatzailea atzitzea eta fitxategiak deskargatzeko hori erabiltzea baimentzen die aplikazioei. Aplikazio gaiztoek deskargak eteteko eta informazio pribatua atzitzeko erabil dezakete hori."</string>
     <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Deskargen kudeatzailearen eginbide aurreratuak."</string>
-    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Deskargen kudeatzailearen eginbide aurreratuak atzitzeko baimena ematen die aplikazioei. Aplikazio gaiztoek deskargak eteteko eta informazio pribatua atzitzeko erabil dezakete hori."</string>
+    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Deskargen kudeatzailearen eginbide aurreratuak atzitzea baimentzen die aplikazioei. Aplikazio gaiztoek deskargak eteteko eta informazio pribatua atzitzeko erabil dezakete hori."</string>
     <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Bidali deskargen jakinarazpenak."</string>
-    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Osatutako deskargei buruzko jakinarazpenak bidaltzeko baimena ematen die aplikazioei. Aplikazio gaiztoek fitxategiak deskargatzen dituzten beste aplikazioak nahasteko erabil dezakete hori."</string>
+    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Osatutako deskargei buruzko jakinarazpenak bidaltzea baimentzen die aplikazioei. Aplikazio gaiztoek fitxategiak deskargatzen dituzten beste aplikazioak nahasteko erabil dezakete hori."</string>
     <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Erreserbatu memoria deskarga-cachean"</string>
-    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Fitxategiak deskarga-cachera deskargatzeko baimena ematen die aplikazioei (ezin izango dira automatikoki ezabatu deskargen kudeatzaileak tokia behar duenean)."</string>
+    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Fitxategiak deskarga-cachera deskargatzea baimentzen die aplikazioei (ezin izango dira automatikoki ezabatu deskargen kudeatzaileak tokia behar duenean)."</string>
     <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"Deskargatu fitxategiak jakinarazi gabe"</string>
-    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Fitxategiak deskargen kudeatzailearen bidez baina erabiltzaileari jakinarazi gabe deskargatzeko baimena ematen die aplikazioei."</string>
+    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Fitxategiak deskargen kudeatzailearen bidez baina erabiltzaileari jakinarazi gabe deskargatzea baimentzen die aplikazioei."</string>
     <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Atzitu sistemaren deskarga guztiak"</string>
-    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Aplikazioek sisteman hasitako deskarga guztiak ikusteko eta aldatzeko baimena ematen die aplikazioei."</string>
+    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Aplikazioek sisteman hasitako deskarga guztiak ikustea eta aldatzea baimentzen die aplikazioei."</string>
     <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Izengabea&gt;"</string>
     <string name="notification_download_complete" msgid="5443563299253103667">"Osatu da deskarga."</string>
     <string name="notification_download_failed" msgid="8612136111952014978">"Ezin izan da deskargatu."</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 24eb32b..9088b32 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -18,20 +18,20 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="3658948994665187911">"डाउनलोड प्रबंधक"</string>
     <string name="storage_description" msgid="7982444311558023664">"डाउनलोड"</string>
-    <string name="permlab_downloadManager" msgid="7779544811202855500">"डाउनलोड मैनेजर में ऐक्सेस पाएं."</string>
+    <string name="permlab_downloadManager" msgid="7779544811202855500">"डाउनलोड प्रबंधक में पहुंच प्राप्त करें."</string>
     <string name="permdesc_downloadManager" msgid="4237406545998908947">"ऐप को डाउनलोड मैनेजर तक पहुंचने देता है और फ़ाइलें डाउनलोड करने के लिए इसका इस्तेमाल करने देता है. धोखा देने वाले ऐप इसका इस्तेमाल डाउनलोड को रोकने और निजी जानकारी तक पहुंचने के लिए कर सकते हैं."</string>
     <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"बेहतर डाउनलोड प्रबंधक फ़क्शन."</string>
-    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"ऐप्लिकेशन को डाउनलोड मैनेजर के बेहतर फ़ंक्शन के इस्तेमाल की मंज़ूरी देता है. धोखा देने वाले ऐप्लिकेशन इसका इस्तेमाल डाउनलोड को रोकने और निजी जानकारी तक पहुंचने के लिए कर सकते हैं."</string>
+    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"एेप्लिकेशन को डाउनलोड मैनेजर के बेहतर फ़ंक्शन के इस्तेमाल की मंज़ूरी देता है. धोखा देने वाले एेप्लिकेशन इसका इस्तेमाल डाउनलोड को रोकने और निजी जानकारी तक पहुंचने के लिए कर सकते हैं."</string>
     <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"डाउनलोड सूचनाएं भेजें."</string>
     <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"पूरे किए गए डाउनलोड के बारे में ऐप को सूचना भेजने देता है. धोखा देने वाले ऐप इसका इस्तेमाल फ़ाइलों को डाउनलोड करने वाले दूसरे ऐप को भ्रम में डालने के लिए कर सकते हैं."</string>
     <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"डाउनलोड कैश मेमोरी में जगह बचाकर रखें"</string>
     <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"ऐप को डाउनलोड कैश मेमोरी में फ़ाइलें डाउनलोड करने देता है. डाउनलोड मैनेजर को ज़्यादा जगह की ज़रुरत होने पर इन फ़ाइलों को हटाया नहीं जा सकता, ."</string>
     <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"बिना किसी सूचना के फ़ाइलें डाउनलोड करने दें"</string>
     <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"उपयोगकर्ता को कोई भी सूचना दिखाए बिना ऐप को डाउनलोड मैनेजर की मदद से फ़ाइलें डाउनलोड करने देता है."</string>
-    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"सभी सिस्‍टम डाउनलोड में ऐक्सेस पाएं"</string>
+    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"सभी सिस्‍टम डाउनलोड में पहुंच प्राप्त करें"</string>
     <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"ऐप्स  को सिस्टम पर किसी भी ऐप्स  द्वारा शुरू किए गए सभी डाउनलोड देखने और संशोधित करने देता है."</string>
     <string name="download_unknown_title" msgid="7015124071247271585">"&lt;शीर्षक-रहित&gt;"</string>
-    <string name="notification_download_complete" msgid="5443563299253103667">"डाउनलोड पूरा हुआ."</string>
+    <string name="notification_download_complete" msgid="5443563299253103667">"डाउनलोड पूर्ण."</string>
     <string name="notification_download_failed" msgid="8612136111952014978">"डाउनलोड विफल."</string>
     <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"डाउनलोड आकार के लिए वाई-फ़ाई  आवश्‍यक."</string>
     <string name="notification_paused_in_background" msgid="4328508073283591772">"पृष्ठभूमि में रोका गया."</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index b3af03b..ba6f2f0 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -39,7 +39,7 @@
     <string name="wifi_required_body" msgid="3067694630143784449">"Morate upotrijebiti Wi-Fi da biste dovršili ovo preuzimanje veličine <xliff:g id="SIZE">%1$s </xliff:g>. \n\nDodirnite tekst <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> da biste pokrenuli preuzimanje sljedeći put kada se povežete s Wi-Fi mrežom."</string>
     <string name="wifi_recommended_title" msgid="7441589306734687400">"Staviti na čekanje za kasnije preuzimanje?"</string>
     <string name="wifi_recommended_body" msgid="1314735166699936073">"Pokretanje ovog preuzimanja od <xliff:g id="SIZE">%1$s </xliff:g> može skratiti vijek baterije i/ili uzrokovati pretjeranu upotrebu podatkovne veze i dodatne troškove.\n\n Dodirnite <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> da biste preuzeli pri sljedećem spajanju s Wi-Fi mrežom."</string>
-    <string name="button_queue_for_wifi" msgid="422576726189179221">"Redoslijed"</string>
+    <string name="button_queue_for_wifi" msgid="422576726189179221">"Red čekanja"</string>
     <string name="button_cancel_download" msgid="2430166148737975604">"Odustani"</string>
     <string name="button_start_now" msgid="792123674007840864">"Započni sad"</string>
     <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index e4c75df..ab41db9 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -19,29 +19,29 @@
     <string name="app_label" msgid="3658948994665187911">"מנהל ההורדות"</string>
     <string name="storage_description" msgid="7982444311558023664">"הורדות"</string>
     <string name="permlab_downloadManager" msgid="7779544811202855500">"גישה למנהל ההורדות."</string>
-    <string name="permdesc_downloadManager" msgid="4237406545998908947">"האפליקציה תוכל לגשת למנהל ההורדות ולהשתמש בו לצורך הורדת קבצים. אפליקציות זדוניות עלולות לנצל אפשרות זו כדי לשבש הורדות ולגשת למידע פרטי."</string>
+    <string name="permdesc_downloadManager" msgid="4237406545998908947">"מאפשר לאפליקציה לגשת למנהל ההורדות ולהשתמש בו לצורך הורדת קבצים. אפליקציות זדוניות עלולות לנצל אפשרות זו כדי לשבש הורדות ולגשת למידע פרטי."</string>
     <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"פונקציות מתקדמות של מנהל ההורדות."</string>
-    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"האפליקציה תוכל לגשת לפונקציות המתקדמות של מנהל ההורדות. אפליקציות זדוניות עלולות לנצל אפשרות זו כדי לשבש הורדות ולגשת למידע פרטי."</string>
-    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"שליחת התראות על הורדות."</string>
-    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"האפליקציה תוכל לשלוח הודעות לגבי הורדות שהסתיימו. אפליקציות זדוניות עלולות לנצל אפשרות זו כדי להטעות אפליקציות אחרות המורידות קבצים."</string>
-    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"שמירת מקום במטמון ההורדות"</string>
-    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"האפליקציה תוכל להוריד למטמון ההורדות קבצים שלא ניתן למחוק באופן אוטומטי כשנחוץ שטח נוסף למנהל ההורדות."</string>
+    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"מאפשר לאפליקציה לגשת לפונקציות המתקדמות של מנהל ההורדות. אפליקציות זדוניות עלולות לנצל אפשרות זו כדי לשבש הורדות ולגשת למידע פרטי."</string>
+    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"שלח הודעות על הורדות."</string>
+    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"מאפשר לאפליקציה לשלוח הודעות לגבי הורדות שהסתיימו. אפליקציות זדוניות עלולות לנצל אפשרות זו כדי לבלבל אפליקציות אחרות המורידות קבצים."</string>
+    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"שמור מקום במטמון ההורדות"</string>
+    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"מאפשר לאפליקציה להוריד קבצים למטמון ההורדות שלא ניתן למחוק באופן אוטומטי כאשר דרוש למנהל ההורדות שטח נוסף."</string>
     <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"הורדת קבצים ללא התראה"</string>
-    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"האפליקציה תוכל להוריד קבצים דרך מנהל ההורדות מבלי להציג התראות כלשהן."</string>
-    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"גישה לכל ההורדות במערכת"</string>
-    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"האפליקציה תוכל להציג ולשנות את כל ההורדות שהופעלו על ידי אפליקציה כלשהי במערכת."</string>
+    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"מאפשר לאפליקציה להוריד קבצים דרך מנהל ההורדות מבלי להציג התראות כלשהן בפני המשתמש."</string>
+    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"גישה לכל הורדות המערכת"</string>
+    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"מאפשר לאפליקציה להציג ולשנות את כל ההורדות שהופעלו על ידי אפליקציה כלשהי במערכת."</string>
     <string name="download_unknown_title" msgid="7015124071247271585">"‏&lt;ללא כותרת&gt;"</string>
     <string name="notification_download_complete" msgid="5443563299253103667">"ההורדה הסתיימה."</string>
     <string name="notification_download_failed" msgid="8612136111952014978">"ההורדה נכשלה."</string>
     <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"‏גודל ההורדה מחייב חיבור Wi-Fi"</string>
-    <string name="notification_paused_in_background" msgid="4328508073283591772">"ההורדה הושהתה ברקע."</string>
+    <string name="notification_paused_in_background" msgid="4328508073283591772">"מושהה ברקע."</string>
     <string name="wifi_required_title" msgid="1995971416871498179">"ההורדה גדולה מדי לרשת המפעיל"</string>
-    <string name="wifi_required_body" msgid="3067694630143784449">"‏עליך להשתמש ב-Wi-Fi כדי להשלים את ההורדה שגודלה <xliff:g id="SIZE">%1$s </xliff:g>. \n \n אפשר לגעת ב-<xliff:g id="QUEUE_TEXT">%2$s </xliff:g> כדי להפעיל את ההורדה בפעם הבאה שהמכשיר יהיה מחובר לרשת Wi-Fi."</string>
+    <string name="wifi_required_body" msgid="3067694630143784449">"‏עליך להשתמש ב-Wi-Fi כדי להשלים את ההורדה שגודלה <xliff:g id="SIZE">%1$s </xliff:g>. \n \n גע ב-<xliff:g id="QUEUE_TEXT">%2$s </xliff:g> כדי להפעיל את ההורדה בפעם הבאה שתתחבר לרשת Wi-Fi."</string>
     <string name="wifi_recommended_title" msgid="7441589306734687400">"להוסיף לתור כדי להוריד מאוחר יותר?"</string>
-    <string name="wifi_recommended_body" msgid="1314735166699936073">"‏הפעלת הורדה זו (<xliff:g id="SIZE">%1$s </xliff:g>) עשויה לקצר את חיי הסוללה ו/או לגרום לניצול מופרז של חבילת הגלישה, שהשימוש בה עשוי להיות כרוך בתשלום לספק השירות לנייד.\n\nאפשר לגעת ב-<xliff:g id="QUEUE_TEXT">%2$s</xliff:g> כדי להפעיל את ההורדה הזו בפעם הבאה שהמכשיר יהיה מחובר לרשת Wi-Fi."</string>
-    <string name="button_queue_for_wifi" msgid="422576726189179221">"הוספה לתור"</string>
+    <string name="wifi_recommended_body" msgid="1314735166699936073">"‏הפעלת הורדה זו (<xliff:g id="SIZE">%1$s </xliff:g>) עשויה לקצר את חיי הסוללה שלך ו/או לגרום לניצול מופרז של חיבור הנתונים הנייד שלך, אשר עשוי להיות כרוך בחיוב מצד ספק השירות הנייד שלך, בהתאם לתוכנית הנתונים הרלוונטית.\n\nגע ב-<xliff:g id="QUEUE_TEXT">%2$s</xliff:g> כדי להתחיל בהורדה בפעם הבאה שתתחבר לרשת Wi-Fi."</string>
+    <string name="button_queue_for_wifi" msgid="422576726189179221">"תור"</string>
     <string name="button_cancel_download" msgid="2430166148737975604">"ביטול"</string>
-    <string name="button_start_now" msgid="792123674007840864">"אפשר להתחיל"</string>
+    <string name="button_start_now" msgid="792123674007840864">"התחל כעת"</string>
     <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
       <item quantity="two">מתבצעת הורדה של <xliff:g id="NUMBER">%d</xliff:g> קבצים</item>
       <item quantity="many">מתבצעת הורדה של <xliff:g id="NUMBER">%d</xliff:g> קבצים</item>
@@ -58,7 +58,7 @@
     <string name="download_no_application_title" msgid="7935659741162801699">"לא ניתן לפתוח את הקובץ"</string>
     <string name="root_downloads" msgid="4098414876292351487">"הורדות"</string>
     <string name="download_queued" msgid="3302638231377947451">"בתור"</string>
-    <string name="download_running" msgid="3925050393361158266">"ההורדה מתבצעת"</string>
-    <string name="download_error" msgid="5144180777324573236">"ההורדה נכשלה"</string>
-    <string name="download_running_percent" msgid="4305080769167320204">"ההורדה מתבצעת, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
+    <string name="download_running" msgid="3925050393361158266">"מתבצע"</string>
+    <string name="download_error" msgid="5144180777324573236">"נכשל"</string>
+    <string name="download_running_percent" msgid="4305080769167320204">"מתבצע, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 97ae7e6..efa9ed2 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -16,18 +16,18 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="3658948994665187911">"ダウンロード マネージャー"</string>
+    <string name="app_label" msgid="3658948994665187911">"ダウンロードマネージャー"</string>
     <string name="storage_description" msgid="7982444311558023664">"ダウンロード"</string>
-    <string name="permlab_downloadManager" msgid="7779544811202855500">"ダウンロード マネージャーにアクセスします。"</string>
-    <string name="permdesc_downloadManager" msgid="4237406545998908947">"ダウンロード マネージャーにアクセスし、ダウンロード マネージャーを使用してファイルをダウンロードすることをアプリに許可します。この許可を悪意のあるアプリに利用されると、ダウンロードに深刻な影響が生じたり個人情報にアクセスされたりする恐れがあります。"</string>
-    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"ダウンロード マネージャーの高度な機能です。"</string>
-    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"ダウンロード マネージャーの高度な機能にアクセスすることをアプリに許可します。この許可を悪意のあるアプリに利用されると、ダウンロードに深刻な影響が生じたり個人情報にアクセスされたりする恐れがあります。"</string>
+    <string name="permlab_downloadManager" msgid="7779544811202855500">"ダウンロードマネージャーにアクセスします。"</string>
+    <string name="permdesc_downloadManager" msgid="4237406545998908947">"ダウンロードマネージャーにアクセスし、ダウンロードマネージャーを使用してファイルをダウンロードすることをアプリに許可します。この許可を悪意のあるアプリに利用されると、ダウンロードに深刻な影響が生じたり個人情報にアクセスされたりする恐れがあります。"</string>
+    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"ダウンロードマネージャーの高度な機能です。"</string>
+    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"ダウンロードマネージャーの高度な機能にアクセスすることをアプリに許可します。この許可を悪意のあるアプリに利用されると、ダウンロードに深刻な影響が生じたり個人情報にアクセスされたりする恐れがあります。"</string>
     <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"ダウンロード通知を送信します。"</string>
     <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"ダウンロード完了通知の送信をアプリに許可します。この許可を悪意のあるアプリに利用されると、ファイルをダウンロードする他のアプリの処理が妨害される恐れがあります。"</string>
     <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"ダウンロードキャッシュの領域を予約"</string>
-    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"ダウンロード マネージャーで領域が不足しているときに、自動的に削除できないダウンロードキャッシュへのファイルのダウンロードをアプリに許可します。"</string>
+    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"ダウンロードマネージャーで領域が不足しているときに、自動的に削除できないダウンロードキャッシュへのファイルのダウンロードをアプリに許可します。"</string>
     <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"通知なしでファイルをダウンロードする"</string>
-    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"ユーザーへの通知なしでダウンロード マネージャーを使用してファイルをダウンロードすることをアプリに許可します。"</string>
+    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"ユーザーへの通知なしでダウンロードマネージャーを使用してファイルをダウンロードすることをアプリに許可します。"</string>
     <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"すべてのシステムダウンロードにアクセス"</string>
     <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"システム上の任意のアプリにより開始されたすべてのダウンロードの表示と変更をアプリに許可します。"</string>
     <string name="download_unknown_title" msgid="7015124071247271585">"&lt;無題&gt;"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 81c376e..37d2d5b 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -38,7 +38,7 @@
     <string name="wifi_required_title" msgid="1995971416871498179">"ჩამოტვირთვა ოპერატორის ქსელისთვის ძალიან დიდია"</string>
     <string name="wifi_required_body" msgid="3067694630143784449">"ამ <xliff:g id="SIZE">%1$s </xliff:g> ჩამოტვირთვის განსახორციელებლად უნდა გამოიყენოთ WiFi. \n\nშეეხეთ <xliff:g id="QUEUE_TEXT">%2$s </xliff:g>, რათა დაიწყოთ ეს ჩამოტვირთვა მომავალში, როგორც კი ჩაერთვებით WiFi ქსელში."</string>
     <string name="wifi_recommended_title" msgid="7441589306734687400">"ჩააყენებთ ჩამოტვირთვების რიგში?"</string>
-    <string name="wifi_recommended_body" msgid="1314735166699936073">"ამ <xliff:g id="SIZE">%1$s </xliff:g> ჩამოტვირთვის დაწყება ახლა შეამცირებს თქვენი ბატარეის სიცოცხლეს და/ან გამოიწვევს თქვენი მობილური ინტერნეტის ინტენსიურ გამოყენებას. ეს თავისთავად განაპირობებს თქვენი მობილური ოპერატორისთვის შესაბამისი საფასურის გადახდას თქვენი ინტერნეტ გეგმიდან გამომდინარე. \n\n შეეხეთ <xliff:g id="QUEUE_TEXT">%2$s</xliff:g>, რათა დაიწყოთ ეს ჩამოტვირთვა მომავალში, როგორც კი ჩაერთვებით WiFi ქსელში."</string>
+    <string name="wifi_recommended_body" msgid="1314735166699936073">"ამ <xliff:g id="SIZE">%1$s </xliff:g> ჩამოტვირთვის დაწყება ახლა შეამცირებს თქვენი ელემენტის სიცოცხლეს და/ან გამოიწვევს თქვენი მობილური ინტერნეტის ინტენსიურ გამოყენებას. ეს თავისთავად განაპირობებს თქვენი მობილური ოპერატორისთვის შესაბამისი საფასურის გადახდას თქვენი ინტერნეტ გეგმიდან გამომდინარე. \n\n შეეხეთ <xliff:g id="QUEUE_TEXT">%2$s</xliff:g>, რათა დაიწყოთ ეს ჩამოტვირთვა მომავალში, როგორც კი ჩაერთვებით WiFi ქსელში."</string>
     <string name="button_queue_for_wifi" msgid="422576726189179221">"რიგი"</string>
     <string name="button_cancel_download" msgid="2430166148737975604">"გაუქმება"</string>
     <string name="button_start_now" msgid="792123674007840864">"დაწყება ახლავე"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 4de5365..e7d0731 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="3658948994665187911">"Жүктеп алу менеджері"</string>
+    <string name="app_label" msgid="3658948994665187911">"Жүктеу менеджері"</string>
     <string name="storage_description" msgid="7982444311558023664">"Жүктеп алынғандар"</string>
     <string name="permlab_downloadManager" msgid="7779544811202855500">"Жүктеу менеджеріне кіру."</string>
     <string name="permdesc_downloadManager" msgid="4237406545998908947">"Қолданбаға жүктеу менеджеріне кіріп, оны файлдарды жүктеу үшін қолдану мүмкіндігін береді. Залалды қолданбалар бұны жүктеулерге кедергі жасау үшін және жеке ақпаратқа кіру үшін қолдануы мүмкін."</string>
@@ -52,7 +52,7 @@
     </plurals>
     <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> қалды"</string>
     <string name="download_no_application_title" msgid="7935659741162801699">"Файлды аша алмады"</string>
-    <string name="root_downloads" msgid="4098414876292351487">"Жүктеп алынған"</string>
+    <string name="root_downloads" msgid="4098414876292351487">"Жүктеулер"</string>
     <string name="download_queued" msgid="3302638231377947451">"Кезекте"</string>
     <string name="download_running" msgid="3925050393361158266">"Жүктелуде"</string>
     <string name="download_error" msgid="5144180777324573236">"Сәтсіз"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 9d75129..60dbb10 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="3658948994665187911">"डाउनलोड व्यवस्थापक"</string>
     <string name="storage_description" msgid="7982444311558023664">"डाउनलोड"</string>
-    <string name="permlab_downloadManager" msgid="7779544811202855500">"डाउनलोड व्यवस्थापक अ‍ॅक्सेस करा."</string>
+    <string name="permlab_downloadManager" msgid="7779544811202855500">"डाउनलोड व्यवस्थापक अॅक्सेस करा."</string>
     <string name="permdesc_downloadManager" msgid="4237406545998908947">"अ‍ॅपला डाउनलोड व्‍यवस्‍थापकामध्‍ये प्रवेश करण्‍याची आणि फायली डाउनलोड करण्‍यासाठी त्याचा वापर करण्‍याची अनुमती देते. दुर्भावनापूर्ण अ‍ॅप्‍स याचा डाउनलोड विदारित करण्‍यासाठी आणि खाजगी माहितीमध्‍ये प्रवेश करण्‍यासाठी वापर करू शकतात."</string>
     <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"प्रगत डाऊनलोड व्यवस्थापक कार्ये."</string>
     <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"अ‍ॅपला डाउनलोड व्‍यवस्‍थापकाच्या प्रगत कार्यांमध्‍ये प्रवेश करण्‍याची अनुमती देते. दुर्भावनापूर्ण अ‍ॅप्‍स याचा डाउनलोड विदारित करण्‍यासाठी आणि खाजगी माहितीमध्‍ये प्रवेश करण्‍यासाठी वापर करू शकतात."</string>
@@ -28,7 +28,7 @@
     <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"अ‍ॅपला डाउनलोडवर कॅशेवर, डाउनलोड व्‍यवस्‍थापकास जास्त स्‍थानाची आवश्‍यकता असते तेव्‍हा ज्या स्‍वयंचलितपणे हटविल्‍या जाऊ शकत नाहीत त्या फायली डाउनलोड करण्‍याची अनुमती देते."</string>
     <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"सूचनेशिवाय फायली डाउनलोड करा"</string>
     <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"अ‍ॅपला वापरकर्त्यास कोणतीही सूचना न दर्शविता डाउनलोड व्यवस्‍थापकाद्वारे फायली डाउनलोड करण्‍याची अनुमती देते."</string>
-    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"सर्व सिस्‍टीम डाउनलोड अ‍ॅक्सेस करा"</string>
+    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"सर्व सिस्‍टीम डाउनलोड अॅक्सेस करा"</string>
     <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"अ‍ॅपला सिस्‍टीम वरील कोणत्‍याही अ‍ॅपद्वारे आरंभ केलेले सर्व डाउनलोड पाहण्‍याची आणि सुधारित करण्‍याची अनुमती देते."</string>
     <string name="download_unknown_title" msgid="7015124071247271585">"&lt;अशीर्षकांकित&gt;"</string>
     <string name="notification_download_complete" msgid="5443563299253103667">"डाउनलोड पूर्ण."</string>
@@ -43,12 +43,12 @@
     <string name="button_cancel_download" msgid="2430166148737975604">"रद्द करा"</string>
     <string name="button_start_now" msgid="792123674007840864">"आता सुरू करा"</string>
     <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
+      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g>फाईल डाउनलोड होत आहे</item>
       <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g>फायली डाउनलोड होत आहेत</item>
-      <item quantity="one">1 फाईल डाउनलोड होत आहे</item>
     </plurals>
     <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
+      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> फाईल प्रतीक्षेत आहे</item>
       <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> फायली प्रतीक्षेत आहेत</item>
-      <item quantity="one">1 फाईल प्रतीक्षेत आहे</item>
     </plurals>
     <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> बाकी"</string>
     <string name="download_no_application_title" msgid="7935659741162801699">"फाइल उघडू शकत नाही"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 0c1f995..02b25cd 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -19,9 +19,9 @@
     <string name="app_label" msgid="3658948994665187911">"Downloadbeheer"</string>
     <string name="storage_description" msgid="7982444311558023664">"Downloads"</string>
     <string name="permlab_downloadManager" msgid="7779544811202855500">"Downloadbeheer weergeven."</string>
-    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Hiermee heeft de app toegang tot downloadbeheer en kan de app via downloadbeheer bestanden downloaden. Schadelijke apps kunnen dit gebruiken om downloads te verstoren en toegang te krijgen tot persoonlijke informatie."</string>
+    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Hiermee heeft de app toegang tot downloadbeheer en kan de app via downloadbeheer bestanden downloaden. Schadelijke apps kunnen dit gebruiken om downloads te verstoren en toegang te krijgen tot persoonsgegevens."</string>
     <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Geavanceerde functies van de downloadbeheerder."</string>
-    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Hiermee heeft de app toegang tot de geavanceerde functies van downloadbeheer. Schadelijke apps kunnen dit gebruiken om downloads te verstoren en toegang te krijgen tot persoonlijke informatie."</string>
+    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Hiermee heeft de app toegang tot de geavanceerde functies van downloadbeheer. Schadelijke apps kunnen dit gebruiken om downloads te verstoren en toegang te krijgen tot persoonsgegevens."</string>
     <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Downloadmeldingen verzenden."</string>
     <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Hiermee kan de app meldingen verzenden over voltooide downloads. Schadelijke apps kunnen dit gebruiken om andere apps die bestanden downloaden in verwarring te brengen."</string>
     <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Ruimte in de downloadcache reserveren"</string>
@@ -50,7 +50,7 @@
       <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> bestanden in de wachtrij</item>
       <item quantity="one">1 bestand in de wachtrij</item>
     </plurals>
-    <string name="download_remaining" msgid="3139295890887972718">"Nog <xliff:g id="DURATION">%s</xliff:g>"</string>
+    <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> resterend"</string>
     <string name="download_no_application_title" msgid="7935659741162801699">"Kan bestand niet openen"</string>
     <string name="root_downloads" msgid="4098414876292351487">"Downloads"</string>
     <string name="download_queued" msgid="3302638231377947451">"In wachtrij"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index a3c1e68..8607c46 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -19,17 +19,17 @@
     <string name="app_label" msgid="3658948994665187911">"பதிவிறக்க நிர்வாகி"</string>
     <string name="storage_description" msgid="7982444311558023664">"பதிவிறக்கங்கள்"</string>
     <string name="permlab_downloadManager" msgid="7779544811202855500">"பதிவிறக்க நிர்வாகியை அணுகவும்."</string>
-    <string name="permdesc_downloadManager" msgid="4237406545998908947">"பதிவிறக்க நிர்வாகியை அணுகவும், கோப்புகளைப் பதிவிறக்குவதற்காக அதைப் பயன்படுத்தவும் ஆப்ஸை அனுமதிக்கிறது. பதிவிறக்கங்களைத் தடைசெய்யவும், தனிப்பட்டத் தகவலை அணுகவும் தீங்கிழைக்கும் பயன்பாடுகள் இதைப் பயன்படுத்தலாம்."</string>
+    <string name="permdesc_downloadManager" msgid="4237406545998908947">"பதிவிறக்க நிர்வாகியை அணுகவும், கோப்புகளைப் பதிவிறக்குவதற்காக அதைப் பயன்படுத்தவும் பயன்பாட்டை அனுமதிக்கிறது. பதிவிறக்கங்களைத் தடைசெய்யவும், தனிப்பட்டத் தகவலை அணுகவும் தீங்கிழைக்கும் பயன்பாடுகள் இதைப் பயன்படுத்தலாம்."</string>
     <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"மேம்பட்ட பதிவிறக்க நிர்வாகி செயல்பாடுகள்."</string>
-    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"பதிவிறக்க நிர்வாகியின் மேம்பட்ட செயல்பாடுகளை அணுகுவதற்குப் ஆப்ஸை அனுமதிக்கிறது. பதிவிறக்கங்களைத் தடைசெய்யவும், தனிப்பட்டத் தகவலை அணுகவும் தீங்கிழைக்கும் பயன்பாடுகள் இதைப் பயன்படுத்தலாம்."</string>
+    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"பதிவிறக்க நிர்வாகியின் மேம்பட்ட செயல்பாடுகளை அணுகுவதற்குப் பயன்பாட்டை அனுமதிக்கிறது. பதிவிறக்கங்களைத் தடைசெய்யவும், தனிப்பட்டத் தகவலை அணுகவும் தீங்கிழைக்கும் பயன்பாடுகள் இதைப் பயன்படுத்தலாம்."</string>
     <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"பதிவிறக்க அறிவிப்புகளை அனுப்பவும்."</string>
-    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"முடிந்த பதிவிறக்கங்கள் குறித்த அறிவிப்புகளை அனுப்புவதற்குப் ஆப்ஸை அனுமதிக்கிறது. கோப்புகளைப் பதிவிறக்கும் பிற பயன்பாடுகளைக் குழப்புவதற்கு தீங்கிழைக்கும் பயன்பாடுகள் இதைப் பயன்படுத்தலாம்."</string>
+    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"முடிந்த பதிவிறக்கங்கள் குறித்த அறிவிப்புகளை அனுப்புவதற்குப் பயன்பாட்டை அனுமதிக்கிறது. கோப்புகளைப் பதிவிறக்கும் பிற பயன்பாடுகளைக் குழப்புவதற்கு தீங்கிழைக்கும் பயன்பாடுகள் இதைப் பயன்படுத்தலாம்."</string>
     <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"தற்காலிகச் சேமிப்பில் இடத்தை முன்பதிவு செய்தல்"</string>
-    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"பதிவிறக்க நிர்வாகிக்கு அதிகப்படியான இடம் தேவைப்படும்போது தானாகவே நீக்கப்படாத, தற்காலிகச் சேமிப்பில் கோப்புகளைப் பதிவிறக்க ஆப்ஸை அனுமதிக்கிறது."</string>
+    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"பதிவிறக்க நிர்வாகிக்கு அதிகப்படியான இடம் தேவைப்படும்போது தானாகவே நீக்கப்படாத, தற்காலிகச் சேமிப்பில் கோப்புகளைப் பதிவிறக்க பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"அறிவிப்பு இல்லாமல் கோப்புகளைப் பதிவிறக்குதல்"</string>
-    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"எந்த அறிவிப்பையும் பயனருக்குக் காட்டாமல் பதிவிறக்க நிர்வாகியின் மூலம் கோப்புகளைப் பதிவிறக்கப் ஆப்ஸை அனுமதிக்கிறது."</string>
+    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"எந்த அறிவிப்பையும் பயனருக்குக் காட்டாமல் பதிவிறக்க நிர்வாகியின் மூலம் கோப்புகளைப் பதிவிறக்கப் பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"அமைப்பின் எல்லா பதிவிறக்கங்களையும் அணுகுதல்"</string>
-    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"அமைப்பில் உள்ள எந்தப் பயன்பாட்டினாலும் தொடங்கப்படும் எல்லா பதிவிறக்கங்களையும் கண்டு மாற்றுவதற்குப் ஆப்ஸை அனுமதிக்கிறது."</string>
+    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"அமைப்பில் உள்ள எந்தப் பயன்பாட்டினாலும் தொடங்கப்படும் எல்லா பதிவிறக்கங்களையும் கண்டு மாற்றுவதற்குப் பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="download_unknown_title" msgid="7015124071247271585">"&lt;பெயரிடப்படாதது&gt;"</string>
     <string name="notification_download_complete" msgid="5443563299253103667">"பதிவிறக்கம் முடிந்தது."</string>
     <string name="notification_download_failed" msgid="8612136111952014978">"பதிவிறக்கம் தோல்வி."</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index c54c516..670ae96 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -17,7 +17,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="3658948994665187911">"Trình quản lý Tải xuống"</string>
-    <string name="storage_description" msgid="7982444311558023664">"Tệp đã tải xuống"</string>
+    <string name="storage_description" msgid="7982444311558023664">"Nội dung tải xuống"</string>
     <string name="permlab_downloadManager" msgid="7779544811202855500">"Truy cập trình quản lý tải xuống."</string>
     <string name="permdesc_downloadManager" msgid="4237406545998908947">"Cho phép ứng dụng truy cập trình quản lý tải xuống và sử dụng  trình này để tải xuống tệp. Ứng dụng độc hại có thể lợi dụng điều này để làm gián đoạn quá trình tải xuống và truy cập thông tin riêng tư."</string>
     <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Chức năng nâng cao của trình quản lý tải xuống."</string>
@@ -52,7 +52,7 @@
     </plurals>
     <string name="download_remaining" msgid="3139295890887972718">"Còn lại <xliff:g id="DURATION">%s</xliff:g>"</string>
     <string name="download_no_application_title" msgid="7935659741162801699">"Không thể mở tệp"</string>
-    <string name="root_downloads" msgid="4098414876292351487">"Tệp đã tải xuống"</string>
+    <string name="root_downloads" msgid="4098414876292351487">"Bản tải xuống"</string>
     <string name="download_queued" msgid="3302638231377947451">"Đã xếp hàng"</string>
     <string name="download_running" msgid="3925050393361158266">"Đang thực hiện"</string>
     <string name="download_error" msgid="5144180777324573236">"Không thành công"</string>
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java
index f442712..d61ed84 100644
--- a/src/com/android/providers/downloads/DownloadProvider.java
+++ b/src/com/android/providers/downloads/DownloadProvider.java
@@ -86,7 +86,6 @@
 
 import libcore.io.IoUtils;
 
-import com.google.android.collect.Maps;
 import com.google.common.annotations.VisibleForTesting;
 
 import java.io.File;
@@ -99,7 +98,6 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -159,48 +157,108 @@
             Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI,
     };
 
-    private static final String[] sAppReadableColumnsArray = new String[] {
-        Downloads.Impl._ID,
-        Downloads.Impl.COLUMN_APP_DATA,
-        Downloads.Impl._DATA,
-        Downloads.Impl.COLUMN_MIME_TYPE,
-        Downloads.Impl.COLUMN_VISIBILITY,
-        Downloads.Impl.COLUMN_DESTINATION,
-        Downloads.Impl.COLUMN_CONTROL,
-        Downloads.Impl.COLUMN_STATUS,
-        Downloads.Impl.COLUMN_LAST_MODIFICATION,
-        Downloads.Impl.COLUMN_NOTIFICATION_PACKAGE,
-        Downloads.Impl.COLUMN_NOTIFICATION_CLASS,
-        Downloads.Impl.COLUMN_TOTAL_BYTES,
-        Downloads.Impl.COLUMN_CURRENT_BYTES,
-        Downloads.Impl.COLUMN_TITLE,
-        Downloads.Impl.COLUMN_DESCRIPTION,
-        Downloads.Impl.COLUMN_URI,
-        Downloads.Impl.COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI,
-        Downloads.Impl.COLUMN_FILE_NAME_HINT,
-        Downloads.Impl.COLUMN_MEDIAPROVIDER_URI,
-        Downloads.Impl.COLUMN_DELETED,
-        OpenableColumns.DISPLAY_NAME,
-        OpenableColumns.SIZE,
-    };
-
-    private static final HashSet<String> sAppReadableColumnsSet;
-    private static final HashMap<String, String> sColumnsMap;
-
-    static {
-        sAppReadableColumnsSet = new HashSet<String>();
-        for (int i = 0; i < sAppReadableColumnsArray.length; ++i) {
-            sAppReadableColumnsSet.add(sAppReadableColumnsArray[i]);
+    private static void addMapping(Map<String, String> map, String column) {
+        if (!map.containsKey(column)) {
+            map.put(column, column);
         }
-
-        sColumnsMap = Maps.newHashMap();
-        sColumnsMap.put(OpenableColumns.DISPLAY_NAME,
-                Downloads.Impl.COLUMN_TITLE + " AS " + OpenableColumns.DISPLAY_NAME);
-        sColumnsMap.put(OpenableColumns.SIZE,
-                Downloads.Impl.COLUMN_TOTAL_BYTES + " AS " + OpenableColumns.SIZE);
     }
-    private static final List<String> downloadManagerColumnsList =
-            Arrays.asList(DownloadManager.UNDERLYING_COLUMNS);
+
+    private static void addMapping(Map<String, String> map, String column, String rawColumn) {
+        if (!map.containsKey(column)) {
+            map.put(column, rawColumn + " AS " + column);
+        }
+    }
+
+    private static final Map<String, String> sDownloadsMap = new ArrayMap<>();
+    static {
+        final Map<String, String> map = sDownloadsMap;
+
+        // Columns defined by public API
+        addMapping(map, DownloadManager.COLUMN_ID,
+                Downloads.Impl._ID);
+        addMapping(map, DownloadManager.COLUMN_LOCAL_FILENAME,
+                Downloads.Impl._DATA);
+        addMapping(map, DownloadManager.COLUMN_MEDIAPROVIDER_URI);
+        addMapping(map, DownloadManager.COLUMN_DESTINATION);
+        addMapping(map, DownloadManager.COLUMN_TITLE);
+        addMapping(map, DownloadManager.COLUMN_DESCRIPTION);
+        addMapping(map, DownloadManager.COLUMN_URI);
+        addMapping(map, DownloadManager.COLUMN_STATUS);
+        addMapping(map, DownloadManager.COLUMN_FILE_NAME_HINT);
+        addMapping(map, DownloadManager.COLUMN_MEDIA_TYPE,
+                Downloads.Impl.COLUMN_MIME_TYPE);
+        addMapping(map, DownloadManager.COLUMN_TOTAL_SIZE_BYTES,
+                Downloads.Impl.COLUMN_TOTAL_BYTES);
+        addMapping(map, DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP,
+                Downloads.Impl.COLUMN_LAST_MODIFICATION);
+        addMapping(map, DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR,
+                Downloads.Impl.COLUMN_CURRENT_BYTES);
+        addMapping(map, DownloadManager.COLUMN_ALLOW_WRITE);
+        addMapping(map, DownloadManager.COLUMN_LOCAL_URI,
+                "'placeholder'");
+        addMapping(map, DownloadManager.COLUMN_REASON,
+                "'placeholder'");
+
+        // Columns defined by OpenableColumns
+        addMapping(map, OpenableColumns.DISPLAY_NAME,
+                Downloads.Impl.COLUMN_TITLE);
+        addMapping(map, OpenableColumns.SIZE,
+                Downloads.Impl.COLUMN_TOTAL_BYTES);
+
+        // Allow references to all other columns to support DownloadInfo.Reader;
+        // we're already using SQLiteQueryBuilder to block access to other rows
+        // that don't belong to the calling UID.
+        addMapping(map, Downloads.Impl._ID);
+        addMapping(map, Downloads.Impl._DATA);
+        addMapping(map, Downloads.Impl.COLUMN_ALLOWED_NETWORK_TYPES);
+        addMapping(map, Downloads.Impl.COLUMN_ALLOW_METERED);
+        addMapping(map, Downloads.Impl.COLUMN_ALLOW_ROAMING);
+        addMapping(map, Downloads.Impl.COLUMN_ALLOW_WRITE);
+        addMapping(map, Downloads.Impl.COLUMN_APP_DATA);
+        addMapping(map, Downloads.Impl.COLUMN_BYPASS_RECOMMENDED_SIZE_LIMIT);
+        addMapping(map, Downloads.Impl.COLUMN_CONTROL);
+        addMapping(map, Downloads.Impl.COLUMN_COOKIE_DATA);
+        addMapping(map, Downloads.Impl.COLUMN_CURRENT_BYTES);
+        addMapping(map, Downloads.Impl.COLUMN_DELETED);
+        addMapping(map, Downloads.Impl.COLUMN_DESCRIPTION);
+        addMapping(map, Downloads.Impl.COLUMN_DESTINATION);
+        addMapping(map, Downloads.Impl.COLUMN_ERROR_MSG);
+        addMapping(map, Downloads.Impl.COLUMN_FAILED_CONNECTIONS);
+        addMapping(map, Downloads.Impl.COLUMN_FILE_NAME_HINT);
+        addMapping(map, Downloads.Impl.COLUMN_FLAGS);
+        addMapping(map, Downloads.Impl.COLUMN_IS_PUBLIC_API);
+        addMapping(map, Downloads.Impl.COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI);
+        addMapping(map, Downloads.Impl.COLUMN_LAST_MODIFICATION);
+        addMapping(map, Downloads.Impl.COLUMN_MEDIAPROVIDER_URI);
+        addMapping(map, Downloads.Impl.COLUMN_MEDIA_SCANNED);
+        addMapping(map, Downloads.Impl.COLUMN_MEDIASTORE_URI);
+        addMapping(map, Downloads.Impl.COLUMN_MIME_TYPE);
+        addMapping(map, Downloads.Impl.COLUMN_NO_INTEGRITY);
+        addMapping(map, Downloads.Impl.COLUMN_NOTIFICATION_CLASS);
+        addMapping(map, Downloads.Impl.COLUMN_NOTIFICATION_EXTRAS);
+        addMapping(map, Downloads.Impl.COLUMN_NOTIFICATION_PACKAGE);
+        addMapping(map, Downloads.Impl.COLUMN_OTHER_UID);
+        addMapping(map, Downloads.Impl.COLUMN_REFERER);
+        addMapping(map, Downloads.Impl.COLUMN_STATUS);
+        addMapping(map, Downloads.Impl.COLUMN_TITLE);
+        addMapping(map, Downloads.Impl.COLUMN_TOTAL_BYTES);
+        addMapping(map, Downloads.Impl.COLUMN_URI);
+        addMapping(map, Downloads.Impl.COLUMN_USER_AGENT);
+        addMapping(map, Downloads.Impl.COLUMN_VISIBILITY);
+
+        addMapping(map, Constants.ETAG);
+        addMapping(map, Constants.RETRY_AFTER_X_REDIRECT_COUNT);
+        addMapping(map, Constants.UID);
+    }
+
+    private static final Map<String, String> sHeadersMap = new ArrayMap<>();
+    static {
+        final Map<String, String> map = sHeadersMap;
+        addMapping(map, "id");
+        addMapping(map, Downloads.Impl.RequestHeaders.COLUMN_DOWNLOAD_ID);
+        addMapping(map, Downloads.Impl.RequestHeaders.COLUMN_HEADER);
+        addMapping(map, Downloads.Impl.RequestHeaders.COLUMN_VALUE);
+    }
 
     @VisibleForTesting
     SystemFacade mSystemFacade;
@@ -888,8 +946,6 @@
                             mediaStoreUri.toString());
                     filteredValues.put(COLUMN_MEDIA_SCANNED, MEDIA_SCANNED);
                 }
-                MediaStore.scanFile(getContext(),
-                        new File(filteredValues.getAsString(Downloads.Impl._DATA)));
             } finally {
                 restoreCallingIdentity(token);
             }
@@ -1314,28 +1370,6 @@
             return qb.query(db, projection, null, null, null, null, null);
         }
 
-        if (shouldRestrictVisibility()) {
-            if (projection == null) {
-                projection = sAppReadableColumnsArray.clone();
-            } else {
-                // check the validity of the columns in projection 
-                for (int i = 0; i < projection.length; ++i) {
-                    if (!sAppReadableColumnsSet.contains(projection[i]) &&
-                            !downloadManagerColumnsList.contains(projection[i])) {
-                        throw new IllegalArgumentException(
-                                "column " + projection[i] + " is not allowed in queries");
-                    }
-                }
-            }
-
-            for (int i = 0; i < projection.length; i++) {
-                final String newColumn = sColumnsMap.get(projection[i]);
-                if (newColumn != null) {
-                    projection[i] = newColumn;
-                }
-            }
-        }
-
         if (Constants.LOGVV) {
             logVerboseQueryInfo(projection, selection, selectionArgs, sort, db);
         }
@@ -1428,26 +1462,11 @@
     }
 
     /**
-     * @return true if we should restrict the columns readable by this caller
-     */
-    private boolean shouldRestrictVisibility() {
-        int callingUid = Binder.getCallingUid();
-        return Binder.getCallingPid() != Process.myPid()
-                && callingUid != mSystemUid
-                && callingUid != Process.SHELL_UID
-                && callingUid != Process.ROOT_UID;
-    }
-
-    /**
      * Updates a row in the database
      */
     @Override
     public int update(final Uri uri, final ContentValues values,
             final String where, final String[] whereArgs) {
-        if (shouldRestrictVisibility()) {
-            Helpers.validateSelection(where, sAppReadableColumnsSet);
-        }
-
         final Context context = getContext();
         final ContentResolver resolver = context.getContentResolver();
 
@@ -1571,9 +1590,6 @@
                                 qb.update(db, updateValues, Downloads.Impl._ID + "=?",
                                         new String[] { Long.toString(info.mId) });
                             }
-                            if (Downloads.Impl.isStatusSuccess(info.mStatus)) {
-                                MediaStore.scanFile(getContext(), new File(info.mFileName));
-                            }
                         }
                         if (updateSchedule) {
                             Helpers.scheduleJob(context, info);
@@ -1620,6 +1636,8 @@
      */
     private SQLiteQueryBuilder getQueryBuilder(final Uri uri, int match) {
         final String table;
+        final Map<String, String> projectionMap;
+
         final StringBuilder where = new StringBuilder();
         switch (match) {
             // The "my_downloads" view normally limits the caller to operating
@@ -1630,6 +1648,7 @@
                 // fall-through
             case MY_DOWNLOADS:
                 table = DB_TABLE;
+                projectionMap = sDownloadsMap;
                 if (getContext().checkCallingOrSelfPermission(
                         PERMISSION_ACCESS_ALL) != PackageManager.PERMISSION_GRANTED) {
                     appendWhereExpression(where, Constants.UID + "=" + Binder.getCallingUid()
@@ -1645,6 +1664,7 @@
                 // fall-through
             case ALL_DOWNLOADS:
                 table = DB_TABLE;
+                projectionMap = sDownloadsMap;
                 break;
 
             // Headers are limited to callers holding the ACCESS_ALL_DOWNLOADS
@@ -1652,6 +1672,7 @@
             case MY_DOWNLOADS_ID_HEADERS:
             case ALL_DOWNLOADS_ID_HEADERS:
                 table = Downloads.Impl.RequestHeaders.HEADERS_DB_TABLE;
+                projectionMap = sHeadersMap;
                 appendWhereExpression(where, Downloads.Impl.RequestHeaders.COLUMN_DOWNLOAD_ID + "="
                         + getDownloadIdFromUri(uri));
                 break;
@@ -1661,8 +1682,11 @@
         }
 
         final SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
-        qb.setStrict(true);
         qb.setTables(table);
+        qb.setProjectionMap(projectionMap);
+        qb.setStrict(true);
+        qb.setStrictColumns(true);
+        qb.setStrictGrammar(true);
         qb.appendWhere(where);
         return qb;
     }
@@ -1679,10 +1703,6 @@
      */
     @Override
     public int delete(final Uri uri, final String where, final String[] whereArgs) {
-        if (shouldRestrictVisibility()) {
-            Helpers.validateSelection(where, sAppReadableColumnsSet);
-        }
-
         final Context context = getContext();
         final ContentResolver resolver = context.getContentResolver();
         final JobScheduler scheduler = context.getSystemService(JobScheduler.class);
diff --git a/src/com/android/providers/downloads/Helpers.java b/src/com/android/providers/downloads/Helpers.java
index 52c3e8c..a34097d 100644
--- a/src/com/android/providers/downloads/Helpers.java
+++ b/src/com/android/providers/downloads/Helpers.java
@@ -65,6 +65,7 @@
 import java.util.ArrayList;
 import java.util.Random;
 import java.util.Set;
+import java.util.function.BiConsumer;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -703,265 +704,4 @@
         // For permission related purposes, any package belonging to the given uid should work.
         return packages[0];
     }
-
-    /**
-     * Checks whether this looks like a legitimate selection parameter
-     */
-    public static void validateSelection(String selection, Set<String> allowedColumns) {
-        try {
-            if (selection == null || selection.isEmpty()) {
-                return;
-            }
-            Lexer lexer = new Lexer(selection, allowedColumns);
-            parseExpression(lexer);
-            if (lexer.currentToken() != Lexer.TOKEN_END) {
-                throw new IllegalArgumentException("syntax error");
-            }
-        } catch (RuntimeException ex) {
-            if (Constants.LOGV) {
-                Log.d(Constants.TAG, "invalid selection [" + selection + "] triggered " + ex);
-            } else if (false) {
-                Log.d(Constants.TAG, "invalid selection triggered " + ex);
-            }
-            throw ex;
-        }
-
-    }
-
-    // expression <- ( expression ) | statement [AND_OR ( expression ) | statement] *
-    //             | statement [AND_OR expression]*
-    private static void parseExpression(Lexer lexer) {
-        for (;;) {
-            // ( expression )
-            if (lexer.currentToken() == Lexer.TOKEN_OPEN_PAREN) {
-                lexer.advance();
-                parseExpression(lexer);
-                if (lexer.currentToken() != Lexer.TOKEN_CLOSE_PAREN) {
-                    throw new IllegalArgumentException("syntax error, unmatched parenthese");
-                }
-                lexer.advance();
-            } else {
-                // statement
-                parseStatement(lexer);
-            }
-            if (lexer.currentToken() != Lexer.TOKEN_AND_OR) {
-                break;
-            }
-            lexer.advance();
-        }
-    }
-
-    // statement <- COLUMN COMPARE VALUE
-    //            | COLUMN IS NULL
-    private static void parseStatement(Lexer lexer) {
-        // both possibilities start with COLUMN
-        if (lexer.currentToken() != Lexer.TOKEN_COLUMN) {
-            throw new IllegalArgumentException("syntax error, expected column name");
-        }
-        lexer.advance();
-
-        // statement <- COLUMN COMPARE VALUE
-        if (lexer.currentToken() == Lexer.TOKEN_COMPARE) {
-            lexer.advance();
-            if (lexer.currentToken() != Lexer.TOKEN_VALUE) {
-                throw new IllegalArgumentException("syntax error, expected quoted string");
-            }
-            lexer.advance();
-            return;
-        }
-
-        // statement <- COLUMN IS NULL
-        if (lexer.currentToken() == Lexer.TOKEN_IS) {
-            lexer.advance();
-            if (lexer.currentToken() != Lexer.TOKEN_NULL) {
-                throw new IllegalArgumentException("syntax error, expected NULL");
-            }
-            lexer.advance();
-            return;
-        }
-
-        // didn't get anything good after COLUMN
-        throw new IllegalArgumentException("syntax error after column name");
-    }
-
-    /**
-     * A simple lexer that recognizes the words of our restricted subset of SQL where clauses
-     */
-    private static class Lexer {
-        public static final int TOKEN_START = 0;
-        public static final int TOKEN_OPEN_PAREN = 1;
-        public static final int TOKEN_CLOSE_PAREN = 2;
-        public static final int TOKEN_AND_OR = 3;
-        public static final int TOKEN_COLUMN = 4;
-        public static final int TOKEN_COMPARE = 5;
-        public static final int TOKEN_VALUE = 6;
-        public static final int TOKEN_IS = 7;
-        public static final int TOKEN_NULL = 8;
-        public static final int TOKEN_END = 9;
-
-        private final String mSelection;
-        private final Set<String> mAllowedColumns;
-        private int mOffset = 0;
-        private int mCurrentToken = TOKEN_START;
-        private final char[] mChars;
-
-        public Lexer(String selection, Set<String> allowedColumns) {
-            mSelection = selection;
-            mAllowedColumns = allowedColumns;
-            mChars = new char[mSelection.length()];
-            mSelection.getChars(0, mChars.length, mChars, 0);
-            advance();
-        }
-
-        public int currentToken() {
-            return mCurrentToken;
-        }
-
-        public void advance() {
-            char[] chars = mChars;
-
-            // consume whitespace
-            while (mOffset < chars.length && chars[mOffset] == ' ') {
-                ++mOffset;
-            }
-
-            // end of input
-            if (mOffset == chars.length) {
-                mCurrentToken = TOKEN_END;
-                return;
-            }
-
-            // "("
-            if (chars[mOffset] == '(') {
-                ++mOffset;
-                mCurrentToken = TOKEN_OPEN_PAREN;
-                return;
-            }
-
-            // ")"
-            if (chars[mOffset] == ')') {
-                ++mOffset;
-                mCurrentToken = TOKEN_CLOSE_PAREN;
-                return;
-            }
-
-            // "?"
-            if (chars[mOffset] == '?') {
-                ++mOffset;
-                mCurrentToken = TOKEN_VALUE;
-                return;
-            }
-
-            // "=" and "=="
-            if (chars[mOffset] == '=') {
-                ++mOffset;
-                mCurrentToken = TOKEN_COMPARE;
-                if (mOffset < chars.length && chars[mOffset] == '=') {
-                    ++mOffset;
-                }
-                return;
-            }
-
-            // ">" and ">="
-            if (chars[mOffset] == '>') {
-                ++mOffset;
-                mCurrentToken = TOKEN_COMPARE;
-                if (mOffset < chars.length && chars[mOffset] == '=') {
-                    ++mOffset;
-                }
-                return;
-            }
-
-            // "<", "<=" and "<>"
-            if (chars[mOffset] == '<') {
-                ++mOffset;
-                mCurrentToken = TOKEN_COMPARE;
-                if (mOffset < chars.length && (chars[mOffset] == '=' || chars[mOffset] == '>')) {
-                    ++mOffset;
-                }
-                return;
-            }
-
-            // "!="
-            if (chars[mOffset] == '!') {
-                ++mOffset;
-                mCurrentToken = TOKEN_COMPARE;
-                if (mOffset < chars.length && chars[mOffset] == '=') {
-                    ++mOffset;
-                    return;
-                }
-                throw new IllegalArgumentException("Unexpected character after !");
-            }
-
-            // columns and keywords
-            // first look for anything that looks like an identifier or a keyword
-            //     and then recognize the individual words.
-            // no attempt is made at discarding sequences of underscores with no alphanumeric
-            //     characters, even though it's not clear that they'd be legal column names.
-            if (isIdentifierStart(chars[mOffset])) {
-                int startOffset = mOffset;
-                ++mOffset;
-                while (mOffset < chars.length && isIdentifierChar(chars[mOffset])) {
-                    ++mOffset;
-                }
-                String word = mSelection.substring(startOffset, mOffset);
-                if (mOffset - startOffset <= 4) {
-                    if (word.equals("IS")) {
-                        mCurrentToken = TOKEN_IS;
-                        return;
-                    }
-                    if (word.equals("OR") || word.equals("AND")) {
-                        mCurrentToken = TOKEN_AND_OR;
-                        return;
-                    }
-                    if (word.equals("NULL")) {
-                        mCurrentToken = TOKEN_NULL;
-                        return;
-                    }
-                }
-                if (mAllowedColumns.contains(word)) {
-                    mCurrentToken = TOKEN_COLUMN;
-                    return;
-                }
-                throw new IllegalArgumentException("unrecognized column or keyword: " + word);
-            }
-
-            // quoted strings
-            if (chars[mOffset] == '\'') {
-                ++mOffset;
-                while (mOffset < chars.length) {
-                    if (chars[mOffset] == '\'') {
-                        if (mOffset + 1 < chars.length && chars[mOffset + 1] == '\'') {
-                            ++mOffset;
-                        } else {
-                            break;
-                        }
-                    }
-                    ++mOffset;
-                }
-                if (mOffset == chars.length) {
-                    throw new IllegalArgumentException("unterminated string");
-                }
-                ++mOffset;
-                mCurrentToken = TOKEN_VALUE;
-                return;
-            }
-
-            // anything we don't recognize
-            throw new IllegalArgumentException("illegal character: " + chars[mOffset]);
-        }
-
-        private static final boolean isIdentifierStart(char c) {
-            return c == '_' ||
-                    (c >= 'A' && c <= 'Z') ||
-                    (c >= 'a' && c <= 'z');
-        }
-
-        private static final boolean isIdentifierChar(char c) {
-            return c == '_' ||
-                    (c >= 'A' && c <= 'Z') ||
-                    (c >= 'a' && c <= 'z') ||
-                    (c >= '0' && c <= '9');
-        }
-    }
 }
diff --git a/ui/res/values-da/strings.xml b/ui/res/values-da/strings.xml
index be58a78..9bb52af 100644
--- a/ui/res/values-da/strings.xml
+++ b/ui/res/values-da/strings.xml
@@ -21,7 +21,7 @@
     <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Downloads – sorter efter størrelse"</string>
     <string name="no_downloads" msgid="1029667411186146836">"Ingen downloads."</string>
     <string name="missing_title" msgid="830115697868833773">"&lt;Ukendt&gt;"</string>
-    <string name="button_sort_by_size" msgid="7331549713691146251">"Sortér efter størrelse"</string>
+    <string name="button_sort_by_size" msgid="7331549713691146251">"Sorter efter størrelse"</string>
     <string name="button_sort_by_date" msgid="8800842892684101528">"Sorter efter dato"</string>
     <string name="download_queued" msgid="104973307780629904">"I kø"</string>
     <string name="download_running" msgid="4656462962155580641">"I gang"</string>
diff --git a/ui/res/values-fa/strings.xml b/ui/res/values-fa/strings.xml
index cc1373b..e78f900 100644
--- a/ui/res/values-fa/strings.xml
+++ b/ui/res/values-fa/strings.xml
@@ -21,7 +21,7 @@
     <string name="download_title_sorted_by_size" msgid="1417193166677094813">"بارگیری‌ها - مرتب شده براساس اندازه"</string>
     <string name="no_downloads" msgid="1029667411186146836">"نه بارگیری‌ها."</string>
     <string name="missing_title" msgid="830115697868833773">"‏&lt;ناشناس&gt;"</string>
-    <string name="button_sort_by_size" msgid="7331549713691146251">"مرتب‌سازی براساس اندازه"</string>
+    <string name="button_sort_by_size" msgid="7331549713691146251">"براساس اندازه مرتب شود"</string>
     <string name="button_sort_by_date" msgid="8800842892684101528">"ترتیب براساس تاریخ"</string>
     <string name="download_queued" msgid="104973307780629904">"در صف"</string>
     <string name="download_running" msgid="4656462962155580641">"در حال انجام"</string>
diff --git a/ui/res/values-hi/strings.xml b/ui/res/values-hi/strings.xml
index f5ba36d..04a8d00 100644
--- a/ui/res/values-hi/strings.xml
+++ b/ui/res/values-hi/strings.xml
@@ -17,15 +17,15 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="3070921713463294774">"डाउनलोड"</string>
-    <string name="download_title_sorted_by_date" msgid="5898014492155434221">"डाउनलोड - तारीख द्वारा क्रमित"</string>
+    <string name="download_title_sorted_by_date" msgid="5898014492155434221">"डाउनलोड - दिनांक द्वारा क्रमित"</string>
     <string name="download_title_sorted_by_size" msgid="1417193166677094813">"डाउनलोड - आकार द्वारा क्रमित"</string>
     <string name="no_downloads" msgid="1029667411186146836">"कोई डाउनलोड नहीं."</string>
     <string name="missing_title" msgid="830115697868833773">"&lt;अज्ञात&gt;"</string>
     <string name="button_sort_by_size" msgid="7331549713691146251">"आकार द्वारा क्रमित करें"</string>
-    <string name="button_sort_by_date" msgid="8800842892684101528">"तारीख द्वारा क्रमित करें"</string>
+    <string name="button_sort_by_date" msgid="8800842892684101528">"दिनांक द्वारा क्रमित करें"</string>
     <string name="download_queued" msgid="104973307780629904">"कतार में"</string>
     <string name="download_running" msgid="4656462962155580641">"जारी"</string>
-    <string name="download_success" msgid="7006048006543495236">"पूरा हुआ"</string>
+    <string name="download_success" msgid="7006048006543495236">"पूर्ण"</string>
     <string name="download_error" msgid="8081329546008568251">"विफल"</string>
     <string name="dialog_title_not_available" msgid="5746317632356158515">"डाउनलोड नहीं किया जा सका"</string>
     <string name="dialog_failed_body" msgid="587545111677064427">"क्‍या आप बाद में फ़ाइल डाउनलोड करने का फिर से प्रयास करना चाहते हैं या उसे कतार से हटाना चाहते हैं?"</string>
@@ -42,7 +42,7 @@
     <string name="delete_download" msgid="76629022653866471">"मिटाएं"</string>
     <string name="keep_queued_download" msgid="5144882786014818569">"रखें"</string>
     <string name="cancel_running_download" msgid="5232704030969221112">"रद्द करें"</string>
-    <string name="retry_download" msgid="7617100787922717912">"फिर से प्रयास करें"</string>
+    <string name="retry_download" msgid="7617100787922717912">"पुन: प्रयास करें"</string>
     <string name="start_now_download" msgid="1564642872809509681">"अभी शुरू करें"</string>
     <string name="deselect_all" msgid="6348198946254776764">"कुछ भी ना चुनें"</string>
     <string name="select_all" msgid="634074918366265804">"सभी चुनें"</string>
diff --git a/ui/res/values-hy/strings.xml b/ui/res/values-hy/strings.xml
index 56fcf36..b961942 100644
--- a/ui/res/values-hy/strings.xml
+++ b/ui/res/values-hy/strings.xml
@@ -44,7 +44,7 @@
     <string name="cancel_running_download" msgid="5232704030969221112">"Չեղարկել"</string>
     <string name="retry_download" msgid="7617100787922717912">"Կրկնել"</string>
     <string name="start_now_download" msgid="1564642872809509681">"Սկսել հիմա"</string>
-    <string name="deselect_all" msgid="6348198946254776764">"Չեղարկել ընտրությունը"</string>
+    <string name="deselect_all" msgid="6348198946254776764">"Ապանշել բոլորը"</string>
     <string name="select_all" msgid="634074918366265804">"Ընտրել բոլորը"</string>
     <string name="selected_count" msgid="2101564570019753277">"Ընտրված են <xliff:g id="NUMBER">%1$d</xliff:g>-ը <xliff:g id="TOTAL">%2$d</xliff:g>-ից"</string>
     <string name="download_share_dialog" msgid="3355867339806448955">"Կիսվել"</string>
diff --git a/ui/res/values-iw/strings.xml b/ui/res/values-iw/strings.xml
index 58e2783..d58ee68 100644
--- a/ui/res/values-iw/strings.xml
+++ b/ui/res/values-iw/strings.xml
@@ -17,35 +17,35 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="3070921713463294774">"הורדות"</string>
-    <string name="download_title_sorted_by_date" msgid="5898014492155434221">"הורדות – ממוינות לפי תאריך"</string>
-    <string name="download_title_sorted_by_size" msgid="1417193166677094813">"הורדות – ממוינות לפי גודל"</string>
+    <string name="download_title_sorted_by_date" msgid="5898014492155434221">"הורדות - ממוינות לפי תאריך"</string>
+    <string name="download_title_sorted_by_size" msgid="1417193166677094813">"הורדות - ממוינות לפי גודל"</string>
     <string name="no_downloads" msgid="1029667411186146836">"אין הורדות."</string>
     <string name="missing_title" msgid="830115697868833773">"‏&lt;לא ידוע&gt;"</string>
-    <string name="button_sort_by_size" msgid="7331549713691146251">"מיון לפי גודל"</string>
+    <string name="button_sort_by_size" msgid="7331549713691146251">"מיין לפי גודל"</string>
     <string name="button_sort_by_date" msgid="8800842892684101528">"מיון לפי תאריך"</string>
     <string name="download_queued" msgid="104973307780629904">"בהמתנה בתור"</string>
-    <string name="download_running" msgid="4656462962155580641">"ההורדה מתבצעת"</string>
-    <string name="download_success" msgid="7006048006543495236">"ההורדה הסתיימה"</string>
-    <string name="download_error" msgid="8081329546008568251">"ההורדה נכשלה"</string>
-    <string name="dialog_title_not_available" msgid="5746317632356158515">"לא ניתן היה לבצע את ההורדה"</string>
-    <string name="dialog_failed_body" msgid="587545111677064427">"האם לנסות להוריד את הקובץ מאוחר יותר, או למחוק אותו מהתור?"</string>
-    <string name="dialog_title_queued_body" msgid="6760681913815015219">"הקובץ בהמתנה בתור"</string>
+    <string name="download_running" msgid="4656462962155580641">"מתבצע"</string>
+    <string name="download_success" msgid="7006048006543495236">"בוצע"</string>
+    <string name="download_error" msgid="8081329546008568251">"נכשל"</string>
+    <string name="dialog_title_not_available" msgid="5746317632356158515">"לא ניתן לבצע הורדה"</string>
+    <string name="dialog_failed_body" msgid="587545111677064427">"האם ברצונך לנסות להוריד את הקובץ שוב בשלב מאוחר יותר או למחוק אותו מהתור?"</string>
+    <string name="dialog_title_queued_body" msgid="6760681913815015219">"קובץ בתור"</string>
     <string name="dialog_queued_body" msgid="708552801635572720">"קובץ זה נמצא בתור להורדה עתידית ולכן אינו זמין עדיין."</string>
     <string name="dialog_file_missing_body" msgid="3223012612774276284">"הקובץ שהורדת לא נמצא."</string>
-    <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"לא ניתן לסיים את ההורדה. אין מספיק שטח פנוי באחסון החיצוני."</string>
-    <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"לא ניתן לסיים את ההורדה. אין מספיק שטח אחסון פנימי פנוי המיועד להורדות."</string>
-    <string name="dialog_cannot_resume" msgid="8664509751358983543">"ההורדה הופסקה, ולא ניתן להמשיך לבצע אותה."</string>
+    <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"לא ניתן לסיים את ההורדה. אין די שטח פנוי באחסון החיצוני."</string>
+    <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"לא ניתן לסיים את ההורדה. אין מספיק שטח פנוי באחסון ההורדות הפנימי."</string>
+    <string name="dialog_cannot_resume" msgid="8664509751358983543">"ההורדה הופסקה ולא ניתן להמשיך לבצע אותה."</string>
     <string name="dialog_file_already_exists" msgid="8308563940663449590">"לא ניתן להוריד. קובץ היעד כבר קיים."</string>
     <string name="dialog_media_not_found" msgid="4468088418758018765">"לא ניתן לבצע הורדה. המדיה החיצונית אינה זמינה."</string>
     <string name="download_no_application_title" msgid="7024782176657362251">"לא ניתן לפתוח את הקובץ"</string>
-    <string name="remove_download" msgid="6372920256257247857">"הסרה"</string>
-    <string name="delete_download" msgid="76629022653866471">"מחיקה"</string>
-    <string name="keep_queued_download" msgid="5144882786014818569">"שמירה"</string>
+    <string name="remove_download" msgid="6372920256257247857">"הסר"</string>
+    <string name="delete_download" msgid="76629022653866471">"מחק"</string>
+    <string name="keep_queued_download" msgid="5144882786014818569">"שמור"</string>
     <string name="cancel_running_download" msgid="5232704030969221112">"ביטול"</string>
-    <string name="retry_download" msgid="7617100787922717912">"ניסיון חוזר"</string>
-    <string name="start_now_download" msgid="1564642872809509681">"אפשר להתחיל"</string>
-    <string name="deselect_all" msgid="6348198946254776764">"ביטול הבחירה בכל ההורדות"</string>
-    <string name="select_all" msgid="634074918366265804">"בחירת כול ההורדות"</string>
+    <string name="retry_download" msgid="7617100787922717912">"נסה שוב"</string>
+    <string name="start_now_download" msgid="1564642872809509681">"התחל כעת"</string>
+    <string name="deselect_all" msgid="6348198946254776764">"בטל בחירה של הכל"</string>
+    <string name="select_all" msgid="634074918366265804">"בחר הכל"</string>
     <string name="selected_count" msgid="2101564570019753277">"נבחרו <xliff:g id="NUMBER">%1$d</xliff:g> מתוך <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
-    <string name="download_share_dialog" msgid="3355867339806448955">"שיתוף באמצעות"</string>
+    <string name="download_share_dialog" msgid="3355867339806448955">"שתף באמצעות"</string>
 </resources>
diff --git a/ui/res/values-kk/strings.xml b/ui/res/values-kk/strings.xml
index e410ed6..1b49bf7 100644
--- a/ui/res/values-kk/strings.xml
+++ b/ui/res/values-kk/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="3070921713463294774">"Жүктеп алынған"</string>
+    <string name="app_label" msgid="3070921713463294774">"Жүктеулер"</string>
     <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Жүктеулер - Мерзім бойынша сұрыпталған"</string>
     <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Жүктеулер - Өлшем бойынша сұрыпталған"</string>
     <string name="no_downloads" msgid="1029667411186146836">"Жүктеулер жоқ."</string>
diff --git a/ui/res/values-ky/strings.xml b/ui/res/values-ky/strings.xml
index 701149a..7b153c6 100644
--- a/ui/res/values-ky/strings.xml
+++ b/ui/res/values-ky/strings.xml
@@ -45,7 +45,7 @@
     <string name="retry_download" msgid="7617100787922717912">"Кайра аракеттенүү"</string>
     <string name="start_now_download" msgid="1564642872809509681">"Азыр баштоо"</string>
     <string name="deselect_all" msgid="6348198946254776764">"Баарын бошотуу"</string>
-    <string name="select_all" msgid="634074918366265804">"Баарын тандоо"</string>
+    <string name="select_all" msgid="634074918366265804">"Бардыгын тандоо"</string>
     <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g> ичинен <xliff:g id="NUMBER">%1$d</xliff:g> тандалды"</string>
     <string name="download_share_dialog" msgid="3355867339806448955">"Бул аркылуу бөлүшүү:"</string>
 </resources>
diff --git a/ui/res/values-my/strings.xml b/ui/res/values-my/strings.xml
index af465d0..7ed8931 100644
--- a/ui/res/values-my/strings.xml
+++ b/ui/res/values-my/strings.xml
@@ -20,7 +20,7 @@
     <string name="download_title_sorted_by_date" msgid="5898014492155434221">"ဒေါင်းလုဒ်များ -နေ့စွဲအလိုက် စီထားသည်"</string>
     <string name="download_title_sorted_by_size" msgid="1417193166677094813">"ဒေါင်းလုဒ်များ -အရွယ်အစားအလိုက် စီထားသည်"</string>
     <string name="no_downloads" msgid="1029667411186146836">"ဒေါင်းလုပ်မရှိပါ"</string>
-    <string name="missing_title" msgid="830115697868833773">"မသိ"</string>
+    <string name="missing_title" msgid="830115697868833773">"မသိပါ"</string>
     <string name="button_sort_by_size" msgid="7331549713691146251">"အရွယ်အစားအလိုက် စီရန်"</string>
     <string name="button_sort_by_date" msgid="8800842892684101528">"နေ့စွဲအလိုက် စီရန်"</string>
     <string name="download_queued" msgid="104973307780629904">"တန်းစီထားပြီး"</string>
diff --git a/ui/res/values-nb/strings.xml b/ui/res/values-nb/strings.xml
index acd92b3..143fa76 100644
--- a/ui/res/values-nb/strings.xml
+++ b/ui/res/values-nb/strings.xml
@@ -21,7 +21,7 @@
     <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Nedlastinger – etter størrelse"</string>
     <string name="no_downloads" msgid="1029667411186146836">"Ingen nedlastinger."</string>
     <string name="missing_title" msgid="830115697868833773">"&lt;Ukjent&gt;"</string>
-    <string name="button_sort_by_size" msgid="7331549713691146251">"Sortér etter størrelse"</string>
+    <string name="button_sort_by_size" msgid="7331549713691146251">"Sorter etter størrelse"</string>
     <string name="button_sort_by_date" msgid="8800842892684101528">"Sorter etter dato"</string>
     <string name="download_queued" msgid="104973307780629904">"I kø"</string>
     <string name="download_running" msgid="4656462962155580641">"Arbeider"</string>
diff --git a/ui/res/values-or/strings.xml b/ui/res/values-or/strings.xml
index c7a0965..a9e6fdb 100644
--- a/ui/res/values-or/strings.xml
+++ b/ui/res/values-or/strings.xml
@@ -47,5 +47,5 @@
     <string name="deselect_all" msgid="6348198946254776764">"କିଛି ବି ଚୟନ କରନ୍ତୁ ନାହିଁ"</string>
     <string name="select_all" msgid="634074918366265804">"ସବୁ ଚୟନ କରନ୍ତୁ"</string>
     <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g> ମଧ୍ୟରୁ <xliff:g id="NUMBER">%1$d</xliff:g> ଚୟନିତ"</string>
-    <string name="download_share_dialog" msgid="3355867339806448955">"ଏହା ମାଧ୍ୟମରେ ସେୟାର୍‌ କରନ୍ତୁ"</string>
+    <string name="download_share_dialog" msgid="3355867339806448955">"ଏହା ମାଧ୍ୟମରେ ଶେୟାର୍‌ କରନ୍ତୁ"</string>
 </resources>
diff --git a/ui/res/values-te/strings.xml b/ui/res/values-te/strings.xml
index d16805b..737a7c8 100644
--- a/ui/res/values-te/strings.xml
+++ b/ui/res/values-te/strings.xml
@@ -21,7 +21,7 @@
     <string name="download_title_sorted_by_size" msgid="1417193166677094813">"డౌన్‌లోడ్‌లు - పరిమాణం ద్వారా క్రమబద్ధీకరించబడినవి"</string>
     <string name="no_downloads" msgid="1029667411186146836">"డౌన్‌లోడ్‌లు ఏవీ లేవు."</string>
     <string name="missing_title" msgid="830115697868833773">"&lt;తెలియదు&gt;"</string>
-    <string name="button_sort_by_size" msgid="7331549713691146251">"ప‌రిమాణం ద్వారా వ‌ర్గీక‌రించు"</string>
+    <string name="button_sort_by_size" msgid="7331549713691146251">"పరిమాణం ద్వారా క్రమబద్ధీకరించు"</string>
     <string name="button_sort_by_date" msgid="8800842892684101528">"తేదీ ద్వారా క్రమబద్ధీకరించు"</string>
     <string name="download_queued" msgid="104973307780629904">"క్రమవరుసలో ఉంచబడింది"</string>
     <string name="download_running" msgid="4656462962155580641">"ప్రోగ్రెస్‌లో ఉంది"</string>
diff --git a/ui/res/values-tl/strings.xml b/ui/res/values-tl/strings.xml
index da65f48..259b792 100644
--- a/ui/res/values-tl/strings.xml
+++ b/ui/res/values-tl/strings.xml
@@ -21,8 +21,8 @@
     <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Mga download - Inuri-uri ayon sa laki"</string>
     <string name="no_downloads" msgid="1029667411186146836">"Walang mga pag-download."</string>
     <string name="missing_title" msgid="830115697868833773">"&lt;Hindi Kilala&gt;"</string>
-    <string name="button_sort_by_size" msgid="7331549713691146251">"Isaayos ayon sa laki"</string>
-    <string name="button_sort_by_date" msgid="8800842892684101528">"Isaayos ayon sa petsa"</string>
+    <string name="button_sort_by_size" msgid="7331549713691146251">"Uriin ayon sa laki"</string>
+    <string name="button_sort_by_date" msgid="8800842892684101528">"Uriin ayon sa petsa"</string>
     <string name="download_queued" msgid="104973307780629904">"Naka-queue"</string>
     <string name="download_running" msgid="4656462962155580641">"Isinasagawa"</string>
     <string name="download_success" msgid="7006048006543495236">"Kumpleto"</string>
diff --git a/ui/res/values-uz/strings.xml b/ui/res/values-uz/strings.xml
index 7b7438c..b83943a 100644
--- a/ui/res/values-uz/strings.xml
+++ b/ui/res/values-uz/strings.xml
@@ -21,7 +21,7 @@
     <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Yuklanmalar – hajmi bo‘yicha"</string>
     <string name="no_downloads" msgid="1029667411186146836">"Yuklanmalar yo‘q."</string>
     <string name="missing_title" msgid="830115697868833773">"&lt;Noma’lum&gt;"</string>
-    <string name="button_sort_by_size" msgid="7331549713691146251">"Hajmi asosida saralash"</string>
+    <string name="button_sort_by_size" msgid="7331549713691146251">"Hajmi bo‘yicha saralash"</string>
     <string name="button_sort_by_date" msgid="8800842892684101528">"Sanasi bo‘yicha saralash"</string>
     <string name="download_queued" msgid="104973307780629904">"Navbatda"</string>
     <string name="download_running" msgid="4656462962155580641">"Yuk. amalda"</string>
diff --git a/ui/res/values-vi/strings.xml b/ui/res/values-vi/strings.xml
index 287fccd..7759786 100644
--- a/ui/res/values-vi/strings.xml
+++ b/ui/res/values-vi/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="3070921713463294774">"Tệp đã tải xuống"</string>
+    <string name="app_label" msgid="3070921713463294774">"Nội dung tải xuống"</string>
     <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Tải xuống - Sắp xếp theo ngày"</string>
     <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Tải xuống - Sắp xếp theo kích thước"</string>
     <string name="no_downloads" msgid="1029667411186146836">"Không có bản tải xuống nào."</string>