summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk1
-rw-r--r--res/values-as/strings.xml63
-rw-r--r--res/values-bs/strings.xml14
-rw-r--r--res/values-da/strings.xml4
-rw-r--r--res/values-en-rXC/strings.xml80
-rw-r--r--res/values-es/strings.xml2
-rw-r--r--res/values-eu/strings.xml14
-rw-r--r--res/values-fr/strings.xml2
-rw-r--r--res/values-gu/strings.xml2
-rw-r--r--res/values-hi/strings.xml2
-rw-r--r--res/values-hr/strings.xml2
-rw-r--r--res/values-hy/strings.xml2
-rw-r--r--res/values-iw/strings.xml4
-rw-r--r--res/values-kk/strings.xml4
-rw-r--r--res/values-mr/strings.xml4
-rw-r--r--res/values-ne/strings.xml2
-rw-r--r--res/values-nl/strings.xml6
-rw-r--r--res/values-or/strings.xml63
-rw-r--r--res/values-pt-rPT/strings.xml2
-rw-r--r--res/values-ta/strings.xml14
-rw-r--r--res/values-vi/strings.xml2
-rw-r--r--src/com/android/providers/downloads/DownloadJobService.java12
-rw-r--r--src/com/android/providers/downloads/DownloadProvider.java192
-rw-r--r--src/com/android/providers/downloads/DownloadStorageProvider.java32
-rw-r--r--src/com/android/providers/downloads/DownloadThread.java26
-rw-r--r--src/com/android/providers/downloads/Helpers.java275
-rw-r--r--src/com/android/providers/downloads/RealSystemFacade.java58
-rw-r--r--src/com/android/providers/downloads/SystemFacade.java14
-rw-r--r--tests/Android.mk6
-rw-r--r--tests/AndroidTest.xml1
-rw-r--r--tests/permission/Android.mk5
-rw-r--r--tests/public_api_access/Android.mk5
-rw-r--r--tests/src/com/android/providers/downloads/FakeSystemFacade.java26
-rw-r--r--ui/Android.mk2
-rw-r--r--ui/AndroidManifest.xml3
-rw-r--r--ui/CleanSpec.mk47
-rw-r--r--ui/res/values-as/strings.xml51
-rw-r--r--ui/res/values-bs/strings.xml6
-rw-r--r--ui/res/values-ca/strings.xml2
-rw-r--r--ui/res/values-da/strings.xml2
-rw-r--r--ui/res/values-en-rXC/strings.xml64
-rw-r--r--ui/res/values-es/strings.xml2
-rw-r--r--ui/res/values-fa/strings.xml2
-rw-r--r--ui/res/values-hi/strings.xml8
-rw-r--r--ui/res/values-kk/strings.xml4
-rw-r--r--ui/res/values-ky/strings.xml2
-rw-r--r--ui/res/values-mr/strings.xml4
-rw-r--r--ui/res/values-my/strings.xml2
-rw-r--r--ui/res/values-nb/strings.xml2
-rw-r--r--ui/res/values-ne/strings.xml2
-rw-r--r--ui/res/values-or/strings.xml51
-rw-r--r--ui/res/values-te/strings.xml2
-rw-r--r--ui/res/values-tl/strings.xml4
-rw-r--r--ui/res/values-uz/strings.xml2
54 files changed, 877 insertions, 328 deletions
diff --git a/Android.mk b/Android.mk
index 084aea48..8d3c7b4a 100644
--- a/Android.mk
+++ b/Android.mk
@@ -6,6 +6,7 @@ LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := DownloadProvider
+LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_CERTIFICATE := media
LOCAL_PRIVILEGED_MODULE := true
LOCAL_STATIC_JAVA_LIBRARIES := guava
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
new file mode 100644
index 00000000..3f42c2b2
--- /dev/null
+++ b/res/values-as/strings.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="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_downloadCompletedIntent" msgid="945913803765675685">"ডাউনল’ড জাননী প্ৰেৰণ কৰিব পাৰে।"</string>
+ <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"সম্পূৰ্ণ হোৱা ডাউনল\'ডৰ বিষয়ে জাননী প্ৰেৰণ কৰিবলৈ এপটোক অনুমতি দিয়ে। ক্ষতিকাৰক এপসমূহে এই সুবিধাটো ফাইল ডাউনল\'ডকাৰী অইন এপক বিভ্ৰান্ত কৰিবলৈ ব্যৱহাৰ কৰিব পাৰে।"</string>
+ <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"ইউএছবি সঞ্চয়াগাৰত কৰা সকলো ডাউনল’ড চাব পাৰে"</string>
+ <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"এছডি কাৰ্ডত কৰা সকলো ডাউনল’ড চাব পাৰে"</string>
+ <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"এপটোক এছডি কাৰ্ডত কৰা সকলো ডাউনল’ড চাবলৈ অনুমতি দিয়ে, সেইবোৰ যি এপেই ডাউনল’ড নকৰক লাগে।"</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="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">"এই আকাৰৰ ডাউনল\'ডৰ বাবে ৱাই-ফাইৰ প্ৰয়োজন।"</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">"আপুনি এই <xliff:g id="SIZE">%s </xliff:g> আকাৰৰ ডাউনল’ড কৰিবলৈ ৱাই-ফাই ব্যৱহাৰ কৰিবই লাগিব।\n\nআপুনি পিছত ৱাই-ফাইৰ সৈতে সংযুক্ত হ\'লে এই ডাউনল’ডটো আৰম্ভ কৰিবলৈ <xliff:g id="QUEUE_TEXT">%s </xliff:g>ত স্পৰ্শ কৰক।"</string>
+ <string name="wifi_recommended_title" msgid="7441589306734687400">"পিছত ডাউনল’ড কৰিবলৈ লানি পাতি ৰাখিবনে?"</string>
+ <string name="wifi_recommended_body" msgid="1314735166699936073">"এই <xliff:g id="SIZE">%s </xliff:g> আকাৰৰ ডাউনল’ডটো আৰম্ভ কৰিলে বেটাৰিৰ জীৱনকাল হ্ৰাস হ\'ব পাৰে আৰু/বা অত্যধিক ম’বাইল ডেটা ব্যৱহাৰ হ’ব পাৰে, যাৰ ফলত আপোনাৰ ডেটা আঁচনি অনুসৰি মাচুল ভৰিবলগীয়া হ’ব পাৰে।\n\nআপুনি পিছত ৱাই-ফাইৰ সৈতে সংযুক্ত হ’লে এই ডাউনল\'ডটো আৰম্ভ কৰিবলৈ <xliff:g id="QUEUE_TEXT">%s</xliff:g>ত স্পৰ্শ কৰক।"</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>
+ <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>
+ </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>
+ </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="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>
+</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 46f4e2d5..7b524055 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -36,15 +36,15 @@
<string name="download_unknown_title" msgid="7015124071247271585">"&lt;Bez naslova&gt;"</string>
<string name="notification_download_complete" msgid="5443563299253103667">"Preuzimanje završeno."</string>
<string name="notification_download_failed" msgid="8612136111952014978">"Preuzimanje neuspješno."</string>
- <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Veličina preuzimanja zahtjeva Wi-Fi."</string>
+ <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Veličina preuzimanja zahtijeva WiFi."</string>
<string name="notification_paused_in_background" msgid="4328508073283591772">"Pauzirano u pozadini."</string>
<string name="wifi_required_title" msgid="1995971416871498179">"Preuzimanje je preveliko za mrežu operatera"</string>
- <string name="wifi_required_body" msgid="3067694630143784449">"Morate koristiti Wi-Fi kako biste dovršili ovo preuzimanje od <xliff:g id="SIZE">%s </xliff:g>. \n\nDodirnite <xliff:g id="QUEUE_TEXT">%s </xliff:g> kako biste pokrenuli ovo preuzimanje kada se narednog puta povežete na Wi-Fi mrežu."</string>
- <string name="wifi_recommended_title" msgid="7441589306734687400">"Staviti u redoslijed za preuzimanje kasnije?"</string>
- <string name="wifi_recommended_body" msgid="1314735166699936073">"Pokretanje ovog preuzimanja od <xliff:g id="SIZE">%s </xliff:g> sada može skratiti vijek trajanja baterije i/ili dovesti do prekomjernog korištenja mobilne veze za prenos podataka te se može desiti da vam operater naplati troškove ovisno o pretplati za prenos podataka koju imate.\n\n Dodirnite <xliff:g id="QUEUE_TEXT">%s</xliff:g> kako biste pokrenuli ovo preuzimanje kada se narednog puta povežete na Wi-Fi mrežu."</string>
- <string name="button_queue_for_wifi" msgid="422576726189179221">"Redoslijed"</string>
+ <string name="wifi_required_body" msgid="3067694630143784449">"Morate koristiti WiFi kako biste dovršili ovo preuzimanje od <xliff:g id="SIZE">%s </xliff:g>. \n\nDodirnite <xliff:g id="QUEUE_TEXT">%s </xliff:g> kako biste pokrenuli ovo preuzimanje kada se narednog puta povežete na WiFi mrežu."</string>
+ <string name="wifi_recommended_title" msgid="7441589306734687400">"Staviti na čekanje za preuzimanje kasnije?"</string>
+ <string name="wifi_recommended_body" msgid="1314735166699936073">"Pokretanje ovog preuzimanja od <xliff:g id="SIZE">%s </xliff:g> sada može skratiti vijek trajanja baterije i/ili dovesti do prekomjernog korištenja mobilne veze za prenos podataka te se može desiti da vam operater naplati troškove ovisno o pretplati za prenos podataka koju imate.\n\n Dodirnite <xliff:g id="QUEUE_TEXT">%s</xliff:g> kako biste pokrenuli ovo preuzimanje kada se narednog puta povežete na WiFi mrežu."</string>
+ <string name="button_queue_for_wifi" msgid="422576726189179221">"Red čekanja"</string>
<string name="button_cancel_download" msgid="2430166148737975604">"Otkaži"</string>
- <string name="button_start_now" msgid="792123674007840864">"Pokreni sada"</string>
+ <string name="button_start_now" msgid="792123674007840864">"Započni odmah"</string>
<plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
<item quantity="one">Preuzima se <xliff:g id="NUMBER">%d</xliff:g> fajl</item>
<item quantity="few">Preuzimaju se <xliff:g id="NUMBER">%d</xliff:g> fajla</item>
@@ -58,7 +58,7 @@
<string name="download_remaining" msgid="3139295890887972718">"Još <xliff:g id="DURATION">%s</xliff:g>"</string>
<string name="download_no_application_title" msgid="7935659741162801699">"Nije moguće otvoriti datoteku"</string>
<string name="root_downloads" msgid="4098414876292351487">"Preuzimanja"</string>
- <string name="download_queued" msgid="3302638231377947451">"U redoslijedu"</string>
+ <string name="download_queued" msgid="3302638231377947451">"U U redu čekanja"</string>
<string name="download_running" msgid="3925050393361158266">"U toku"</string>
<string name="download_error" msgid="5144180777324573236">"Neuspješno"</string>
<string name="download_running_percent" msgid="4305080769167320204">"U toku, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 3592a988..421a2cf4 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -22,14 +22,14 @@
<string name="permdesc_downloadManager" msgid="4237406545998908947">"Tillader, at appen kan få adgang til downloadadministratoren og til at bruge den til at downloade filer. Ondsindede apps kan bruge dette til at afbryde downloads og få adgang til personlige oplysninger."</string>
<string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Avancerede funktioner for downloadadministrator."</string>
<string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Tillader, at appen kan få adgang til downloadadministrators avancerede funktioner. Ondsindede apps kan bruge dette til at afbryde downloads og få adgang til personlige oplysninger."</string>
- <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Send underretninger om downloads."</string>
+ <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Send notifikationer om downloads."</string>
<string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Tillader, at appen kan sende meddelelser om fuldførte downloads. Ondsindede apps kan bruge dette til at forvirre andre apps, der downloader filer."</string>
<string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Se alle downloads til USB-lagr."</string>
<string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Se alle downloads til SD-kort"</string>
<string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Tillader, at appen kan se alle downloads på SD-kortet, uanset hvilken app der har downloadet dem."</string>
<string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reserver plads i downloadcache"</string>
<string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Tillader, at appen kan downloade filer til downloadcachen, som ikke automatisk kan slettes, når downloadadministratoren har brug for mere plads."</string>
- <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"downloade filer uden underretning"</string>
+ <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"downloade filer uden notifikation"</string>
<string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Tillader, at appen kan downloade filer via downloadadministratoren, uden at brugeren får besked."</string>
<string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Adgang til alle systemdownloads"</string>
<string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Tillader, at appen kan se og ændre alle downloads, der igangsættes af en app i systemet."</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index e8e9c139..904c6290 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -16,48 +16,48 @@
<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">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‎‏‎‎‎‏‎‏‎‎‏‎‎‎‏‏‏‎Download Manager‎‏‎‎‏‎"</string>
- <string name="storage_description" msgid="7982444311558023664">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‏‎‎‏‏‏‏‏‎‎‎‎‎Downloads‎‏‎‎‏‎"</string>
- <string name="permlab_downloadManager" msgid="7779544811202855500">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‎‎‏‎‎‏‏‎‎‎Access download manager.‎‏‎‎‏‎"</string>
- <string name="permdesc_downloadManager" msgid="4237406545998908947">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‎‎‏‏‏‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‎‎‎‎‏‎‎‏‏‎Allows the app to access the download manager and to use it to download files. Malicious apps can use this to disrupt downloads and access private information.‎‏‎‎‏‎"</string>
- <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‎‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‏‏‏‎Advanced download manager functions.‎‏‎‎‏‎"</string>
- <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‎‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‎‎‏‎Allows the app to access the download manager\'s advanced functions. Malicious apps can use this to disrupt downloads and access private information.‎‏‎‎‏‎"</string>
- <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‎‎‏‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‎Send download notifications.‎‏‎‎‏‎"</string>
- <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‎‎‏‏‏‏‎‎‏‎‎‎‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‏‎‏‎Allows the app to send notifications about completed downloads. Malicious apps can use this to confuse other apps that download files.‎‏‎‎‏‎"</string>
- <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎See all downloads to USB storage‎‏‎‎‏‎"</string>
- <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‏‎‎‏‏‏‏‎‎See all downloads to SD card‎‏‎‎‏‎"</string>
- <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎‏‏‏‎‎‏‎‏‏‏‎‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‎‏‎Allows the app to see all downloads to the SD card, regardless of which app downloaded them.‎‏‎‎‏‎"</string>
- <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‎‎‎Reserve space in the download cache‎‏‎‎‏‎"</string>
- <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‎‎‎‏‏‏‎‎‏‏‏‎‏‏‎‎‎‏‏‏‎‏‎‎‏‏‎‎‎‎‏‏‏‎‏‏‎‏‎‎‎Allows the app to download files to the download cache, which can\'t be automatically deleted when the download manager needs more space.‎‏‎‎‏‎"</string>
- <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‏‎‎‎‏‏‎‎‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‏‎‎‎‏‏‏‎‏‏‏‏‎‎download files without notification‎‏‎‎‏‎"</string>
- <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‎‏‎‏‏‏‏‎‎‎‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎Allows the app to download files through the download manager without any notification being shown to the user.‎‏‎‎‏‎"</string>
- <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‎‏‎‎‏‏‎‎‎‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‎‏‎Access all system downloads‎‏‎‎‏‎"</string>
- <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‎‏‎‏‎‏‎‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‏‏‏‎‎‎‎Allows the app to view and modify all downloads initiated by any app on the system.‎‏‎‎‏‎"</string>
- <string name="download_unknown_title" msgid="7015124071247271585">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‎‎‎‏‎&lt;Untitled&gt;‎‏‎‎‏‎"</string>
- <string name="notification_download_complete" msgid="5443563299253103667">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‎‎‏‏‎‎‏‏‎Download complete.‎‏‎‎‏‎"</string>
- <string name="notification_download_failed" msgid="8612136111952014978">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‎‎Download unsuccessful.‎‏‎‎‏‎"</string>
- <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎‏‏‏‎Download size requires Wi-Fi.‎‏‎‎‏‎"</string>
- <string name="notification_paused_in_background" msgid="4328508073283591772">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‎‏‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎Paused in background.‎‏‎‎‏‎"</string>
- <string name="wifi_required_title" msgid="1995971416871498179">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‎‏‏‎‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‏‎‏‎‏‎‏‏‏‎‎‎‏‏‏‎‎‎‎‏‏‎Download too large for operator network‎‏‎‎‏‎"</string>
- <string name="wifi_required_body" msgid="3067694630143784449">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‎‎‎‎‎‏‏‎‏‎‎‎‏‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‏‎You must use Wi-Fi to complete this ‎‏‎‎‏‏‎<xliff:g id="SIZE">%s </xliff:g>‎‏‎‎‏‏‏‎ download. ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Touch ‎‏‎‎‏‏‎<xliff:g id="QUEUE_TEXT">%s </xliff:g>‎‏‎‎‏‏‏‎ to start this download the next time you\'re connected to a Wi-Fi network.‎‏‎‎‏‎"</string>
- <string name="wifi_recommended_title" msgid="7441589306734687400">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎Queue for download later?‎‏‎‎‏‎"</string>
- <string name="wifi_recommended_body" msgid="1314735166699936073">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‎‏‎‏‎‏‏‎‎‎‏‏‎‎‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎‎‏‎‎‏‎Starting this ‎‏‎‎‏‏‎<xliff:g id="SIZE">%s </xliff:g>‎‏‎‎‏‏‏‎ download now may shorten your battery life and/or result in excessive usage of your mobile data connection, which can lead to charges by your mobile operator depending on your data plan.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎ Touch ‎‏‎‎‏‏‎<xliff:g id="QUEUE_TEXT">%s</xliff:g>‎‏‎‎‏‏‏‎ to start this download the next time you\'re connected to a Wi-Fi network.‎‏‎‎‏‎"</string>
- <string name="button_queue_for_wifi" msgid="422576726189179221">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‎‎‏‎‏‎‏‎‏‎‏‎Queue‎‏‎‎‏‎"</string>
- <string name="button_cancel_download" msgid="2430166148737975604">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‏‎‏‎‎‏‏‎‏‎‎‎Cancel‎‏‎‎‏‎"</string>
- <string name="button_start_now" msgid="792123674007840864">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‎‎‎‎Start now‎‏‎‎‏‎"</string>
+ <string name="app_label" msgid="3658948994665187911">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‎‏‎‎‎‏‎‏‎‎‏‎‎‎‏‏‏‎Download Manager‎‏‎‎‏‎"</string>
+ <string name="storage_description" msgid="7982444311558023664">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‏‎‎‏‏‏‏‏‎‎‎‎‎Downloads‎‏‎‎‏‎"</string>
+ <string name="permlab_downloadManager" msgid="7779544811202855500">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‎‎‏‎‎‏‏‎‎‎Access download manager.‎‏‎‎‏‎"</string>
+ <string name="permdesc_downloadManager" msgid="4237406545998908947">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‎‎‏‏‏‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‎‎‎‎‏‎‎‏‏‎Allows the app to access the download manager and to use it to download files. Malicious apps can use this to disrupt downloads and access private information.‎‏‎‎‏‎"</string>
+ <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‎‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‏‏‏‎Advanced download manager functions.‎‏‎‎‏‎"</string>
+ <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‎‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‎‎‏‎Allows the app to access the download manager\'s advanced functions. Malicious apps can use this to disrupt downloads and access private information.‎‏‎‎‏‎"</string>
+ <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‎‎‏‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‎Send download notifications.‎‏‎‎‏‎"</string>
+ <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‎‎‏‏‏‏‎‎‏‎‎‎‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‏‎‏‎Allows the app to send notifications about completed downloads. Malicious apps can use this to confuse other apps that download files.‎‏‎‎‏‎"</string>
+ <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎See all downloads to USB storage‎‏‎‎‏‎"</string>
+ <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‏‎‎‏‏‏‏‎‎See all downloads to SD card‎‏‎‎‏‎"</string>
+ <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎‏‏‏‎‎‏‎‏‏‏‎‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‎‏‎Allows the app to see all downloads to the SD card, regardless of which app downloaded them.‎‏‎‎‏‎"</string>
+ <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‎‎‎Reserve space in the download cache‎‏‎‎‏‎"</string>
+ <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‎‎‎‏‏‏‎‎‏‏‏‎‏‏‎‎‎‏‏‏‎‏‎‎‏‏‎‎‎‎‏‏‏‎‏‏‎‏‎‎‎Allows the app to download files to the download cache, which can\'t be automatically deleted when the download manager needs more space.‎‏‎‎‏‎"</string>
+ <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‏‎‎‎‏‏‎‎‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‏‎‎‎‏‏‏‎‏‏‏‏‎‎download files without notification‎‏‎‎‏‎"</string>
+ <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‎‏‎‏‏‏‏‎‎‎‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎Allows the app to download files through the download manager without any notification being shown to the user.‎‏‎‎‏‎"</string>
+ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‎‏‎‎‏‏‎‎‎‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‎‏‎Access all system downloads‎‏‎‎‏‎"</string>
+ <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‎‏‎‏‎‏‎‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‏‏‏‎‎‎‎Allows the app to view and modify all downloads initiated by any app on the system.‎‏‎‎‏‎"</string>
+ <string name="download_unknown_title" msgid="7015124071247271585">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‎‎‎‏‎&lt;Untitled&gt;‎‏‎‎‏‎"</string>
+ <string name="notification_download_complete" msgid="5443563299253103667">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‎‎‏‏‎‎‏‏‎Download complete.‎‏‎‎‏‎"</string>
+ <string name="notification_download_failed" msgid="8612136111952014978">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‎‎Download unsuccessful.‎‏‎‎‏‎"</string>
+ <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎‏‏‏‎Download size requires Wi-Fi.‎‏‎‎‏‎"</string>
+ <string name="notification_paused_in_background" msgid="4328508073283591772">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‎‏‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎Paused in background.‎‏‎‎‏‎"</string>
+ <string name="wifi_required_title" msgid="1995971416871498179">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‎‏‏‎‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‏‎‏‎‏‎‏‏‏‎‎‎‏‏‏‎‎‎‎‏‏‎Download too large for operator network‎‏‎‎‏‎"</string>
+ <string name="wifi_required_body" msgid="3067694630143784449">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‎‎‎‎‎‏‏‎‏‎‎‎‏‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‏‎You must use Wi-Fi to complete this ‎‏‎‎‏‏‎<xliff:g id="SIZE">%s </xliff:g>‎‏‎‎‏‏‏‎ download. ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Touch ‎‏‎‎‏‏‎<xliff:g id="QUEUE_TEXT">%s </xliff:g>‎‏‎‎‏‏‏‎ to start this download the next time you\'re connected to a Wi-Fi network.‎‏‎‎‏‎"</string>
+ <string name="wifi_recommended_title" msgid="7441589306734687400">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎Queue for download later?‎‏‎‎‏‎"</string>
+ <string name="wifi_recommended_body" msgid="1314735166699936073">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‎‏‎‏‎‏‏‎‎‎‏‏‎‎‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎‎‏‎‎‏‎Starting this ‎‏‎‎‏‏‎<xliff:g id="SIZE">%s </xliff:g>‎‏‎‎‏‏‏‎ download now may shorten your battery life and/or result in excessive usage of your mobile data connection, which can lead to charges by your mobile operator depending on your data plan.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎ Touch ‎‏‎‎‏‏‎<xliff:g id="QUEUE_TEXT">%s</xliff:g>‎‏‎‎‏‏‏‎ to start this download the next time you\'re connected to a Wi-Fi network.‎‏‎‎‏‎"</string>
+ <string name="button_queue_for_wifi" msgid="422576726189179221">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‎‎‏‎‏‎‏‎‏‎‏‎Queue‎‏‎‎‏‎"</string>
+ <string name="button_cancel_download" msgid="2430166148737975604">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‏‎‏‎‎‏‏‎‏‎‎‎Cancel‎‏‎‎‏‎"</string>
+ <string name="button_start_now" msgid="792123674007840864">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‎‎‎‎Start now‎‏‎‎‏‎"</string>
<plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
- <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎<xliff:g id="NUMBER">%d</xliff:g>‎‏‎‎‏‏‏‎ files downloading‎‏‎‎‏‎</item>
- <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎‎‏‏‎‏‎‏‎1 file downloading‎‏‎‎‏‎</item>
+ <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎<xliff:g id="NUMBER">%d</xliff:g>‎‏‎‎‏‏‏‎ files downloading‎‏‎‎‏‎</item>
+ <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎‎‏‏‎‏‎‏‎1 file downloading‎‏‎‎‏‎</item>
</plurals>
<plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
- <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‎‏‏‎<xliff:g id="NUMBER">%d</xliff:g>‎‏‎‎‏‏‏‎ files waiting‎‏‎‎‏‎</item>
- <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎1 file waiting‎‏‎‎‏‎</item>
+ <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‎‏‏‎<xliff:g id="NUMBER">%d</xliff:g>‎‏‎‎‏‏‏‎ files waiting‎‏‎‎‏‎</item>
+ <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎1 file waiting‎‏‎‎‏‎</item>
</plurals>
- <string name="download_remaining" msgid="3139295890887972718">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‎‏‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="DURATION">%s</xliff:g>‎‏‎‎‏‏‏‎ left‎‏‎‎‏‎"</string>
- <string name="download_no_application_title" msgid="7935659741162801699">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‏‎‎‏‎‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎Can\'t open file‎‏‎‎‏‎"</string>
- <string name="root_downloads" msgid="4098414876292351487">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎Downloads‎‏‎‎‏‎"</string>
- <string name="download_queued" msgid="3302638231377947451">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‏‏‏‎‏‏‎Queued‎‏‎‎‏‎"</string>
- <string name="download_running" msgid="3925050393361158266">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‏‎‎‎‏‎‎‏‎‏‎‎‏‎‎‎‏‎‎‏‎‏‏‏‎‏‎‏‏‏‎‎‏‏‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‎‎In progress‎‏‎‎‏‎"</string>
- <string name="download_error" msgid="5144180777324573236">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‎‏‎‏‏‏‎‏‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‎‎Unsuccessful‎‏‎‎‏‎"</string>
- <string name="download_running_percent" msgid="4305080769167320204">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‎‎In progress, ‎‏‎‎‏‏‎<xliff:g id="PERCENTAGE">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+ <string name="download_remaining" msgid="3139295890887972718">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‎‏‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="DURATION">%s</xliff:g>‎‏‎‎‏‏‏‎ left‎‏‎‎‏‎"</string>
+ <string name="download_no_application_title" msgid="7935659741162801699">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‏‎‎‏‎‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎Can\'t open file‎‏‎‎‏‎"</string>
+ <string name="root_downloads" msgid="4098414876292351487">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎Downloads‎‏‎‎‏‎"</string>
+ <string name="download_queued" msgid="3302638231377947451">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‏‏‏‎‏‏‎Queued‎‏‎‎‏‎"</string>
+ <string name="download_running" msgid="3925050393361158266">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‏‎‎‎‏‎‎‏‎‏‎‎‏‎‎‎‏‎‎‏‎‏‏‏‎‏‎‏‏‏‎‎‏‏‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‎‎In progress‎‏‎‎‏‎"</string>
+ <string name="download_error" msgid="5144180777324573236">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‎‏‎‏‏‏‎‏‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‎‎Unsuccessful‎‏‎‎‏‎"</string>
+ <string name="download_running_percent" msgid="4305080769167320204">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‎‎In progress, ‎‏‎‎‏‏‎<xliff:g id="PERCENTAGE">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 944243b8..04a66350 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -26,7 +26,7 @@
<string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Permite que la aplicación envíe notificaciones sobre descargas completadas. Las aplicaciones malintencionadas pueden utilizar este permiso para confundir a otras aplicaciones que descarguen archivos."</string>
<string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Ver descargas de USB"</string>
<string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Ver todas las descargas en tarjeta SD"</string>
- <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Permite que la aplicación vea todas las descargas en la tarjeta SD, independientemente de la aplicación que las haya descargado."</string>
+ <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Permite que la aplicación vea todas las descargas en la tarjeta SD independientemente de la aplicación que las haya descargado."</string>
<string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reservar espacio en caché de descargas"</string>
<string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Permite que la aplicación descargue archivos en la memoria caché que no se pueden eliminar automáticamente si falta espacio en el administrador de descargas."</string>
<string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"descargar archivos sin notificación"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index b795c699..63c8e7f5 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -19,20 +19,20 @@
<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 erabiltzea baimentzen 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 erabiltzeko baimena ematen 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 atzitzea baimentzen die aplikazioei. Aplikazio gaiztoek deskargak eteteko eta informazio pribatua atzitzeko erabil dezakete hori."</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="permlab_downloadCompletedIntent" msgid="945913803765675685">"Bidali deskargen jakinarazpenak."</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="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="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Ikusi USB memoriako deskargak"</string>
<string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Ikusi SD txartelera egin diren deskarga guztiak"</string>
- <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"SD txartelera egin diren deskarga guztiak ikustea baimentzen die aplikazioei, zein aplikaziok deskargatu zituen kontuan hartu gabe."</string>
+ <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"SD txartelera egin diren deskarga guztiak ikusteko baimena ematen die aplikazioei, zein aplikaziok deskargatu zituen kontuan hartu gabe."</string>
<string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Erreserbatu memoria deskarga-cachean"</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="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="permlab_downloadWithoutNotification" msgid="8837971946078327262">"Deskargatu fitxategiak jakinarazi gabe"</string>
- <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Fitxategiak deskargen kudeatzailearen bidez baina erabiltzaileari jakinarazi gabe deskargatzea baimentzen die aplikazioei."</string>
+ <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Fitxategiak deskargen kudeatzailearen bidez baina erabiltzaileari jakinarazi gabe deskargatzeko baimena ematen 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 ikustea eta aldatzea baimentzen die aplikazioei."</string>
+ <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Aplikazioek sisteman hasitako deskarga guztiak ikusteko eta aldatzeko baimena ematen 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-fr/strings.xml b/res/values-fr/strings.xml
index ed341cc5..83489be8 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/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">"Gest. de tél."</string>
+ <string name="app_label" msgid="3658948994665187911">"Gestionnaire de téléchargement"</string>
<string name="storage_description" msgid="7982444311558023664">"Téléchargements"</string>
<string name="permlab_downloadManager" msgid="7779544811202855500">"Accéder au gestionnaire de téléchargement."</string>
<string name="permdesc_downloadManager" msgid="4237406545998908947">"Permet à l\'application d\'accéder au gestionnaire de téléchargement et de l\'utiliser pour télécharger des fichiers. Les applications malveillantes peuvent utiliser cette fonctionnalité pour perturber les téléchargements et accéder à des informations confidentielles."</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 9de0c299..128d3dcd 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -21,7 +21,7 @@
<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">"એપ્લિકેશનને ડાઉનલોડ સંચાલકના વિગતવાર Tasks ને ઍક્સેસ કરવાની મંજૂરી આપે છે. દુભાવનાપૂર્ણ ઍપ્લિકેશનો આનો ઉપયોગ ડાઉનલોડ્સમાં વિક્ષેપ નાખવા અને ખાનગી માહિતીને ઍક્સેસ કરવા માટે કરી શકે છે."</string>
<string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"ડાઉનલોડ સૂચનાઓ મોકલો."</string>
<string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"એપ્લિકેશનને પૂર્ણ થયેલ ડાઉનલોડ્સ વિશે સૂચનાઓ મોકલવાની મંજૂરી આપે છે. દુર્ભાવનાપૂર્ણ ઍપ્લિકેશનો આનો ઉપયોગ ફાઇલો ડાઉનલોડ કરતી અન્ય ઍપ્લિકેશનોને મૂંઝવણમાં નાખવા માટે કરી શકે છે."</string>
<string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"USB સ્ટોરેજ પરના તમામ ડાઉનલોડને જુઓ"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index bdc6f6a7..468b3109 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -34,7 +34,7 @@
<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 3297c0d0..b77806ec 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -42,7 +42,7 @@
<string name="wifi_required_body" msgid="3067694630143784449">"Morate upotrijebiti Wi-Fi da biste dovršili ovo preuzimanje veličine <xliff:g id="SIZE">%s </xliff:g>. \n\nDodirnite tekst <xliff:g id="QUEUE_TEXT">%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">%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">%s</xliff:g> da biste preuzeli pri sljedećem spajanju s Wi-Fi mrežom."</string>
- <string name="button_queue_for_wifi" msgid="422576726189179221">"Red čekanja"</string>
+ <string name="button_queue_for_wifi" msgid="422576726189179221">"Redoslijed"</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-hy/strings.xml b/res/values-hy/strings.xml
index a1a48e93..506158b1 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -42,7 +42,7 @@
<string name="wifi_required_body" msgid="3067694630143784449">"Դուք պետք է օգտագործեք Wi-Fi՝ այս <xliff:g id="SIZE">%s </xliff:g> ներբեռնումն ավարտելու համար: \n\nՀպեք <xliff:g id="QUEUE_TEXT">%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">%s </xliff:g> ներբեռնումը հիմա սկսելը կարող է կարճեցնել ձեր մարտկոցի կյանքը և/կամ բերել ձեր բբջային տվյալների կապի ավելորդ օգտագործման, որը կարող է ուղեկցվել ծախսերով ձեր բջջային օպերատորի կողմից՝ կախված ձեր տվյալների փաթեթից:\n\n Հպեք <xliff:g id="QUEUE_TEXT">%s</xliff:g> ստորև` այս ներբեռնումը սկսելու հաջորդ անգամ, երբ միացած կլինեք որևէ Wi-Fi ցանցի:"</string>
- <string name="button_queue_for_wifi" msgid="422576726189179221">"Հերթականություն"</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>
<plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index bccb91ad..8ed41165 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -29,8 +29,8 @@
<string name="permdesc_seeAllExternal" msgid="1672759909065511233">"‏מאפשר לאפליקציה לראות את כל ההורדות לכרטיס ה-SD, בלי קשר לאפליקציה שהורידה אותן."</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_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="download_unknown_title" msgid="7015124071247271585">"‏&lt;ללא כותרת&gt;"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 250a83a1..937b978c 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>
@@ -55,7 +55,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 01b0afb2..4778a851 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -46,12 +46,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-ne/strings.xml b/res/values-ne/strings.xml
index 25e3be47..6163933d 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -19,7 +19,7 @@
<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>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 22a5d7f0..b6128b51 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 gegevens."</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="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 gegevens."</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="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_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Alle downloads naar USB-opslag bekijken"</string>
@@ -53,7 +53,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">"<xliff:g id="DURATION">%s</xliff:g> resterend"</string>
+ <string name="download_remaining" msgid="3139295890887972718">"Nog <xliff:g id="DURATION">%s</xliff:g>"</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-or/strings.xml b/res/values-or/strings.xml
new file mode 100644
index 00000000..6c2f6856
--- /dev/null
+++ b/res/values-or/strings.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="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_downloadCompletedIntent" msgid="945913803765675685">"ଡାଉନଲୋଡ୍‌ ବିଜ୍ଞପ୍ତି ପଠାନ୍ତୁ|"</string>
+ <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଥିବା ଡାଉନଲୋଡ୍‌ଗୁଡ଼ିକ ବିଷୟରେ ବିଜ୍ଞପ୍ତି ପଠାଇବା ପାଇଁ ଆପ୍‌କୁ ଅନୁମତି ଦେଇଥାଏ| କ୍ଷତିକାରକ ଆପ୍‌ଗୁଡ଼ିକ ଏହାକୁ, ଅନ୍ୟ ଆପ୍‌ଗୁଡ଼ିକୁ ଭ୍ରମିତ କରିବା ପାଇଁ ବ୍ୟବହାର କରିପାରନ୍ତି, ଯେଉଁଗୁଡ଼ିକ ଫାଇଲ୍‌ ଡାଉନଲୋଡ୍‌ କରନ୍ତି|"</string>
+ <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"USB ଷ୍ଟୋରେଜ୍‌ରେ ହୋଇଥିବା ସମସ୍ତ ଡାଉନଲୋଡ୍‌ ଦେଖନ୍ତୁ"</string>
+ <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"SD କାର୍ଡରେ ହୋଇଥିବା ସମସ୍ତ ଡାଉନଲୋଡ୍‌ ଦେଖନ୍ତୁ"</string>
+ <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"SD କାର୍ଡରେ ଡାଉନଲୋଡ୍‌ ହୋଇଥିବା ସମସ୍ତ ଆପ୍‌କୁ ଦେଖିବା ପାଇଁ ଆପ୍‌କୁ ଅନୁମତି ଦେଇଥାଏ, ସେଗୁଡ଼ିକୁ ଯେଉଁ ଆପ୍‌ ଡାଉନଲୋଡ୍‌ କରିଥାଉ ନା କାହିଁକି|"</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="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">"ଡାଉନଲୋଡ୍‌ ଆକାର ୱାଇ-ଫାଇ ଆବଶ୍ୟକ କରେ|"</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">"ଏହି <xliff:g id="SIZE">%s </xliff:g>ର ଡାଉନଲୋଡ୍‌ ସାରିବା ପାଇଁ ଆପଣଙ୍କୁ ନିଶ୍ଚିତ ଭାବେ ୱାଇ-ଫାଇର ବ୍ୟବହାର କରିବାକୁ ପଡ଼ିବ| \n\nପରବର୍ତ୍ତୀ ସମୟରେ ଯେତେବେଳେ ଆପଣ କୌଣସି ୱାଇ-ଫାଇ ନେଟ୍‌ୱର୍କ ସହିତ ଯୋଡ଼ିହେବେ, ଏହି ଡାଉନଲୋଡ୍‌ ଆରମ୍ଭ କରିବା ପାଇଁ <xliff:g id="QUEUE_TEXT">%s </xliff:g>କୁ ସ୍ପର୍ଶ କରନ୍ତୁ|"</string>
+ <string name="wifi_recommended_title" msgid="7441589306734687400">"ପରେ ଡାଉନଲୋଡ୍‌ କରିବା ପାଇଁ ଧାଡ଼ିରେ ରଖିବେ?"</string>
+ <string name="wifi_recommended_body" msgid="1314735166699936073">"ଏହି <xliff:g id="SIZE">%s </xliff:g>ର ଡାଉନଲୋଡ୍‌ ଆରମ୍ଭ କଲେ ଆପଣଙ୍କ ବ୍ୟାଟେରୀ ଶୀଘ୍ର ସରିଯାଇପାରେ ଏବଂ/କିମ୍ୱା ମୋବାଇଲ୍‌ର ଅନେକ ଡାଟା ଖର୍ଚ୍ଚ ହୋଇପାରେ, ଯାହା ପାଇଁ ମୋବାଇଲ୍‌ ଅପରେଟର୍‌, ଆପଣଙ୍କ ଡାଟା ପ୍ଲାନ୍‌ ହିସାବରେ ଆପଣଙ୍କଠାରୁ ପଇସା ନେଇପାରେ|\n\n ଆଗାମୀ ଥର ଯେତେବେଳେ ଆପଣ ୱାଇ-ଫାଇ ନେଟୱର୍କ ସହିତ ଯୋଡ଼ିହେବେ, ଏହି ଡାଉନଲୋଡ୍‌ ଆରମ୍ଭ କରିବା ପାଇଁ <xliff:g id="QUEUE_TEXT">%s</xliff:g>କୁ ସ୍ପର୍ଶ କରନ୍ତୁ|"</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>
+ <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
+ <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="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>
+ <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>
+</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index db631cff..4e38cba2 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -28,7 +28,7 @@
<string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Ver todas as transferências para o cartão SD"</string>
<string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Permite que a aplicação veja todas as transferências efetuadas para o cartão SD, independentemente da aplicação utilizada nas transferências."</string>
<string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reservar espaço na cache de transferência"</string>
- <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Permite que a aplic. transfira ficheiros p/ cache transf., os quais não podem ser automaticamente eliminados quando o gestor transf. necessitar de mais espaço."</string>
+ <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Permite que a app transfira ficheiros p/ cache transf., os quais não podem ser automaticamente eliminados quando o gestor transf. necessitar de mais espaço."</string>
<string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"transferir ficheiros sem notificação"</string>
<string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Permite que a aplicação transfira ficheiros através do gestor de transferências, sem apresentar qualquer notificação ao utilizador."</string>
<string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Aceder a todas as transferências do sistema"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 13e5d2a8..68b3e069 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -19,20 +19,20 @@
<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_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"USB சேமிப்பிடத்தில் உள்ள எல்லா பதிவிறக்கங்களையும் பார்த்தல்"</string>
<string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"SD கார்டில் உள்ள எல்லா பதிவிறக்கங்களையும் பார்த்தல்"</string>
- <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"எந்த பயன்பாடு பதிவிறக்கியது என்பதைப் பொருட்படுத்தாமல் SD கார்டில் உள்ள எல்லா பதிவிறக்கங்களையும் பார்க்க பயன்பாட்டை அனுமதிக்கிறது."</string>
+ <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"எந்த ஆப்ஸ் பதிவிறக்கியது என்பதைப் பொருட்படுத்தாமல் SD கார்டில் உள்ள எல்லா பதிவிறக்கங்களையும் பார்க்க ஆப்ஸை அனுமதிக்கிறது."</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 d1d341e5..1a5f829c 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -55,7 +55,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">"Bản tải xuống"</string>
+ <string name="root_downloads" msgid="4098414876292351487">"Tệp 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/DownloadJobService.java b/src/com/android/providers/downloads/DownloadJobService.java
index 0ce4266a..d09738c2 100644
--- a/src/com/android/providers/downloads/DownloadJobService.java
+++ b/src/com/android/providers/downloads/DownloadJobService.java
@@ -66,6 +66,10 @@ public class DownloadJobService extends JobService {
final DownloadThread thread;
synchronized (mActiveThreads) {
+ if (mActiveThreads.indexOfKey(id) >= 0) {
+ Log.w(TAG, "Odd, already running download " + id);
+ return false;
+ }
thread = new DownloadThread(this, params, info);
mActiveThreads.put(id, thread);
}
@@ -93,14 +97,20 @@ public class DownloadJobService extends JobService {
}
public void jobFinishedInternal(JobParameters params, boolean needsReschedule) {
+ final int id = params.getJobId();
+
synchronized (mActiveThreads) {
mActiveThreads.remove(params.getJobId());
}
+ if (needsReschedule) {
+ Helpers.scheduleJob(this, DownloadInfo.queryDownloadInfo(this, id));
+ }
// Update notifications one last time while job is protecting us
mObserver.onChange(false);
- jobFinished(params, needsReschedule);
+ // We do our own rescheduling above
+ jobFinished(params, false);
}
private ContentObserver mObserver = new ContentObserver(Helpers.getAsyncHandler()) {
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java
index 55a87a2f..f8d5aae2 100644
--- a/src/com/android/providers/downloads/DownloadProvider.java
+++ b/src/com/android/providers/downloads/DownloadProvider.java
@@ -55,13 +55,13 @@ import android.provider.Downloads;
import android.provider.OpenableColumns;
import android.text.TextUtils;
import android.text.format.DateUtils;
-import android.util.ArrayMap;
import android.util.Log;
import com.android.internal.util.IndentingPrintWriter;
import libcore.io.IoUtils;
+import com.google.android.collect.Maps;
import com.google.common.annotations.VisibleForTesting;
import java.io.File;
@@ -70,7 +70,11 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
/**
@@ -130,107 +134,48 @@ public final class DownloadProvider extends ContentProvider {
Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI,
};
- private static void addMapping(Map<String, String> map, String column) {
- if (!map.containsKey(column)) {
- map.put(column, column);
- }
- }
+ 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 void addMapping(Map<String, String> map, String column, String rawColumn) {
- if (!map.containsKey(column)) {
- map.put(column, rawColumn + " AS " + column);
- }
- }
+ private static final HashSet<String> sAppReadableColumnsSet;
+ private static final HashMap<String, String> sColumnsMap;
- 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_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);
- }
+ sAppReadableColumnsSet = new HashSet<String>();
+ for (int i = 0; i < sAppReadableColumnsArray.length; ++i) {
+ sAppReadableColumnsSet.add(sAppReadableColumnsArray[i]);
+ }
- 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);
+ 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);
@VisibleForTesting
SystemFacade mSystemFacade;
@@ -973,6 +918,28 @@ public final class DownloadProvider extends ContentProvider {
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);
}
@@ -1064,11 +1031,25 @@ public final class DownloadProvider extends ContentProvider {
}
/**
+ * @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 != mDefContainerUid;
+ }
+
+ /**
* 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();
@@ -1135,8 +1116,7 @@ public final class DownloadProvider extends ContentProvider {
count = qb.update(db, filteredValues, where, whereArgs);
if (updateSchedule || isCompleting) {
final long token = Binder.clearCallingIdentity();
- try (Cursor cursor = qb.query(db, null, where, whereArgs,
- null, null, null)) {
+ try (Cursor cursor = qb.query(db, null, where, whereArgs, null, null, null)) {
final DownloadInfo.Reader reader = new DownloadInfo.Reader(resolver,
cursor);
final DownloadInfo info = new DownloadInfo(context);
@@ -1188,8 +1168,6 @@ public final class DownloadProvider extends ContentProvider {
*/
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
@@ -1200,7 +1178,6 @@ public final class DownloadProvider extends ContentProvider {
// 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()
@@ -1216,7 +1193,6 @@ public final class DownloadProvider extends ContentProvider {
// fall-through
case ALL_DOWNLOADS:
table = DB_TABLE;
- projectionMap = sDownloadsMap;
break;
// Headers are limited to callers holding the ACCESS_ALL_DOWNLOADS
@@ -1224,7 +1200,6 @@ public final class DownloadProvider extends ContentProvider {
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;
@@ -1234,11 +1209,8 @@ public final class DownloadProvider extends ContentProvider {
}
final SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
- qb.setTables(table);
- qb.setProjectionMap(projectionMap);
qb.setStrict(true);
- qb.setStrictColumns(true);
- qb.setStrictGrammar(true);
+ qb.setTables(table);
qb.appendWhere(where);
return qb;
}
@@ -1255,6 +1227,10 @@ public final class DownloadProvider extends ContentProvider {
*/
@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/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java
index 92f4c021..afcba961 100644
--- a/src/com/android/providers/downloads/DownloadStorageProvider.java
+++ b/src/com/android/providers/downloads/DownloadStorageProvider.java
@@ -131,7 +131,11 @@ public class DownloadStorageProvider extends FileSystemProvider {
}
@Override
- public Path findDocumentPath(String parentDocId, String docId) throws FileNotFoundException {
+ public Path findDocumentPath(@Nullable String parentDocId, String docId) throws FileNotFoundException {
+
+ // parentDocId is null if the client is asking for the path to the root of a doc tree.
+ // Don't share root information with those who shouldn't know it.
+ final String rootId = (parentDocId == null) ? DOC_ID_ROOT : null;
if (parentDocId == null) {
parentDocId = DOC_ID_ROOT;
@@ -141,8 +145,6 @@ public class DownloadStorageProvider extends FileSystemProvider {
final File doc = getFileForDocId(docId);
- final String rootId = (parentDocId == null) ? DOC_ID_ROOT : null;
-
return new Path(rootId, findDocumentPath(parent, doc));
}
@@ -364,6 +366,23 @@ public class DownloadStorageProvider extends FileSystemProvider {
}
@Override
+ public String getDocumentType(String docId) throws FileNotFoundException {
+ // Delegate to real provider
+ final long token = Binder.clearCallingIdentity();
+ try {
+ if (RawDocumentsHelper.isRawDocId(docId)) {
+ return super.getDocumentType(docId);
+ }
+
+ final long id = Long.parseLong(docId);
+ final ContentResolver resolver = getContext().getContentResolver();
+ return resolver.getType(mDm.getDownloadUri(id));
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override
public ParcelFileDescriptor openDocument(String docId, String mode, CancellationSignal signal)
throws FileNotFoundException {
// Delegate to real provider
@@ -424,6 +443,9 @@ public class DownloadStorageProvider extends FileSystemProvider {
private void includeDefaultDocument(MatrixCursor result) {
final RowBuilder row = result.newRow();
row.add(Document.COLUMN_DOCUMENT_ID, DOC_ID_ROOT);
+ // We have the same display name as our root :)
+ row.add(Document.COLUMN_DISPLAY_NAME,
+ getContext().getString(R.string.root_downloads));
row.add(Document.COLUMN_MIME_TYPE, Document.MIME_TYPE_DIR);
row.add(Document.COLUMN_FLAGS,
Document.FLAG_DIR_PREFERS_LAST_MODIFIED | Document.FLAG_DIR_SUPPORTS_CREATE);
@@ -497,6 +519,10 @@ public class DownloadStorageProvider extends FileSystemProvider {
flags |= Document.FLAG_SUPPORTS_THUMBNAIL;
}
+ if (typeSupportsMetadata(mimeType)) {
+ flags |= Document.FLAG_SUPPORTS_METADATA;
+ }
+
final long lastModified = cursor.getLong(
cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP));
diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java
index d3ec568c..54cc1a5d 100644
--- a/src/com/android/providers/downloads/DownloadThread.java
+++ b/src/com/android/providers/downloads/DownloadThread.java
@@ -16,6 +16,8 @@
package com.android.providers.downloads;
+import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED;
+import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING;
import static android.provider.Downloads.Impl.COLUMN_CONTROL;
import static android.provider.Downloads.Impl.COLUMN_DELETED;
import static android.provider.Downloads.Impl.COLUMN_STATUS;
@@ -57,6 +59,7 @@ import android.drm.DrmOutputStream;
import android.net.ConnectivityManager;
import android.net.INetworkPolicyListener;
import android.net.Network;
+import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.net.NetworkPolicyManager;
import android.net.TrafficStats;
@@ -285,7 +288,7 @@ public class DownloadThread extends Thread {
// Use the caller's default network to make this connection, since
// they might be subject to restrictions that we shouldn't let them
// circumvent
- mNetwork = mSystemFacade.getActiveNetwork(mInfo.mUid, mIgnoreBlocked);
+ mNetwork = mSystemFacade.getNetwork(mParams);
if (mNetwork == null) {
throw new StopRequestException(STATUS_WAITING_FOR_NETWORK,
"No network associated with requesting UID");
@@ -384,6 +387,7 @@ public class DownloadThread extends Thread {
mNetworkPolicy.unregisterListener(mPolicyListener);
}
+ boolean needsReschedule = false;
if (Downloads.Impl.isStatusCompleted(mInfoDelta.mStatus)) {
if (mInfo.shouldScanFile(mInfoDelta.mStatus)) {
DownloadScanner.requestScanBlocking(mContext, mInfo.mId, mInfoDelta.mFileName,
@@ -392,10 +396,10 @@ public class DownloadThread extends Thread {
} else if (mInfoDelta.mStatus == STATUS_WAITING_TO_RETRY
|| mInfoDelta.mStatus == STATUS_WAITING_FOR_NETWORK
|| mInfoDelta.mStatus == STATUS_QUEUED_FOR_WIFI) {
- Helpers.scheduleJob(mContext, DownloadInfo.queryDownloadInfo(mContext, mId));
+ needsReschedule = true;
}
- mJobService.jobFinishedInternal(mParams, false);
+ mJobService.jobFinishedInternal(mParams, needsReschedule);
}
public void requestShutdown() {
@@ -417,7 +421,8 @@ public class DownloadThread extends Thread {
throw new StopRequestException(STATUS_BAD_REQUEST, e);
}
- boolean cleartextTrafficPermitted = mSystemFacade.isCleartextTrafficPermitted(mInfo.mUid);
+ boolean cleartextTrafficPermitted
+ = mSystemFacade.isCleartextTrafficPermitted(mInfo.mPackage, url.getHost());
SSLContext appContext;
try {
appContext = mSystemFacade.getSSLContextForPackage(mContext, mInfo.mPackage);
@@ -431,7 +436,7 @@ public class DownloadThread extends Thread {
// because of HTTP redirects which can change the protocol between HTTP and HTTPS.
if ((!cleartextTrafficPermitted) && ("http".equalsIgnoreCase(url.getProtocol()))) {
throw new StopRequestException(STATUS_BAD_REQUEST,
- "Cleartext traffic not permitted for UID " + mInfo.mUid + ": "
+ "Cleartext traffic not permitted for package " + mInfo.mPackage + ": "
+ Uri.parse(url.toString()).toSafeString());
}
@@ -717,15 +722,16 @@ public class DownloadThread extends Thread {
// checking connectivity will apply current policy
mPolicyDirty = false;
- final NetworkInfo info = mSystemFacade.getNetworkInfo(mNetwork, mInfo.mUid,
- mIgnoreBlocked);
+ final NetworkInfo info = mSystemFacade.getNetworkInfo(mNetwork, mInfo.mUid, mIgnoreBlocked);
+ final NetworkCapabilities caps = mSystemFacade.getNetworkCapabilities(mNetwork);
if (info == null || !info.isConnected()) {
throw new StopRequestException(STATUS_WAITING_FOR_NETWORK, "Network is disconnected");
}
- if (info.isRoaming() && !mInfo.isRoamingAllowed()) {
+ if (!caps.hasCapability(NET_CAPABILITY_NOT_ROAMING)
+ && !mInfo.isRoamingAllowed()) {
throw new StopRequestException(STATUS_WAITING_FOR_NETWORK, "Network is roaming");
}
- if (mSystemFacade.isActiveNetworkMeteredForUid(mInfo.mUid)
+ if (!caps.hasCapability(NET_CAPABILITY_NOT_METERED)
&& !mInfo.isMeteredAllowed(mInfoDelta.mTotalBytes)) {
throw new StopRequestException(STATUS_WAITING_FOR_NETWORK, "Network is metered");
}
@@ -858,7 +864,7 @@ public class DownloadThread extends Thread {
Log.e(TAG, "[" + mId + "] " + msg, t);
}
- private INetworkPolicyListener mPolicyListener = new INetworkPolicyListener.Stub() {
+ private INetworkPolicyListener mPolicyListener = new NetworkPolicyManager.Listener() {
@Override
public void onUidRulesChanged(int uid, int uidRules) {
// caller is NPMS, since we only register with them
diff --git a/src/com/android/providers/downloads/Helpers.java b/src/com/android/providers/downloads/Helpers.java
index 984ca79a..963ca9da 100644
--- a/src/com/android/providers/downloads/Helpers.java
+++ b/src/com/android/providers/downloads/Helpers.java
@@ -41,6 +41,7 @@ import android.os.UserHandle;
import android.os.storage.StorageManager;
import android.os.storage.StorageVolume;
import android.provider.Downloads;
+import android.text.TextUtils;
import android.util.Log;
import android.webkit.MimeTypeMap;
@@ -49,7 +50,7 @@ import com.google.common.annotations.VisibleForTesting;
import java.io.File;
import java.io.IOException;
import java.util.Random;
-import java.util.function.BiConsumer;
+import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -164,6 +165,17 @@ public class Helpers {
builder.setRequiresDeviceIdle(true);
}
+ // Provide estimated network size, when possible
+ if (info.mTotalBytes > 0) {
+ if (info.mCurrentBytes > 0 && !TextUtils.isEmpty(info.mETag)) {
+ // If we're resuming an in-progress download, we only need to
+ // download the remaining bytes.
+ builder.setEstimatedNetworkBytes(info.mTotalBytes - info.mCurrentBytes);
+ } else {
+ builder.setEstimatedNetworkBytes(info.mTotalBytes);
+ }
+ }
+
// If package name was filtered during insert (probably due to being
// invalid), blame based on the requesting UID instead
String packageName = info.mPackage;
@@ -568,4 +580,265 @@ public class Helpers {
throw new IllegalStateException("unexpected destination: " + destination);
}
}
+
+ /**
+ * 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/src/com/android/providers/downloads/RealSystemFacade.java b/src/com/android/providers/downloads/RealSystemFacade.java
index 2d9b3a30..a0ce92c3 100644
--- a/src/com/android/providers/downloads/RealSystemFacade.java
+++ b/src/com/android/providers/downloads/RealSystemFacade.java
@@ -17,6 +17,7 @@
package com.android.providers.downloads;
import android.app.DownloadManager;
+import android.app.job.JobParameters;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
@@ -30,13 +31,13 @@ import android.net.NetworkInfo;
import android.security.NetworkSecurityPolicy;
import android.security.net.config.ApplicationConfig;
+import com.android.internal.util.ArrayUtils;
+
import java.security.GeneralSecurityException;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
-import com.android.internal.util.ArrayUtils;
-
class RealSystemFacade implements SystemFacade {
private Context mContext;
@@ -50,9 +51,8 @@ class RealSystemFacade implements SystemFacade {
}
@Override
- public Network getActiveNetwork(int uid, boolean ignoreBlocked) {
- return mContext.getSystemService(ConnectivityManager.class)
- .getActiveNetworkForUid(uid, ignoreBlocked);
+ public Network getNetwork(JobParameters params) {
+ return params.getNetwork();
}
@Override
@@ -62,15 +62,9 @@ class RealSystemFacade implements SystemFacade {
}
@Override
- public boolean isNetworkMetered(Network network) {
- return !mContext.getSystemService(ConnectivityManager.class).getNetworkCapabilities(network)
- .hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED);
- }
-
- @Override
- public boolean isActiveNetworkMeteredForUid(int uid) {
+ public NetworkCapabilities getNetworkCapabilities(Network network) {
return mContext.getSystemService(ConnectivityManager.class)
- .isActiveNetworkMeteredForUid(uid);
+ .getNetworkCapabilities(network);
}
@Override
@@ -96,25 +90,6 @@ class RealSystemFacade implements SystemFacade {
}
@Override
- public boolean isCleartextTrafficPermitted(int uid) {
- PackageManager packageManager = mContext.getPackageManager();
- String[] packageNames = packageManager.getPackagesForUid(uid);
- if (ArrayUtils.isEmpty(packageNames)) {
- // Unknown UID -- fail safe: cleartext traffic not permitted
- return false;
- }
-
- // Cleartext traffic is permitted from the UID if it's permitted for any of the packages
- // belonging to that UID.
- for (String packageName : packageNames) {
- if (isCleartextTrafficPermitted(packageName)) {
- return true;
- }
- }
- return false;
- }
-
- @Override
public SSLContext getSSLContextForPackage(Context context, String packageName)
throws GeneralSecurityException {
ApplicationConfig appConfig;
@@ -130,22 +105,17 @@ class RealSystemFacade implements SystemFacade {
}
/**
- * Returns whether cleartext network traffic (HTTP) is permitted for the provided package.
+ * Returns whether cleartext network traffic (HTTP) is permitted for the provided package to
+ * {@code host}.
*/
- private boolean isCleartextTrafficPermitted(String packageName) {
- PackageManager packageManager = mContext.getPackageManager();
- PackageInfo packageInfo;
+ public boolean isCleartextTrafficPermitted(String packageName, String host) {
+ ApplicationConfig appConfig;
try {
- packageInfo = packageManager.getPackageInfo(packageName, 0);
+ appConfig = NetworkSecurityPolicy.getApplicationConfigForPackage(mContext, packageName);
} catch (NameNotFoundException e) {
- // Unknown package -- fail safe: cleartext traffic not permitted
- return false;
- }
- ApplicationInfo applicationInfo = packageInfo.applicationInfo;
- if (applicationInfo == null) {
- // No app info -- fail safe: cleartext traffic not permitted
+ // Unknown package -- fail for safety
return false;
}
- return (applicationInfo.flags & ApplicationInfo.FLAG_USES_CLEARTEXT_TRAFFIC) != 0;
+ return appConfig.isCleartextTrafficPermitted(host);
}
}
diff --git a/src/com/android/providers/downloads/SystemFacade.java b/src/com/android/providers/downloads/SystemFacade.java
index dec0cb28..14002a15 100644
--- a/src/com/android/providers/downloads/SystemFacade.java
+++ b/src/com/android/providers/downloads/SystemFacade.java
@@ -16,6 +16,7 @@
package com.android.providers.downloads;
+import android.app.job.JobParameters;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
@@ -24,6 +25,7 @@ import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import java.security.GeneralSecurityException;
+
import javax.net.ssl.SSLContext;
interface SystemFacade {
@@ -32,13 +34,10 @@ interface SystemFacade {
*/
public long currentTimeMillis();
- public Network getActiveNetwork(int uid, boolean ignoreBlocked);
+ public Network getNetwork(JobParameters params);
public NetworkInfo getNetworkInfo(Network network, int uid, boolean ignoreBlocked);
-
- public boolean isNetworkMetered(Network network);
-
- public boolean isActiveNetworkMeteredForUid(int uid);
+ public NetworkCapabilities getNetworkCapabilities(Network network);
/**
* @return maximum size, in bytes, of downloads that may go over a mobile connection; or null if
@@ -64,9 +63,10 @@ interface SystemFacade {
public boolean userOwnsPackage(int uid, String pckg) throws NameNotFoundException;
/**
- * Returns true if cleartext network traffic is permitted for the specified UID.
+ * Returns true if cleartext network traffic is permitted from {@code packageName} to
+ * {@code host}.
*/
- public boolean isCleartextTrafficPermitted(int uid);
+ public boolean isCleartextTrafficPermitted(String packageName, String host);
/**
* Return a {@link SSLContext} configured using the specified package's configuration.
diff --git a/tests/Android.mk b/tests/Android.mk
index b654e12c..c3d9bcb7 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -7,12 +7,12 @@ LOCAL_MODULE_TAGS := tests
# Include all test java files.
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_INSTRUMENTATION_FOR := DownloadProvider
-LOCAL_JAVA_LIBRARIES := android.test.runner
+LOCAL_JAVA_LIBRARIES := android.test.runner android.test.base android.test.mock
LOCAL_STATIC_JAVA_LIBRARIES := \
mockwebserver \
- mockito-target \
- legacy-android-test
+ mockito-target
LOCAL_PACKAGE_NAME := DownloadProviderTests
+LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_COMPATIBILITY_SUITE := device-tests
LOCAL_CERTIFICATE := media
diff --git a/tests/AndroidTest.xml b/tests/AndroidTest.xml
index cad211a4..6a09909f 100644
--- a/tests/AndroidTest.xml
+++ b/tests/AndroidTest.xml
@@ -23,5 +23,6 @@
<test class="com.android.tradefed.testtype.InstrumentationTest" >
<option name="package" value="com.android.providers.downloads.tests" />
<option name="runner" value="android.test.InstrumentationTestRunner" />
+ <option name="hidden-api-checks" value="false"/>
</test>
</configuration>
diff --git a/tests/permission/Android.mk b/tests/permission/Android.mk
index 62f4d024..ae96b5cd 100644
--- a/tests/permission/Android.mk
+++ b/tests/permission/Android.mk
@@ -7,9 +7,10 @@ LOCAL_MODULE_TAGS := tests
# Include all test java files.
LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_JAVA_LIBRARIES := android.test.runner
-LOCAL_STATIC_JAVA_LIBRARIES := junit legacy-android-test
+LOCAL_JAVA_LIBRARIES := android.test.runner android.test.base
+LOCAL_STATIC_JAVA_LIBRARIES := junit
LOCAL_PACKAGE_NAME := DownloadProviderPermissionTests
+LOCAL_PRIVATE_PLATFORM_APIS := true
include $(BUILD_PACKAGE)
diff --git a/tests/public_api_access/Android.mk b/tests/public_api_access/Android.mk
index 66f2f101..3bc2e8e8 100644
--- a/tests/public_api_access/Android.mk
+++ b/tests/public_api_access/Android.mk
@@ -7,9 +7,10 @@ LOCAL_MODULE_TAGS := tests
# Include all test java files.
LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_JAVA_LIBRARIES := android.test.runner
-LOCAL_STATIC_JAVA_LIBRARIES := junit legacy-android-test
+LOCAL_JAVA_LIBRARIES := android.test.runner android.test.base
+LOCAL_STATIC_JAVA_LIBRARIES := junit
LOCAL_PACKAGE_NAME := DownloadPublicApiAccessTests
+LOCAL_PRIVATE_PLATFORM_APIS := true
include $(BUILD_PACKAGE)
diff --git a/tests/src/com/android/providers/downloads/FakeSystemFacade.java b/tests/src/com/android/providers/downloads/FakeSystemFacade.java
index aa7b8af4..f381bd8a 100644
--- a/tests/src/com/android/providers/downloads/FakeSystemFacade.java
+++ b/tests/src/com/android/providers/downloads/FakeSystemFacade.java
@@ -1,14 +1,19 @@
package com.android.providers.downloads;
+import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED;
+import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING;
+
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import android.app.job.JobParameters;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
import android.net.Network;
+import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.net.NetworkInfo.DetailedState;
@@ -65,7 +70,7 @@ public class FakeSystemFacade implements SystemFacade {
}
@Override
- public Network getActiveNetwork(int uid, boolean ignoreBlocked) {
+ public Network getNetwork(JobParameters params) {
if (mActiveNetworkType == null) {
return null;
} else {
@@ -91,19 +96,20 @@ public class FakeSystemFacade implements SystemFacade {
} else {
final NetworkInfo info = new NetworkInfo(mActiveNetworkType, 0, null, null);
info.setDetailedState(DetailedState.CONNECTED, null, null);
- info.setRoaming(mIsRoaming);
return info;
}
}
@Override
- public boolean isNetworkMetered(Network network) {
- return mIsMetered;
- }
-
- @Override
- public boolean isActiveNetworkMeteredForUid(int uid) {
- return mIsMetered;
+ public NetworkCapabilities getNetworkCapabilities(Network network) {
+ if (mActiveNetworkType == null) {
+ return null;
+ } else {
+ final NetworkCapabilities caps = new NetworkCapabilities();
+ caps.setCapability(NET_CAPABILITY_NOT_METERED, !mIsMetered);
+ caps.setCapability(NET_CAPABILITY_NOT_ROAMING, !mIsRoaming);
+ return caps;
+ }
}
@Override
@@ -127,7 +133,7 @@ public class FakeSystemFacade implements SystemFacade {
}
@Override
- public boolean isCleartextTrafficPermitted(int uid) {
+ public boolean isCleartextTrafficPermitted(String packageName, String hostname) {
return mCleartextTrafficPermitted;
}
diff --git a/ui/Android.mk b/ui/Android.mk
index 9a545550..f63d7e3f 100644
--- a/ui/Android.mk
+++ b/ui/Android.mk
@@ -10,6 +10,8 @@ LOCAL_SRC_FILES := $(call all-java-files-under, src) \
../src/com/android/providers/downloads/RawDocumentsHelper.java
LOCAL_PACKAGE_NAME := DownloadProviderUi
+LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_CERTIFICATE := media
+LOCAL_PRIVILEGED_MODULE := true
include $(BUILD_PACKAGE)
diff --git a/ui/AndroidManifest.xml b/ui/AndroidManifest.xml
index fa795c9f..d08ec191 100644
--- a/ui/AndroidManifest.xml
+++ b/ui/AndroidManifest.xml
@@ -11,7 +11,8 @@
android:icon="@mipmap/ic_launcher_download"
android:hardwareAccelerated="true"
android:supportsRtl="true"
- android:requiredForAllUsers="true">
+ android:requiredForAllUsers="true"
+ android:usesCleartextTraffic="true">
<activity
android:name=".TrampolineActivity"
diff --git a/ui/CleanSpec.mk b/ui/CleanSpec.mk
new file mode 100644
index 00000000..9e8982bf
--- /dev/null
+++ b/ui/CleanSpec.mk
@@ -0,0 +1,47 @@
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# If you don't need to do a full clean build but would like to touch
+# a file or delete some intermediate files, add a clean step to the end
+# of the list. These steps will only be run once, if they haven't been
+# run before.
+#
+# E.g.:
+# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
+# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
+#
+# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
+# files that are missing or have been moved.
+#
+# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
+# Use $(OUT_DIR) to refer to the "out" directory.
+#
+# If you need to re-do something that's already mentioned, just copy
+# the command and add it to the bottom of the list. E.g., if a change
+# that you made last week required touching a file and a change you
+# made today requires touching the same file, just copy the old
+# touch step and add it to the end of the list.
+#
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+
+# For example:
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
+#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
+#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
+
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/DownloadProviderUi) \ No newline at end of file
diff --git a/ui/res/values-as/strings.xml b/ui/res/values-as/strings.xml
new file mode 100644
index 00000000..b89524a7
--- /dev/null
+++ b/ui/res/values-as/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="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>
+ <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="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="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_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="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="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-bs/strings.xml b/ui/res/values-bs/strings.xml
index c86fdf72..9b6e01bc 100644
--- a/ui/res/values-bs/strings.xml
+++ b/ui/res/values-bs/strings.xml
@@ -23,12 +23,12 @@
<string name="missing_title" msgid="830115697868833773">"&lt;Nepoznato&gt;"</string>
<string name="button_sort_by_size" msgid="7331549713691146251">"Poredaj po veličini"</string>
<string name="button_sort_by_date" msgid="8800842892684101528">"Poredaj po datumu"</string>
- <string name="download_queued" msgid="104973307780629904">"U redoslijedu"</string>
+ <string name="download_queued" msgid="104973307780629904">"U U redu čekanja"</string>
<string name="download_running" msgid="4656462962155580641">"U toku"</string>
<string name="download_success" msgid="7006048006543495236">"Završeno"</string>
<string name="download_error" msgid="8081329546008568251">"Neuspješno"</string>
<string name="dialog_title_not_available" msgid="5746317632356158515">"Nije bilo moguće preuzeti"</string>
- <string name="dialog_failed_body" msgid="587545111677064427">"Da li želite ponovo pokušati s preuzimanjem fajla kasnije ili je želite izbrisati s redoslijeda?"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"Želite li ponovo kasnije pokušati s preuzimanjem fajla ili ga želite izbrisati iz reda čekanja?"</string>
<string name="dialog_title_queued_body" msgid="6760681913815015219">"Fajl je u redu čekanja"</string>
<string name="dialog_queued_body" msgid="708552801635572720">"Fajl je u redu čekanja za kasnije preuzimanje tako da još nije dostupan."</string>
<string name="dialog_file_missing_body" msgid="3223012612774276284">"Nije moguće pronaći preuzetu datoteku."</string>
@@ -43,7 +43,7 @@
<string name="keep_queued_download" msgid="5144882786014818569">"Zadrži"</string>
<string name="cancel_running_download" msgid="5232704030969221112">"Otkaži"</string>
<string name="retry_download" msgid="7617100787922717912">"Pokušaj ponovo"</string>
- <string name="start_now_download" msgid="1564642872809509681">"Pokreni odmah"</string>
+ <string name="start_now_download" msgid="1564642872809509681">"Započni odmah"</string>
<string name="deselect_all" msgid="6348198946254776764">"Poništi odabir svih"</string>
<string name="select_all" msgid="634074918366265804">"Odaberi sve"</string>
<string name="selected_count" msgid="2101564570019753277">"Odabrano <xliff:g id="NUMBER">%1$d</xliff:g> od <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
diff --git a/ui/res/values-ca/strings.xml b/ui/res/values-ca/strings.xml
index 3892888a..b56b1a86 100644
--- a/ui/res/values-ca/strings.xml
+++ b/ui/res/values-ca/strings.xml
@@ -44,7 +44,7 @@
<string name="cancel_running_download" msgid="5232704030969221112">"Cancel·la"</string>
<string name="retry_download" msgid="7617100787922717912">"Torna-ho a provar"</string>
<string name="start_now_download" msgid="1564642872809509681">"Comença ara"</string>
- <string name="deselect_all" msgid="6348198946254776764">"Anul·la la selecció de tot"</string>
+ <string name="deselect_all" msgid="6348198946254776764">"Desselecciona-ho tot"</string>
<string name="select_all" msgid="634074918366265804">"Selecciona-ho tot"</string>
<string name="selected_count" msgid="2101564570019753277">"S\'han seleccionat <xliff:g id="NUMBER">%1$d</xliff:g> de <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
<string name="download_share_dialog" msgid="3355867339806448955">"Compart. mitjançant"</string>
diff --git a/ui/res/values-da/strings.xml b/ui/res/values-da/strings.xml
index 9bb52af1..be58a787 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">"Sorter efter størrelse"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"Sortér 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-en-rXC/strings.xml b/ui/res/values-en-rXC/strings.xml
index 94dc0759..2f6d255f 100644
--- a/ui/res/values-en-rXC/strings.xml
+++ b/ui/res/values-en-rXC/strings.xml
@@ -16,36 +16,36 @@
<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">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‏‏‎‎‏‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‎Downloads‎‏‎‎‏‎"</string>
- <string name="download_title_sorted_by_date" msgid="5898014492155434221">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‎‏‎Downloads - Sorted by date‎‏‎‎‏‎"</string>
- <string name="download_title_sorted_by_size" msgid="1417193166677094813">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‏‏‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‎‏‏‎‎‏‏‏‎‏‎Downloads - Sorted by size‎‏‎‎‏‎"</string>
- <string name="no_downloads" msgid="1029667411186146836">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‏‎‎‏‎‎‏‎‏‎‎‎‎‏‏‏‎‏‎‎‎‎‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‏‎‎‎No downloads.‎‏‎‎‏‎"</string>
- <string name="missing_title" msgid="830115697868833773">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎&lt;Unknown&gt;‎‏‎‎‏‎"</string>
- <string name="button_sort_by_size" msgid="7331549713691146251">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‏‎‏‎‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‎Sort by size‎‏‎‎‏‎"</string>
- <string name="button_sort_by_date" msgid="8800842892684101528">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎Sort by date‎‏‎‎‏‎"</string>
- <string name="download_queued" msgid="104973307780629904">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎‎‎‎Queued‎‏‎‎‏‎"</string>
- <string name="download_running" msgid="4656462962155580641">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‎‏‎‏‎‎‎‎‏‎‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎‎‏‎In progress‎‏‎‎‏‎"</string>
- <string name="download_success" msgid="7006048006543495236">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‏‎‏‎‎‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‎‎‎‏‎‎‎‏‎‎‎Complete‎‏‎‎‏‎"</string>
- <string name="download_error" msgid="8081329546008568251">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎Unsuccessful‎‏‎‎‏‎"</string>
- <string name="dialog_title_not_available" msgid="5746317632356158515">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‎‏‏‎‎‎‎‏‏‎‎‏‏‎Couldn\'t download‎‏‎‎‏‎"</string>
- <string name="dialog_failed_body" msgid="587545111677064427">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‏‏‎‎‎‎‎‏‏‏‎‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎Do you want to retry downloading the file later or delete it from the queue?‎‏‎‎‏‎"</string>
- <string name="dialog_title_queued_body" msgid="6760681913815015219">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‏‎‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‏‎‏‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‏‎File in queue‎‏‎‎‏‎"</string>
- <string name="dialog_queued_body" msgid="708552801635572720">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎This file is queued for future download so isn\'t available yet.‎‏‎‎‏‎"</string>
- <string name="dialog_file_missing_body" msgid="3223012612774276284">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‏‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‎‎‏‎‏‎‎‏‎‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‎‏‏‏‏‎‎‎Can\'t find the downloaded file.‎‏‎‎‏‎"</string>
- <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‏‎‏‎‏‏‎Can\'t finish download. There isn\'t enough space on external storage.‎‏‎‎‏‎"</string>
- <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎Can\'t finish download. There isn\'t enough space on internal download storage.‎‏‎‎‏‎"</string>
- <string name="dialog_cannot_resume" msgid="8664509751358983543">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‎‏‏‎‏‏‎‎‏‎‏‏‎‏‎‏‎‏‎‏‎‎‏‎‎‎‎‏‏‎‏‎‏‏‏‎‏‏‏‎Download was interrupted and can\'t be resumed.‎‏‎‎‏‎"</string>
- <string name="dialog_file_already_exists" msgid="8308563940663449590">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‎‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‎‎‏‎‎‏‎‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎Can\'t download. The destination file already exists.‎‏‎‎‏‎"</string>
- <string name="dialog_media_not_found" msgid="4468088418758018765">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‏‎‏‎‏‏‎‏‎‏‏‏‏‏‎‎‏‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‎Can\'t download. The external media isn\'t available.‎‏‎‎‏‎"</string>
- <string name="download_no_application_title" msgid="7024782176657362251">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‎‏‎‏‎‎‎‎‏‎‎‏‏‎‏‎‏‎‎‏‎‏‏‎Can\'t open file‎‏‎‎‏‎"</string>
- <string name="remove_download" msgid="6372920256257247857">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎‎‏‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‏‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎Remove‎‏‎‎‏‎"</string>
- <string name="delete_download" msgid="76629022653866471">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‏‎‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‏‏‏‎‎‏‏‏‎Delete‎‏‎‎‏‎"</string>
- <string name="keep_queued_download" msgid="5144882786014818569">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‏‎‎‏‎Keep‎‏‎‎‏‎"</string>
- <string name="cancel_running_download" msgid="5232704030969221112">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‎‏‎‏‏‎‎‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎Cancel‎‏‎‎‏‎"</string>
- <string name="retry_download" msgid="7617100787922717912">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‎‎‏‏‏‎‏‎‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‎‏‏‎‏‏‎‎‎‎Retry‎‏‎‎‏‎"</string>
- <string name="start_now_download" msgid="1564642872809509681">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‏‏‎‎‏‏‎‎‎‏‎Start now‎‏‎‎‏‎"</string>
- <string name="deselect_all" msgid="6348198946254776764">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‏‎‎‏‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎‎‏‏‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‎‎Deselect all‎‏‎‎‏‎"</string>
- <string name="select_all" msgid="634074918366265804">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‎Select all‎‏‎‎‏‎"</string>
- <string name="selected_count" msgid="2101564570019753277">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‎Selected ‎‏‎‎‏‏‎<xliff:g id="NUMBER">%1$d</xliff:g>‎‏‎‎‏‏‏‎ out of ‎‏‎‎‏‏‎<xliff:g id="TOTAL">%2$d</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
- <string name="download_share_dialog" msgid="3355867339806448955">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‎‏‎‎‏‎‎‏‎‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‎Share via‎‏‎‎‏‎"</string>
+ <string name="app_label" msgid="3070921713463294774">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‏‏‎‎‏‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‎Downloads‎‏‎‎‏‎"</string>
+ <string name="download_title_sorted_by_date" msgid="5898014492155434221">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‎‏‎Downloads - Sorted by date‎‏‎‎‏‎"</string>
+ <string name="download_title_sorted_by_size" msgid="1417193166677094813">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‏‏‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‎‏‏‎‎‏‏‏‎‏‎Downloads - Sorted by size‎‏‎‎‏‎"</string>
+ <string name="no_downloads" msgid="1029667411186146836">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‏‎‎‏‎‎‏‎‏‎‎‎‎‏‏‏‎‏‎‎‎‎‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‏‎‎‎No downloads.‎‏‎‎‏‎"</string>
+ <string name="missing_title" msgid="830115697868833773">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎&lt;Unknown&gt;‎‏‎‎‏‎"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‏‎‏‎‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‎Sort by size‎‏‎‎‏‎"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎Sort by date‎‏‎‎‏‎"</string>
+ <string name="download_queued" msgid="104973307780629904">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎‎‎‎Queued‎‏‎‎‏‎"</string>
+ <string name="download_running" msgid="4656462962155580641">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‎‏‎‏‎‎‎‎‏‎‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎‎‏‎In progress‎‏‎‎‏‎"</string>
+ <string name="download_success" msgid="7006048006543495236">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‏‎‏‎‎‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‎‎‎‏‎‎‎‏‎‎‎Complete‎‏‎‎‏‎"</string>
+ <string name="download_error" msgid="8081329546008568251">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎Unsuccessful‎‏‎‎‏‎"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‎‏‏‎‎‎‎‏‏‎‎‏‏‎Couldn\'t download‎‏‎‎‏‎"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‏‏‎‎‎‎‎‏‏‏‎‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎Do you want to retry downloading the file later or delete it from the queue?‎‏‎‎‏‎"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‏‎‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‏‎‏‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‏‎File in queue‎‏‎‎‏‎"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎This file is queued for future download so isn\'t available yet.‎‏‎‎‏‎"</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‏‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‎‎‏‎‏‎‎‏‎‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‎‏‏‏‏‎‎‎Can\'t find the downloaded file.‎‏‎‎‏‎"</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‏‎‏‎‏‏‎Can\'t finish download. There isn\'t enough space on external storage.‎‏‎‎‏‎"</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎Can\'t finish download. There isn\'t enough space on internal download storage.‎‏‎‎‏‎"</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‎‏‏‎‏‏‎‎‏‎‏‏‎‏‎‏‎‏‎‏‎‎‏‎‎‎‎‏‏‎‏‎‏‏‏‎‏‏‏‎Download was interrupted and can\'t be resumed.‎‏‎‎‏‎"</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‎‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‎‎‏‎‎‏‎‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎Can\'t download. The destination file already exists.‎‏‎‎‏‎"</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‏‎‏‎‏‏‎‏‎‏‏‏‏‏‎‎‏‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‎Can\'t download. The external media isn\'t available.‎‏‎‎‏‎"</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‎‏‎‏‎‎‎‎‏‎‎‏‏‎‏‎‏‎‎‏‎‏‏‎Can\'t open file‎‏‎‎‏‎"</string>
+ <string name="remove_download" msgid="6372920256257247857">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎‎‏‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‏‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎Remove‎‏‎‎‏‎"</string>
+ <string name="delete_download" msgid="76629022653866471">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‏‎‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‏‏‏‎‎‏‏‏‎Delete‎‏‎‎‏‎"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‏‎‎‏‎Keep‎‏‎‎‏‎"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‎‏‎‏‏‎‎‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎Cancel‎‏‎‎‏‎"</string>
+ <string name="retry_download" msgid="7617100787922717912">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‎‎‏‏‏‎‏‎‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‎‏‏‎‏‏‎‎‎‎Retry‎‏‎‎‏‎"</string>
+ <string name="start_now_download" msgid="1564642872809509681">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‏‏‎‎‏‏‎‎‎‏‎Start now‎‏‎‎‏‎"</string>
+ <string name="deselect_all" msgid="6348198946254776764">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‏‎‎‏‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎‎‏‏‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‎‎Deselect all‎‏‎‎‏‎"</string>
+ <string name="select_all" msgid="634074918366265804">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‎Select all‎‏‎‎‏‎"</string>
+ <string name="selected_count" msgid="2101564570019753277">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‎Selected ‎‏‎‎‏‏‎<xliff:g id="NUMBER">%1$d</xliff:g>‎‏‎‎‏‏‏‎ out of ‎‏‎‎‏‏‎<xliff:g id="TOTAL">%2$d</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+ <string name="download_share_dialog" msgid="3355867339806448955">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‎‏‎‎‏‎‎‏‎‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‎Share via‎‏‎‎‏‎"</string>
</resources>
diff --git a/ui/res/values-es/strings.xml b/ui/res/values-es/strings.xml
index c024fbe1..7bc4053b 100644
--- a/ui/res/values-es/strings.xml
+++ b/ui/res/values-es/strings.xml
@@ -25,7 +25,7 @@
<string name="button_sort_by_date" msgid="8800842892684101528">"Ordenar por fecha"</string>
<string name="download_queued" msgid="104973307780629904">"En cola"</string>
<string name="download_running" msgid="4656462962155580641">"En curso"</string>
- <string name="download_success" msgid="7006048006543495236">"Correcta"</string>
+ <string name="download_success" msgid="7006048006543495236">"Completado"</string>
<string name="download_error" msgid="8081329546008568251">"Incorrecta"</string>
<string name="dialog_title_not_available" msgid="5746317632356158515">"Error al descargar"</string>
<string name="dialog_failed_body" msgid="587545111677064427">"¿Quieres volver a intentar descargar el archivo más tarde o prefieres eliminarlo de la cola?"</string>
diff --git a/ui/res/values-fa/strings.xml b/ui/res/values-fa/strings.xml
index e78f900e..cc1373be 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 04a8d000..f5ba36d2 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-kk/strings.xml b/ui/res/values-kk/strings.xml
index 7ce4213f..e410ed6a 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>
@@ -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-ky/strings.xml b/ui/res/values-ky/strings.xml
index 7b153c69..701149ad 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-mr/strings.xml b/ui/res/values-mr/strings.xml
index 62b6389c..ba3b2cc2 100644
--- a/ui/res/values-mr/strings.xml
+++ b/ui/res/values-mr/strings.xml
@@ -28,7 +28,7 @@
<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_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>
@@ -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-my/strings.xml b/ui/res/values-my/strings.xml
index ba7bfcc5..af465d0d 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 143fa765..acd92b3e 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">"Sorter etter størrelse"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"Sortér 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-ne/strings.xml b/ui/res/values-ne/strings.xml
index 572c1d5c..314e6c3c 100644
--- a/ui/res/values-ne/strings.xml
+++ b/ui/res/values-ne/strings.xml
@@ -30,7 +30,7 @@
<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_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>
diff --git a/ui/res/values-or/strings.xml b/ui/res/values-or/strings.xml
new file mode 100644
index 00000000..c7a09650
--- /dev/null
+++ b/ui/res/values-or/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="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>
+ <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="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="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_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="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="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-te/strings.xml b/ui/res/values-te/strings.xml
index 737a7c8f..d16805b1 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 259b7927..da65f481 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">"Uriin ayon sa laki"</string>
- <string name="button_sort_by_date" msgid="8800842892684101528">"Uriin ayon sa petsa"</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="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 b83943a3..7b7438c3 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 bo‘yicha saralash"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"Hajmi asosida 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>