diff options
author | Steve Kondik <shade@chemlab.org> | 2013-02-12 22:43:59 -0800 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2013-02-12 22:43:59 -0800 |
commit | f41085fcf8a6078e1496cf2620ab5a4b7a084ac0 (patch) | |
tree | 44b5de0e8e5ea692fab6381df8625a4f2dbcd8aa | |
parent | 516f77f561e1388ae94fe1a26d2a31960074158a (diff) | |
parent | b0bb182a1b52b31ccf1ec5e0be82308ebb4857e2 (diff) | |
download | android_packages_providers_DownloadProvider-mr1.1-staging.tar.gz android_packages_providers_DownloadProvider-mr1.1-staging.tar.bz2 android_packages_providers_DownloadProvider-mr1.1-staging.zip |
Merge tag 'android-4.2.2_r1' of https://android.googlesource.com/platform/packages/providers/DownloadProvider into 1.1mr1.1-staging
Android 4.2.2 release 1
61 files changed, 1028 insertions, 547 deletions
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index ba7862a3..5d6d6ead 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Kry toegang tot alle stelselaflaaisels"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Laat die program toe om alle aflaaisels wat deur enige program op hierdie stelsel geïnisieer is, te sien en te wysig."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Ongetiteld>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" en <xliff:g id="NUMBER">%d</xliff:g> meer"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Aflaai voltooi."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Aflaai onsuksesvol."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Aflaaiselgrootte vereis Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Kanselleer"</string> <string name="button_start_now" msgid="792123674007840864">"Begin nou"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 leêr laai tans af"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> leêrs laai tans af"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 leêr wag tans"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> leêrs wag tans"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> oor"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Kan nie lêer oopmaak nie"</string> </resources> diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml index 9893dece..ce4811ad 100644 --- a/res/values-am/strings.xml +++ b/res/values-am/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"ሁሉንም የስርዓት ውርዶች ድረስ"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"መተግበሪያው በሥርዓቱ ላይ ባለ መተግበሪያ እንዲጀምር የተደረጉ አውርዶችን ለማየት እና ለማሻሻል ይፈቅድለታል::"</string> <string name="download_unknown_title" msgid="7015124071247271585">"<ርዕስ አልባ>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" እና <xliff:g id="NUMBER">%d</xliff:g> ተጨማሪ...."</string> <string name="notification_download_complete" msgid="5443563299253103667">"አውርድ ተጠናቋል::"</string> <string name="notification_download_failed" msgid="8612136111952014978">"አውርድ አልተሳካም።"</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"የአውርድ መጠን Wi-Fi ይጠይቃል"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"ይቅር"</string> <string name="button_start_now" msgid="792123674007840864">"አሁን ጀምር"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 ፋይል በማውረድ ላይ"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> ፋይሎች በማውረድ ላይ"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 ፋይል በመጠበቅ ላይ"</item> + <item quantity="other" msgid="549229034166062887">"<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> </resources> diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index eac5035b..9b29f6b7 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"الدخول إلى جميع تنزيلات النظام"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"للسماح للتطبيق بعرض وتعديل جميع التنزيلات التي بدأت من خلال أي تطبيق على النظام."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<بلا عنوان>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">"، "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" و<xliff:g id="NUMBER">%d</xliff:g> أخرى"</string> <string name="notification_download_complete" msgid="5443563299253103667">"اكتمل التنزيل."</string> <string name="notification_download_failed" msgid="8612136111952014978">"أخفق التنزيل."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"يتطلب حجم التنزيل شبكة Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"إلغاء"</string> <string name="button_start_now" msgid="792123674007840864">"البدء الآن"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"جارٍ تنزيل ملف واحد"</item> + <item quantity="other" msgid="9087228371320573153">"جارٍ تنزيل <xliff:g id="NUMBER">%d</xliff:g> من الملفات"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"هناك ملف واحد في وضع الانتظار"</item> + <item quantity="other" msgid="549229034166062887">"هناك <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> </resources> diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml index 7a9f9e47..ece2e91a 100644 --- a/res/values-be/strings.xml +++ b/res/values-be/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Доступ да ўсіх сістэмных спамповак"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Дазваляе прыкладанню праглядаць і змяняць усе спампоўкi, пачатыя любым сiстэмным прыкладаннем."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Без назвы>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" і яшчэ <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Спампаванне завершана"</string> <string name="notification_download_failed" msgid="8612136111952014978">"Не атрымалася спампаваць."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Для спампавання патрабуецца сетка Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Адмена"</string> <string name="button_start_now" msgid="792123674007840864">"Пачаць прама цяпер"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Спампоўваецца 1 файл"</item> + <item quantity="other" msgid="9087228371320573153">"Спампоўваюцца файлы: <xliff:g id="NUMBER">%d</xliff:g>"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 файл чакае"</item> + <item quantity="other" msgid="549229034166062887">"Файлы чакаюць: <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">"Не атрымлiваецца адкрыць файл"</string> </resources> diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index 0eef1a85..179c29e7 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Достъп до всички изтегляния в системата"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Разрешава на приложението да преглежда и променя всички изтегляния, започнати от всяко приложение в системата."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Без заглавие>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" и още <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Изтеглянето завърши."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Изтеглянето не е успешно."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Изисква се Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Отказ"</string> <string name="button_start_now" msgid="792123674007840864">"Стартиране сега"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 файл се изтегля"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> файла се изтеглят"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 файл се изчаква"</item> + <item quantity="other" msgid="549229034166062887">"<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> </resources> diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 6187b5c9..ae9dabf1 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Accedeix a totes les baixades del sistema"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permet que l\'aplicació consulti i modifiqui totes les baixades iniciades per una aplicació al sistema."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Sense títol>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" i <xliff:g id="NUMBER">%d</xliff:g> més"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Baixada completa."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Baixada incorrecta."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Mida baixad. req. Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Cancel·la"</string> <string name="button_start_now" msgid="792123674007840864">"Inicia ara"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"S\'està baixant 1 fitxer"</item> + <item quantity="other" msgid="9087228371320573153">"S\'estan baixant <xliff:g id="NUMBER">%d</xliff:g> fitxers"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"S\'està esperant 1 fitxer"</item> + <item quantity="other" msgid="549229034166062887">"S\'estan esperant <xliff:g id="NUMBER">%d</xliff:g> fitxers"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Temps restant: <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"No es pot obrir el fitxer"</string> </resources> diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index c0850a5a..7a1dd6d5 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Přístup ke všem systémovým stahováním"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Umožňuje aplikaci zobrazit a upravovat všechna stahování zahájená libovolnou aplikací v systému."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Bez názvu>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" a ještě <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Stahování dokončeno."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Stahování bylo neúspěšné."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Vzhledem k velikosti stahovaného souboru je vyžadováno připojení Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Zrušit"</string> <string name="button_start_now" msgid="792123674007840864">"Spustit"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Stahuje se 1 soubor"</item> + <item quantity="other" msgid="9087228371320573153">"Stahované soubory: <xliff:g id="NUMBER">%d</xliff:g>"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 čekající soubor"</item> + <item quantity="other" msgid="549229034166062887">"Čekající soubory: <xliff:g id="NUMBER">%d</xliff:g>"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> do stažení"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Soubor nelze otevřít"</string> </resources> diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index c7110862..a718871a 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -33,8 +33,6 @@ <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> <string name="download_unknown_title" msgid="7015124071247271585">"<Uden titel>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" og <xliff:g id="NUMBER">%d</xliff:g> mere"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Downloaden er fuldført."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Downloaden mislykkedes."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Downloaden kræver Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Annuller"</string> <string name="button_start_now" msgid="792123674007840864">"Begynd nu"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 fil downloades"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> filer downloades"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 fil venter"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> filer venter"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> tilbage"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Filen kan ikke åbnes"</string> </resources> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 7216c07e..ac39f692 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -18,12 +18,12 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_label" msgid="3658948994665187911">"Download-Manager"</string> <string name="permlab_downloadManager" msgid="7779544811202855500">"Auf Download-Manager zugreifen"</string> - <string name="permdesc_downloadManager" msgid="4237406545998908947">"Ermöglicht der App, auf den Download-Manager zuzugreifen, um Dateien herunterzuladen. Schadprogramme könnten damit Downloads unterbrechen und auf persönliche Informationen zugreifen."</string> + <string name="permdesc_downloadManager" msgid="4237406545998908947">"Ermöglicht der App, auf den Download-Manager zuzugreifen, um Dateien herunterzuladen. Schadprogramme könnten damit Downloads unterbrechen und auf personenbezogene Daten zugreifen."</string> <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Erweiterte Funktionen des Download-Managers."</string> - <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Ermöglicht der App, auf die erweiterten Funktionen des Download-Managers zuzugreifen. Schadprogramme könnten damit Downloads unterbrechen und auf persönliche Informationen zugreifen."</string> + <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Ermöglicht der App, auf die erweiterten Funktionen des Download-Managers zuzugreifen. Schadprogramme könnten damit Downloads unterbrechen und auf personenbezogene Daten zugreifen."</string> <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Benachrichtigungen zu Ladevorgängen senden"</string> <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Ermöglicht der App, Benachrichtigungen über abgeschlossene Downloads zu senden. Schadprogramme können dadurch andere Apps, die Dateien herunterladen, beeinträchtigen."</string> - <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Alle USB-Speicher-Downloads anz."</string> + <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Alle USB-Speicher-Downloads"</string> <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Alle Downloads an SD-Karte anzeigen"</string> <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Ermöglicht der App, alle Downloads auf die SD-Karte anzuzeigen, unabhängig davon, von welcher App diese heruntergeladen wurden"</string> <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Speicherplatz im Download-Cache reservieren"</string> @@ -33,10 +33,8 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Zugriff auf alle System-Downloads"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Ermöglicht der App, alle Downloads anzuzeigen und zu ändern, die von Apps auf dem System gestartet wurden"</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Unbenannt>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" und <xliff:g id="NUMBER">%d</xliff:g> weitere"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Download abgeschlossen"</string> - <string name="notification_download_failed" msgid="8612136111952014978">"Download fehlgeschlagen"</string> + <string name="notification_download_failed" msgid="8612136111952014978">"Fehler bei Download"</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Downloadgröße erfordert WLAN"</string> <string name="notification_paused_in_background" msgid="4328508073283591772">"Im Hintergrund pausiert"</string> <string name="wifi_required_title" msgid="1995971416871498179">"Download zu groß für Netzwerk dieses Betreibers."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Abbrechen"</string> <string name="button_start_now" msgid="792123674007840864">"Jetzt starten"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 Datei wird heruntergeladen..."</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> Dateien werden heruntergeladen..."</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 Datei steht aus."</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> Dateien stehen aus."</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Noch <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Datei kann nicht geöffnet werden."</string> </resources> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 6ab87da6..3fd01d6a 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Πρόσβαση σε όλα τα στοιχεία λήψης"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Επιτρέπει στην εφαρμογή την προβολή και τροποποίηση όλων των λήψεων που ξεκίνησαν από οποιαδήποτε εφαρμογή του συστήματος."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Χωρίς τίτλο>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" και <xliff:g id="NUMBER">%d</xliff:g> ακόμα"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Η λήψη ολοκληρώθηκε."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Ανεπιτυχής λήψη."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Η λήψη απαιτεί Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Ακύρωση"</string> <string name="button_start_now" msgid="792123674007840864">"Έναρξη τώρα"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Γίνεται λήψη 1 αρχείου"</item> + <item quantity="other" msgid="9087228371320573153">"Γίνεται λήψη <xliff:g id="NUMBER">%d</xliff:g> αρχείων"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 αρχείο σε αναμονή"</item> + <item quantity="other" msgid="549229034166062887">"<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> </resources> diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 4c9630c3..72a171a2 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -33,8 +33,6 @@ <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">"<Untitled>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" and <xliff:g id="NUMBER">%d</xliff:g> more"</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> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Cancel"</string> <string name="button_start_now" msgid="792123674007840864">"Start now"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 file downloading"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> files downloading"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 file waiting"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> files 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> </resources> diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 422b7443..68b6a562 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Acceder a todas las descargas del sistema"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permite que la aplicación vea y modifique las descargas que inició cualquier aplicación del sistema."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Sin título>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" y <xliff:g id="NUMBER">%d</xliff:g> más"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Se completó la descarga."</string> <string name="notification_download_failed" msgid="8612136111952014978">"No se pudo completar la descarga."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Tamaño requiere Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Cancelar"</string> <string name="button_start_now" msgid="792123674007840864">"Comenzar ahora"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Descargando 1 archivo"</item> + <item quantity="other" msgid="9087228371320573153">"Descargando <xliff:g id="NUMBER">%d</xliff:g> archivos"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 archivo en espera"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> archivos en espera"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> restantes"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"No se puede abrir el archivo."</string> </resources> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 95594a44..3bdbfe06 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Acceso a todas las descargas del sistema"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permite que la aplicación vea y modifique todas las descargas iniciadas por cualquier aplicación del sistema."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Sin título>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" y <xliff:g id="NUMBER">%d</xliff:g> más"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Descarga completada"</string> <string name="notification_download_failed" msgid="8612136111952014978">"Descarga incorrecta"</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"La descarga requiere Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Cancelar"</string> <string name="button_start_now" msgid="792123674007840864">"Empezar ahora"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Descargando 1 archivo"</item> + <item quantity="other" msgid="9087228371320573153">"Descargando <xliff:g id="NUMBER">%d</xliff:g> archivos"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 archivo en espera"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> archivos en espera"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Tiempo restante: <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Error al abrir el archivo"</string> </resources> diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml index 39812379..08ce2627 100644 --- a/res/values-et/strings.xml +++ b/res/values-et/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Juurdepääs kõigile süsteemi allalaadimistele"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Võimaldab rakendusel vaadata ja muuta kõiki allalaadimisi, mille algatas süsteemis olev mis tahes rakendus."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Pealkirjata>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" ja <xliff:g id="NUMBER">%d</xliff:g> veel"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Allalaadimine on lõpetatud."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Allalaadimine ebaõnnestus."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Allalaad. on vaja WiFit."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Tühista"</string> <string name="button_start_now" msgid="792123674007840864">"Alusta nüüd"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 faili allalaadimine"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> faili allalaadimine"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 fail on ootel"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> faili on ootel"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Jäänud: <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Faili ei saa avada"</string> </resources> diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index d8ccb116..2c911822 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"دسترسی به همه دانلودهای سیستم"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"به برنامهٔ کاربردی اجازه میدهد تمام دانلودهای شروع شده توسط هر برنامهای را در سیستم مشاهده کرده و تغییر دهد."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<بدون عنوان>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">"، "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" و <xliff:g id="NUMBER">%d</xliff:g> بیشتر"</string> <string name="notification_download_complete" msgid="5443563299253103667">"دانلود کامل شد."</string> <string name="notification_download_failed" msgid="8612136111952014978">"دانلود ناموفق بود."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"برای این حجم از دانلود به Wi-Fi نیاز است."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"لغو"</string> <string name="button_start_now" msgid="792123674007840864">"اکنون شروع"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"۱ فایل در حال دانلود"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> فایل در حال دانلود"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"۱ فایل در انتظار"</item> + <item quantity="other" msgid="549229034166062887">"<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> </resources> diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index 605b0df2..d0d0aaa5 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Käytä kaikkia järjestelmän latauksia"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Antaa sovelluksen tarkastella ja muokata kaikkia minkä tahansa järjestelmän sovelluksen käynnistämiä latauksia."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Nimetön>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" ja <xliff:g id="NUMBER">%d</xliff:g> muuta"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Lataus valmis."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Lataus epäonnistui."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Lataa wifi-yhteydellä"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Peruuta"</string> <string name="button_start_now" msgid="792123674007840864">"Aloita nyt"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 tiedostoa ladataan"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> tiedostoa ladataan"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 tiedosto odottaa"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> tiedostoa odottaa"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> jäljellä"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Tiedostoa ei voi avata"</string> </resources> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index e41abc2b..c0333e73 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Accéder à tous les téléchargements système"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permet à l\'application d\'afficher et de modifier tous les téléchargements initiés par n\'importe quelle application du système."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Sans_titre>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" et <xliff:g id="NUMBER">%d</xliff:g> autres"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Téléchargement terminé."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Échec du téléchargement."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Taille du fichier requiert Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Annuler"</string> <string name="button_start_now" msgid="792123674007840864">"Commencer"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Téléchargement d\'un fichier"</item> + <item quantity="other" msgid="9087228371320573153">"Téléchargement de <xliff:g id="NUMBER">%d</xliff:g> fichiers"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 fichier en attente"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> fichiers en attente"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Temps restant : <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Impossible d\'ouvrir le fichier."</string> </resources> diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 66d89eb6..3c701ebe 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -27,14 +27,12 @@ <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="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">"<शीर्षक-रहित>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" और <xliff:g id="NUMBER">%d</xliff:g> अधिक"</string> <string name="notification_download_complete" msgid="5443563299253103667">"डाउनलोड पूर्ण."</string> <string name="notification_download_failed" msgid="8612136111952014978">"डाउनलोड विफल."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"डाउनलोड आकार हेतु Wi-Fi आवश्यक."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"रद्द करें"</string> <string name="button_start_now" msgid="792123674007840864">"अब प्रारंभ करें"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 फ़ाइल डाउनलोड हो रही है"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> फ़ाइलें डाउनलोड हो रही हैं"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 फ़ाइल प्रतीक्षा में है"</item> + <item quantity="other" msgid="549229034166062887">"<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> </resources> diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index eddac6a6..d436c1a3 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Pristup svim preuzimanjima sustava"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Omogućuje aplikaciji prikaz i izmjenu svih preuzimanja koja je pokrenula bilo koja aplikacija u sustavu."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Bez naslova>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" i još <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Preuzimanje je dovršeno."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Preuzimanje nije uspjelo."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Veličina zahtijeva Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Odustani"</string> <string name="button_start_now" msgid="792123674007840864">"Započni sad"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Preuzimanje 1 datoteke"</item> + <item quantity="other" msgid="9087228371320573153">"Preuzimanje datoteka (<xliff:g id="NUMBER">%d</xliff:g>)"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 datoteka na čekanju"</item> + <item quantity="other" msgid="549229034166062887">"Datoteke na čekanju (<xliff:g id="NUMBER">%d</xliff:g>)"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Još <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Datoteka se ne može otvoriti"</string> </resources> diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index f37b4c0d..3fcad47c 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Hozzáférés a rendszer összes letöltéséhez"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Az alkalmazás megnézheti és módosíthatja a rendszer bármelyik alkalmazása által kezdeményezett letöltést."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Névtelen>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" és további <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"A letöltés befejeződött."</string> <string name="notification_download_failed" msgid="8612136111952014978">"A letöltés nem sikerült."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"A letöltéshez Wi-Fi kell"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Mégse"</string> <string name="button_start_now" msgid="792123674007840864">"Indítás most"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 fájl letöltése folyamatban"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> fájl letöltése folyamatban"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 fájl várakozik"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> fájl várakozik"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> van hátra"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"A fájlt nem lehet megnyitni."</string> </resources> diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index 75dad7f1..8ef68cd7 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Akses semua unduhan sistem"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Mengizinkan apl melihat dan memodifikasi semua unduhan yang dimulai oleh apl apa pun pada sistem."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Tanpa judul>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" dan <xliff:g id="NUMBER">%d</xliff:g> lainnya"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Unduhan selesai."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Unduhan gagal."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Ukuran unduhan memerlukan Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Batal"</string> <string name="button_start_now" msgid="792123674007840864">"Mulai sekarang"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Mengunduh 1 file"</item> + <item quantity="other" msgid="9087228371320573153">"Mengunduh <xliff:g id="NUMBER">%d</xliff:g> file"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 file menunggu"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> file menunggu"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> lagi"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Tidak dapat membuka file"</string> </resources> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index bffa21ec..05eef883 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Accesso a tutti i dowload di sistema"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Consente all\'applicazione di visualizzare e modificare tutti i download avviati da qualsiasi applicazione sul sistema."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Senza nome>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" e <xliff:g id="NUMBER">%d</xliff:g> altri"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Download completato."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Download non riuscito."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Wi-Fi richiesto per download"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Annulla"</string> <string name="button_start_now" msgid="792123674007840864">"Avvia adesso"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 file in download"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> file in download"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 file in attesa"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> file in attesa"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> rimanenti"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Impossibile aprire il file"</string> </resources> diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 132ead4e..1a05a6bf 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"גישה לכל הורדות המערכת"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"מאפשר ליישום להציג ולשנות את כל ההורדות שהופעלו על ידי יישום כלשהו במערכת."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<ללא כותרת>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" ועוד <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"ההורדה הסתיימה."</string> <string name="notification_download_failed" msgid="8612136111952014978">"ההורדה נכשלה."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"גודל ההורדה מחייב חיבור Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"ביטול"</string> <string name="button_start_now" msgid="792123674007840864">"התחל כעת"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"מתבצעת הורדה של קובץ אחד"</item> + <item quantity="other" msgid="9087228371320573153">"מתבצעת הורדה של <xliff:g id="NUMBER">%d</xliff:g> קבצים"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"קובץ אחד ממתין"</item> + <item quantity="other" msgid="549229034166062887">"<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> </resources> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index b6a3e7ea..55101486 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"すべてのシステムダウンロードにアクセス"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"システム上の任意のアプリにより開始されたすべてのダウンロードの表示と変更をアプリに許可します。"</string> <string name="download_unknown_title" msgid="7015124071247271585">"<無題>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">"、 "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" その他<xliff:g id="NUMBER">%d</xliff:g>件"</string> <string name="notification_download_complete" msgid="5443563299253103667">"ダウンロードが完了しました。"</string> <string name="notification_download_failed" msgid="8612136111952014978">"ダウンロードできませんでした。"</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Wi-Fi必須のサイズです。"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"キャンセル"</string> <string name="button_start_now" msgid="792123674007840864">"今すぐ開始"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1ファイルをダウンロード中"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g>ファイルをダウンロード中"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1ファイルがダウンロード待ち"</item> + <item quantity="other" msgid="549229034166062887">"<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> </resources> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 8dbdf61c..df66b3eb 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"모든 시스템 다운로드에 액세스"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"시스템에 설치된 모든 앱에서 다운로드한 항목을 앱이 보고 수정할 수 있도록 허용합니다."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<제목 없음>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" 외 <xliff:g id="NUMBER">%d</xliff:g>개"</string> <string name="notification_download_complete" msgid="5443563299253103667">"다운로드가 완료되었습니다."</string> <string name="notification_download_failed" msgid="8612136111952014978">"다운로드에 실패했습니다."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"크기가 너무 커서 Wi-Fi로 다운로드해야 합니다."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"취소"</string> <string name="button_start_now" msgid="792123674007840864">"지금 시작"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1개의 파일 다운로드 중"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g>개의 파일 다운로드 중"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1개의 파일 대기 중"</item> + <item quantity="other" msgid="549229034166062887">"<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> </resources> diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index df083475..9c3318de 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Pasiekti visus sistemos atsisiuntimus"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Leidžiama programai žiūrėti ir keisti visus atsisiuntimus, pradėtus naudojant bet kokią sistemos programą."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Be pavadinimo>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" ir dar <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Atsisiuntimas baigtas."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Atsisiuntimas nesėkmingas."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Did. f., reikia „Wi-Fi“."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Atšaukti"</string> <string name="button_start_now" msgid="792123674007840864">"Pradėti dabar"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Atsisiunčiama failų: 1"</item> + <item quantity="other" msgid="9087228371320573153">"Atsisiunčiama failų: <xliff:g id="NUMBER">%d</xliff:g>"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"Laukiama failų: 1"</item> + <item quantity="other" msgid="549229034166062887">"Laukiama failų: <xliff:g id="NUMBER">%d</xliff:g>"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Liko: <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Nepavyksta atidaryti failo"</string> </resources> diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 322c2819..47c0be20 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Piekļuve visām sistēmas lejupielādēm"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Ļauj lietotnei skatīt un pārveidot visas lejupielādes, kas veiktas, izmantojot jebkuru sistēmas lietotni."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Bez nosaukuma>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" un vēl <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Lejupielāde ir pabeigta."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Lejupielāde neizdevās."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Lejupiel. nepiec. Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Atcelt"</string> <string name="button_start_now" msgid="792123674007840864">"Sākt tūlīt"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Notiek 1 faila lejupielāde"</item> + <item quantity="other" msgid="9087228371320573153">"Notiek <xliff:g id="NUMBER">%d</xliff:g> failu lejupielāde"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"Rindā: 1 fails"</item> + <item quantity="other" msgid="549229034166062887">"Rindā: <xliff:g id="NUMBER">%d</xliff:g> faili"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Atlikušais laiks: <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Nevar atvērt failu"</string> </resources> diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml index fb92ac78..3d39b8bd 100644 --- a/res/values-ms/strings.xml +++ b/res/values-ms/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Mengakses semua muat turun sistem"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Membenarkan aplikasi untuk melihat dan mengubah suai semua muat turun yang dimulakan oleh mana-mana aplikasi pada sistem."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Tidak bertajuk>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" dan <xliff:g id="NUMBER">%d</xliff:g> lagi"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Muat turun selesai."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Muat turun tidak berjaya."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Saiz m.trn perlukn Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Batal"</string> <string name="button_start_now" msgid="792123674007840864">"Mulakan sekarang"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 fail sedang dimuat turun"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> fail sedang dimuat turun"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 fail sedang menunggu"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> fail sedang menunggu"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> tinggal"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Tidak dapat membuka fail"</string> </resources> diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 985e9f7d..f621af69 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -23,18 +23,16 @@ <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Gir appen adgang til avanserte funksjoner i nedlastingsbehandlingen. Skadelig programvare kan bruke dette til å forstyrre nedlastinger og få tilgang til privat informasjon."</string> <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Sende nedlastingsvarslinger"</string> <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Gir appen tillatelse til å sende varslinger om fullførte nedlastinger. Skadelig programvare kan bruke dette til å forstyrre andre programmer som laster ned filer."</string> - <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Vis nedl. til USB-lagring"</string> - <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Vis alle nedlastinger til minnekort"</string> + <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Se nedlastinger til USB-lagr."</string> + <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Se alle nedlastinger til minnekort"</string> <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Gir appen tilgang til alle nedlastinger på SD-kortet, uavhengig av hvilken app som lastet dem ned."</string> - <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reserver lagringsplass i nedlastingsbufferen"</string> + <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reservere lagringsplass i nedlastingsbufferen"</string> <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Gir appen tillatelse til å laste ned filer til nedlastingsbufferen, slik at de ikke slettes automatisk når nedlastingsbehandlingen trenger mer lagringsplass."</string> - <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"last ned filer uten varsling"</string> + <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"laste ned filer uten varsling"</string> <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Gir appen tillatelse til å laste ned filer via nedlastingsbehandlingen uten at brukeren varsles."</string> - <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Tilgang til alle systemnedlastinger"</string> + <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Se alle systemnedlastinger"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Gir appen tillatelse til å se og endre alle nedlastinger uansett hvilken systemapp som har startet nedlastingene."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Uten navn>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" og <xliff:g id="NUMBER">%d</xliff:g> til"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Nedlasting fullført."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Nedlasting mislyktes."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Krever Wi-Fi pga. størr."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Avbryt"</string> <string name="button_start_now" msgid="792123674007840864">"Start nå"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 fil lastes ned"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> filer lastes ned"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 fil venter"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> filer venter"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> gjenstår"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Kan ikke åpne filen"</string> </resources> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index b01f1a4c..86cc1d6a 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Toegang geven tot alle systeemdownloads"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Hiermee kan de app alle downloads bekijken en wijzigen die door een systeem-app zijn gestart."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Zonder titel>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" en nog <xliff:g id="NUMBER">%d</xliff:g> meer"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Downloaden is voltooid."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Downloaden is mislukt."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Wi-Fi vereist voor download"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Annuleren"</string> <string name="button_start_now" msgid="792123674007840864">"Nu starten"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Er wordt 1 bestand gedownload"</item> + <item quantity="other" msgid="9087228371320573153">"Er worden <xliff:g id="NUMBER">%d</xliff:g> bestanden gedownload"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 bestand in de wachtrij"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> bestanden in de wachtrij"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> resterend"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Kan bestand niet openen"</string> </resources> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 5f15f993..a02ef5c5 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Dostęp do wszystkich pobranych pozycji w systemie"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Zezwala aplikacji na wyświetlanie i modyfikowanie wszystkich plików pobranych w dowolnej aplikacji w systemie."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Bez nazwy>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" i inne (<xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Pobieranie ukończone."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Pobranie nie powiodło się."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Pobieranie wymaga Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Anuluj"</string> <string name="button_start_now" msgid="792123674007840864">"Rozpocznij teraz"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Pobieram 1 plik"</item> + <item quantity="other" msgid="9087228371320573153">"Pobieram <xliff:g id="NUMBER">%d</xliff:g> pliki(ów)"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"Czeka 1 plik"</item> + <item quantity="other" msgid="549229034166062887">"Oczekujące pliki: <xliff:g id="NUMBER">%d</xliff:g>"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Pozostało: <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Nie można otworzyć pliku"</string> </resources> diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 4d22341e..9f9869dc 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Aceder a todas as transferências do sistema"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permite que a aplicação veja e modifique todas as transferências iniciadas por qualquer aplicação no sistema."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Sem nome>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" e mais <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Transferência concluída."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Falha na transferência."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Tam. transf. exige wifi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Cancelar"</string> <string name="button_start_now" msgid="792123674007840864">"Começar agora"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 ficheiro a ser transferido"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> ficheiros a serem transferidos"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 ficheiro em espera"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> ficheiros em espera"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Faltam <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Não é possível abrir o ficheiro"</string> </resources> diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index d567fd8e..f4b47071 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Acessar todos os downloads do sistema"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permite que o aplicativo visualize e modifique todos os downloads iniciados por qualquer aplicativo no sistema."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Sem título>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" e <xliff:g id="NUMBER">%d</xliff:g> mais"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Download concluído."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Falha no download."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"O tamanho do download requer Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Cancelar"</string> <string name="button_start_now" msgid="792123674007840864">"Iniciar agora"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Fazendo download de 1 arquivo"</item> + <item quantity="other" msgid="9087228371320573153">"Fazendo download de <xliff:g id="NUMBER">%d</xliff:g> arquivos"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 arquivo em espera"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> arquivos em espera"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> restantes"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Não é possível abrir o arquivo"</string> </resources> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 78c3692b..2bd33c95 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Accesaţi toate descărcările din sistem"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permite aplicaţiei să vizualizeze şi să modifice toate descărcările iniţiate de orice aplicaţie din sistem."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Fără titlu>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" şi încă <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Descărcare finalizată."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Descărcare nereuşită."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Dimen. desc. nec. Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Anulaţi"</string> <string name="button_start_now" msgid="792123674007840864">"Începeţi acum"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Se descarcă un fişier"</item> + <item quantity="other" msgid="9087228371320573153">"Se descarcă <xliff:g id="NUMBER">%d</xliff:g> (de) fişiere"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"Un fişier în aşteptare"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> (de) fişiere în aşteptare"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Timp rămas: <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Fişierul nu poate fi deschis"</string> </resources> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index af380780..8e20cf3a 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Доступ ко всем загрузкам"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Приложение сможет открывать и изменять загрузки независимо от того, через какое ПО они были загружены."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<без названия>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" и ещё <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Загрузка завершена."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Не удалось загрузить файл."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Загрузка только по Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Отмена"</string> <string name="button_start_now" msgid="792123674007840864">"Запустить"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Загрузка 1 файла…"</item> + <item quantity="other" msgid="9087228371320573153">"Загрузка <xliff:g id="NUMBER">%d</xliff:g> файлов…"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"Ожидается загрузка 1 файла"</item> + <item quantity="other" msgid="549229034166062887">"Ожидается загрузка <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> </resources> diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 78bd63e9..1bb1b5e3 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Prístup ku všetkým systémovým prevzatiam"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Umožňuje aplikácii zobraziť a upravovať všetky preberania spustené ľubovoľnou aplikáciou v systéme."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Bez názvu>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" a ďalšie (<xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Preberanie dokončené."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Preberanie bolo neúspešné."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Vzhľadom na veľkosť preberaného súboru sa vyžaduje pripojenie Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Zrušiť"</string> <string name="button_start_now" msgid="792123674007840864">"Spustiť"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Preberá sa 1 súbor"</item> + <item quantity="other" msgid="9087228371320573153">"Počet preberaných súborov: <xliff:g id="NUMBER">%d</xliff:g>"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 čakajúci súbor"</item> + <item quantity="other" msgid="549229034166062887">"Počet čakajúcich súborov: <xliff:g id="NUMBER">%d</xliff:g>"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Zostáva: <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Súbor sa nepodarilo otvoriť"</string> </resources> diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index 37d226c8..90f766b1 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Dostop do vseh sistemskih prenosov"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Dovoli programu prikaz in spreminjanje vseh prenosov, ki jih je začel poljubni program v sistemu."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Brez naslova>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" in dodatnih <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Prenos je končan."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Prenos ni uspel."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Zahtev. je povez. Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Prekliči"</string> <string name="button_start_now" msgid="792123674007840864">"Začni zdaj"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Poteka prenos 1 datoteke"</item> + <item quantity="other" msgid="9087228371320573153">"Poteka prenos toliko datotek: <xliff:g id="NUMBER">%d</xliff:g>"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"Na čakanju je 1 datoteka"</item> + <item quantity="other" msgid="549229034166062887">"Št. datotek na čakanju: <xliff:g id="NUMBER">%d</xliff:g>"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"Še <xliff:g id="DURATION">%s</xliff:g>"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Datoteke ni mogoče odpreti"</string> </resources> diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index b9636962..b63d417f 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Приступи свим системским преузимањима"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Омогућава апликацији да прегледа и мења сва преузимања која је покренула било која апликација у систему."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Без наслова>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" и још <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Преузимање је завршено."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Преузимање није успело."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Величина ставке захтева Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Откажи"</string> <string name="button_start_now" msgid="792123674007840864">"Започни одмах"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Преузима се 1 датотека"</item> + <item quantity="other" msgid="9087228371320573153">"Преузимају се датотеке (<xliff:g id="NUMBER">%d</xliff:g>)"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"Чека се 1 датотека"</item> + <item quantity="other" msgid="549229034166062887">"Чекају се датотеке (<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> </resources> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index e9b0852b..927de7b5 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Åtkomst till alla hämtade filer i systemet"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Tillåter att appen visar och ändrar alla hämtningar som initieras av en app i systemet."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Okänd>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" och <xliff:g id="NUMBER">%d</xliff:g> till"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Hämtningen har slutförts."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Det gick inte att hämta."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Hämtningen kräver Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Avbryt"</string> <string name="button_start_now" msgid="792123674007840864">"Starta nu"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 fil hämtas"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> filer hämtas"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 fil väntar"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> filer väntar"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> återstår"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Det går inte att öppna filen"</string> </resources> diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index 3fcf9c04..89ea1a11 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Fikia vipakuzi vyote vya mfumo"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Inaruhusu programu kuona na kurekebisha vipakuzi vyote vilivyoanzishwa na programu yoyote kwenye mfumo."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Haina Kichwa>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" na <xliff:g id="NUMBER">%d</xliff:g> zaidi"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Upakuaji umekamilika"</string> <string name="notification_download_failed" msgid="8612136111952014978">"Kupakua hakujafaulu."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Ukubwa wa kipakuzi uhitaji Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Ghairi"</string> <string name="button_start_now" msgid="792123674007840864">"Anza sasa"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Faili 1 inapakua"</item> + <item quantity="other" msgid="9087228371320573153">"Faili <xliff:g id="NUMBER">%d</xliff:g> zinapakua"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"Faili 1 inasubiri"</item> + <item quantity="other" msgid="549229034166062887">"Faili <xliff:g id="NUMBER">%d</xliff:g> zinasubiri"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> zinazosalia"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Haiwezi kufungua faili"</string> </resources> diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index b5be9052..3f19fb60 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"เข้าถึงดาวน์โหลดทั้งหมดของระบบ"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"อนุญาตให้แอปพลิเคชันนี้ดูและแก้ไขรายการดาวน์โหลดทั้งหมดของทุกแอปพลิเคชันในระบบ"</string> <string name="download_unknown_title" msgid="7015124071247271585">"<ไม่มีชื่อ>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" และอีก <xliff:g id="NUMBER">%d</xliff:g> รายการ"</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">"ต้องใช้ WiFi ดาวน์โหลด"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"ยกเลิก"</string> <string name="button_start_now" msgid="792123674007840864">"เริ่มต้นเดี๋ยวนี้"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"กำลังดาวน์โหลด 1 ไฟล์"</item> + <item quantity="other" msgid="9087228371320573153">"กำลังดาวน์โหลด <xliff:g id="NUMBER">%d</xliff:g> ไฟล์"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"กำลังรอ 1 ไฟล์"</item> + <item quantity="other" msgid="549229034166062887">"กำลังรอ <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> </resources> diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index f4d970de..1d19dc24 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"I-access ang lahat ng mga pag-download ng system"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Pinapayagan ang app na tingnan at baguhin ang lahat ng download na sinimulan ng anumang app sa system."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Walang pamagat>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" at <xliff:g id="NUMBER">%d</xliff:g> pa"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Kumpleto na ang download."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Hindi matagumpay ang pag-download."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Kailangan ng laki ng download ng Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Kanselahin"</string> <string name="button_start_now" msgid="792123674007840864">"Magsimula ngayon"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 file ang dina-download"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> (na) file ang dina-download"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 file ang hinihintay"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> (na) file ang hinihintay"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> ang natitira"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Hindi mabuksan ang file"</string> </resources> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 66cb2ab3..915eb758 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Tüm sistem indirmelerine erişim"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Uygulamaya, sistemdeki herhangi bir uygulama tarafından başlatılan tüm indirme işlemlerini görüntüleme ve değiştirme izni verir."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Adsız>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" ve <xliff:g id="NUMBER">%d</xliff:g> adet daha"</string> <string name="notification_download_complete" msgid="5443563299253103667">"İndirme işlemi tamamlandı."</string> <string name="notification_download_failed" msgid="8612136111952014978">"İndirme işlemi başarısız oldu."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"İndirme boyutu Kablosuz bağlantı gerektiriyor."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"İptal"</string> <string name="button_start_now" msgid="792123674007840864">"Şimdi başlat"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="PERCENT">%%</xliff:g><xliff:g id="NUMBER">%d</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 dosya indiriliyor"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> dosya indiriliyor"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 dosya bekliyor"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> dosya bekliyor"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> kaldı"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Dosya açılamıyor"</string> </resources> diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 08a703f2..94b4a71a 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Отримувати доступ до всіх завантажень у системі"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Дозволяє програмі переглядати та змінювати всі завантаження, ініційовані будь-якою програмою в системі."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Без назви>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" і ще <xliff:g id="NUMBER">%d</xliff:g>"</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">"Для завант.потрібен WiFi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Скасувати"</string> <string name="button_start_now" msgid="792123674007840864">"Почати зараз"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Завантажується 1 файл"</item> + <item quantity="other" msgid="9087228371320573153">"Завантажуються файли: <xliff:g id="NUMBER">%d</xliff:g>"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"Очікує 1 файл"</item> + <item quantity="other" msgid="549229034166062887">"Очікують файли: <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> </resources> diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index ff6aeb22..d73ba6cc 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Truy cập tất cả các bản tải xuống trong hệ thống"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Cho phép ứng dụng xem và sửa đổi tất cả các bản tải xuống được khởi tạo bởi bất kỳ ứng dụng nào trên hệ thống."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Không có tiêu đề>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" và <xliff:g id="NUMBER">%d</xliff:g> mục khác"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Tải xuống hoàn tất."</string> <string name="notification_download_failed" msgid="8612136111952014978">"Tải xuống không thành công."</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Yêu cầu Wi-Fi."</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Hủy"</string> <string name="button_start_now" msgid="792123674007840864">"Bắt đầu ngay bây giờ"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"Đang tải xuống 1 tệp"</item> + <item quantity="other" msgid="9087228371320573153">"Đang tải xuống <xliff:g id="NUMBER">%d</xliff:g> tệp"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 tệp đang chờ tải xuống"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> tệp đang chờ tải xuống"</item> + </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> </resources> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 40681fcc..8345823d 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"访问所有系统下载内容"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"允许该应用查看和修改系统上的任意应用下载的所有内容。"</string> <string name="download_unknown_title" msgid="7015124071247271585">"<未命名>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" 还有 <xliff:g id="NUMBER">%d</xliff:g> 项"</string> <string name="notification_download_complete" msgid="5443563299253103667">"下载已完成。"</string> <string name="notification_download_failed" msgid="8612136111952014978">"下载失败。"</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"文件过大,需要通过 Wi-Fi 下载。"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"取消"</string> <string name="button_start_now" msgid="792123674007840864">"立即开始"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"正在下载 1 个文件"</item> + <item quantity="other" msgid="9087228371320573153">"正在下载 <xliff:g id="NUMBER">%d</xliff:g> 个文件"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"正在等待下载 1 个文件"</item> + <item quantity="other" msgid="549229034166062887">"正在等待下载 <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> </resources> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 1735e4dc..15e2ccba 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"存取所有系統下載內容"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"允許應用程式檢視及修改系統上任一應用程式下載的所有內容。"</string> <string name="download_unknown_title" msgid="7015124071247271585">"<未命名>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" 以及其他 <xliff:g id="NUMBER">%d</xliff:g> 個"</string> <string name="notification_download_complete" msgid="5443563299253103667">"下載完成。"</string> <string name="notification_download_failed" msgid="8612136111952014978">"下載失敗。"</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"這個檔案較大,需要透過 Wi-Fi 下載。"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"取消"</string> <string name="button_start_now" msgid="792123674007840864">"立即開始"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"正在下載 1 個檔案"</item> + <item quantity="other" msgid="9087228371320573153">"正在下載 <xliff:g id="NUMBER">%d</xliff:g> 個檔案"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"正在等待下載 1 個檔案"</item> + <item quantity="other" msgid="549229034166062887">"正在等待下載 <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> </resources> diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml index 04962dc3..07bec1c7 100644 --- a/res/values-zu/strings.xml +++ b/res/values-zu/strings.xml @@ -33,8 +33,6 @@ <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Finyelela kuko konke ukulanda kwesistimu"</string> <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"vumela insiza ukuthi ibone iphinde iguqule konke okulayishiwe okuqalwe insiza ekwisistimu."</string> <string name="download_unknown_title" msgid="7015124071247271585">"<Akunasihloko>"</string> - <string name="notification_filename_separator" msgid="7147189522857807618">", "</string> - <string name="notification_filename_extras" msgid="5549729917695688191">" nokungu-<xliff:g id="NUMBER">%d</xliff:g> okungaphezulu"</string> <string name="notification_download_complete" msgid="5443563299253103667">"Ukulayisha ungenisa kuqedile"</string> <string name="notification_download_failed" msgid="8612136111952014978">"Ukulayisha akuphumelelanga"</string> <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Usayizi wokulanda udinga i-Wi-Fi"</string> @@ -47,4 +45,14 @@ <string name="button_cancel_download" msgid="2430166148737975604">"Khansela"</string> <string name="button_start_now" msgid="792123674007840864">"Qala manje"</string> <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> + <plurals name="notif_summary_active"> + <item quantity="one" msgid="8475775855911967027">"1 ifayela elilandwayo"</item> + <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> amafayela alandwayo"</item> + </plurals> + <plurals name="notif_summary_waiting"> + <item quantity="one" msgid="5537481763963544278">"1 ifayela elilindiwe"</item> + <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> amafayela alindile"</item> + </plurals> + <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> esisele"</string> + <string name="download_no_application_title" msgid="7935659741162801699">"Ayikwazi ukuvula ifayela"</string> </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index 56352951..3a060e2d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -116,23 +116,6 @@ for a download that doesn't have a title associated with it. --> <string name="download_unknown_title"><Untitled></string> - <!-- When there are multiple simultaneous outstanding downloads from a - single application, they are displayed as a single notification, - and the expanded notification view displays the first two download - names separated with this string, i.e. "[title], [title]" - or "[title], [title] and [n] more". This is the comma + space - that separates the first two titles, and it's used both when there - are exactly two and more than two titles. --> - <string name="notification_filename_separator">", "</string> - - <!-- When there are three or more simultaneous outstanding downloads from a - single application, they are displayed as a single notification, - and the expanded notification view uses this string to indicate - downloads beyond the first two, i.e. "[title], [title] and [n] more". - This is the " and [n] more" part, including the leading space, and it's - used regardless of the number of additional downloads. --> - <string name="notification_filename_extras">" and <xliff:g id="number" example="27">%d</xliff:g> more"</string> - <!-- When a download completes, a notification is displayed, and this string is used to indicate that the download successfully completed. Note that such a download could have been initiated by a variety of @@ -210,4 +193,24 @@ <!-- Short representation of download progress percentage. [CHAR LIMIT=8] --> <string name="download_percent"><xliff:g id="number">%d</xliff:g><xliff:g id="percent">%%</xliff:g></string> + <!-- Title summarizing active downloads. [CHAR LIMIT=32] --> + <plurals name="notif_summary_active"> + <item quantity="one">1 file downloading</item> + <item quantity="other"><xliff:g id="number">%d</xliff:g> files downloading</item> + </plurals> + + <!-- Title summarizing waiting downloads. [CHAR LIMIT=32] --> + <plurals name="notif_summary_waiting"> + <item quantity="one">1 file waiting</item> + <item quantity="other"><xliff:g id="number">%d</xliff:g> files waiting</item> + </plurals> + + <!-- Time remaining until download is complete. [CHAR LIMIT=32] --> + <string name="download_remaining"><xliff:g id="duration" example="3 minutes">%s</xliff:g> left</string> + + <!-- Text for a toast appearing when a user clicks on a completed download, informing the user + that there is no application on the device that can open the file that was downloaded + [CHAR LIMIT=200] --> + <string name="download_no_application_title">Can\'t open file</string> + </resources> diff --git a/src/com/android/providers/downloads/Constants.java b/src/com/android/providers/downloads/Constants.java index 8481435f..8d806182 100644 --- a/src/com/android/providers/downloads/Constants.java +++ b/src/com/android/providers/downloads/Constants.java @@ -75,6 +75,8 @@ public class Constants { /** The default extension for binary files if we can't get one at the HTTP level */ public static final String DEFAULT_DL_BINARY_EXTENSION = ".bin"; + public static final String PROVIDER_PACKAGE_NAME = "com.android.providers.downloads"; + /** * When a number has to be appended to the filename, this string is used to separate the * base filename from the sequence number diff --git a/src/com/android/providers/downloads/DownloadHandler.java b/src/com/android/providers/downloads/DownloadHandler.java index 29d34700..2f02864e 100644 --- a/src/com/android/providers/downloads/DownloadHandler.java +++ b/src/com/android/providers/downloads/DownloadHandler.java @@ -18,6 +18,9 @@ package com.android.providers.downloads; import android.content.res.Resources; import android.util.Log; +import android.util.LongSparseArray; + +import com.android.internal.annotations.GuardedBy; import java.util.ArrayList; import java.util.HashMap; @@ -25,31 +28,37 @@ import java.util.Iterator; import java.util.LinkedHashMap; public class DownloadHandler { - private static final String TAG = "DownloadHandler"; + + @GuardedBy("this") private final LinkedHashMap<Long, DownloadInfo> mDownloadsQueue = new LinkedHashMap<Long, DownloadInfo>(); + @GuardedBy("this") private final HashMap<Long, DownloadInfo> mDownloadsInProgress = new HashMap<Long, DownloadInfo>(); - private static final DownloadHandler mDownloadHandler = new DownloadHandler(); + @GuardedBy("this") + private final LongSparseArray<Long> mCurrentSpeed = new LongSparseArray<Long>(); + private final int mMaxConcurrentDownloadsAllowed = Resources.getSystem().getInteger( com.android.internal.R.integer.config_MaxConcurrentDownloadsAllowed); - static DownloadHandler getInstance() { - return mDownloadHandler; + private static final DownloadHandler sDownloadHandler = new DownloadHandler(); + + public static DownloadHandler getInstance() { + return sDownloadHandler; } - synchronized void enqueueDownload(DownloadInfo info) { + public synchronized void enqueueDownload(DownloadInfo info) { if (!mDownloadsQueue.containsKey(info.mId)) { if (Constants.LOGV) { Log.i(TAG, "enqueued download. id: " + info.mId + ", uri: " + info.mUri); } mDownloadsQueue.put(info.mId, info); - startDownloadThread(); + startDownloadThreadLocked(); } } - private synchronized void startDownloadThread() { + private void startDownloadThreadLocked() { Iterator<Long> keys = mDownloadsQueue.keySet().iterator(); ArrayList<Long> ids = new ArrayList<Long>(); while (mDownloadsInProgress.size() < mMaxConcurrentDownloadsAllowed && keys.hasNext()) { @@ -67,21 +76,30 @@ public class DownloadHandler { } } - synchronized boolean hasDownloadInQueue(long id) { + public synchronized boolean hasDownloadInQueue(long id) { return mDownloadsQueue.containsKey(id) || mDownloadsInProgress.containsKey(id); } - synchronized void dequeueDownload(long mId) { - mDownloadsInProgress.remove(mId); - startDownloadThread(); + public synchronized void dequeueDownload(long id) { + mDownloadsInProgress.remove(id); + mCurrentSpeed.remove(id); + startDownloadThreadLocked(); if (mDownloadsInProgress.size() == 0 && mDownloadsQueue.size() == 0) { notifyAll(); } } + public synchronized void setCurrentSpeed(long id, long speed) { + mCurrentSpeed.put(id, speed); + } + + public synchronized long getCurrentSpeed(long id) { + return mCurrentSpeed.get(id, -1L); + } + // right now this is only used by tests. but there is no reason why it can't be used // by any module using DownloadManager (TODO add API to DownloadManager.java) - public synchronized void WaitUntilDownloadsTerminate() throws InterruptedException { + public synchronized void waitUntilDownloadsTerminate() throws InterruptedException { if (mDownloadsInProgress.size() == 0 && mDownloadsQueue.size() == 0) { if (Constants.LOGVV) { Log.i(TAG, "nothing to wait on"); diff --git a/src/com/android/providers/downloads/DownloadNotification.java b/src/com/android/providers/downloads/DownloadNotification.java deleted file mode 100644 index f5778e79..00000000 --- a/src/com/android/providers/downloads/DownloadNotification.java +++ /dev/null @@ -1,288 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.providers.downloads; - -import android.app.Notification; -import android.app.NotificationManager; -import android.app.PendingIntent; -import android.content.ContentUris; -import android.content.Context; -import android.content.Intent; -import android.net.Uri; -import android.provider.Downloads; -import android.text.TextUtils; -import android.util.SparseLongArray; - -import java.util.Collection; -import java.util.HashMap; - -/** - * This class handles the updating of the Notification Manager for the - * cases where there is an ongoing download. Once the download is complete - * (be it successful or unsuccessful) it is no longer the responsibility - * of this component to show the download in the notification manager. - * - */ -class DownloadNotification { - - private Context mContext; - private NotificationManager mNotifManager; - private HashMap<String, NotificationItem> mNotifications; - - /** Time when each {@link DownloadInfo#mId} was first shown. */ - private SparseLongArray mFirstShown = new SparseLongArray(); - - static final String LOGTAG = "DownloadNotification"; - static final String WHERE_RUNNING = - "(" + Downloads.Impl.COLUMN_STATUS + " >= '100') AND (" + - Downloads.Impl.COLUMN_STATUS + " <= '199') AND (" + - Downloads.Impl.COLUMN_VISIBILITY + " IS NULL OR " + - Downloads.Impl.COLUMN_VISIBILITY + " == '" + Downloads.Impl.VISIBILITY_VISIBLE + "' OR " + - Downloads.Impl.COLUMN_VISIBILITY + - " == '" + Downloads.Impl.VISIBILITY_VISIBLE_NOTIFY_COMPLETED + "')"; - static final String WHERE_COMPLETED = - Downloads.Impl.COLUMN_STATUS + " >= '200' AND " + - Downloads.Impl.COLUMN_VISIBILITY + - " == '" + Downloads.Impl.VISIBILITY_VISIBLE_NOTIFY_COMPLETED + "'"; - - - /** - * This inner class is used to collate downloads that are owned by - * the same application. This is so that only one notification line - * item is used for all downloads of a given application. - * - */ - static class NotificationItem { - // TODO: refactor to mNotifId and avoid building Uris based on it, since - // they can overflow - int mId; // This first db _id for the download for the app - long mTotalCurrent = 0; - long mTotalTotal = 0; - int mTitleCount = 0; - String mPackageName; // App package name - String mDescription; - String[] mTitles = new String[2]; // download titles. - String mPausedText = null; - - /* - * Add a second download to this notification item. - */ - void addItem(String title, long currentBytes, long totalBytes) { - mTotalCurrent += currentBytes; - if (totalBytes <= 0 || mTotalTotal == -1) { - mTotalTotal = -1; - } else { - mTotalTotal += totalBytes; - } - if (mTitleCount < 2) { - mTitles[mTitleCount] = title; - } - mTitleCount++; - } - } - - - /** - * Constructor - * @param ctx The context to use to obtain access to the - * Notification Service - */ - DownloadNotification(Context ctx, SystemFacade systemFacade) { - mContext = ctx; - mNotifManager = (NotificationManager) mContext.getSystemService( - Context.NOTIFICATION_SERVICE); - mNotifications = new HashMap<String, NotificationItem>(); - } - - /* - * Update the notification ui. - */ - public void updateNotification(Collection<DownloadInfo> downloads) { - updateActiveNotification(downloads); - updateCompletedNotification(downloads); - } - - private void updateActiveNotification(Collection<DownloadInfo> downloads) { - // Collate the notifications - mNotifications.clear(); - for (DownloadInfo download : downloads) { - if (!isActiveAndVisible(download)) { - continue; - } - String packageName = download.mPackage; - long max = download.mTotalBytes; - long progress = download.mCurrentBytes; - long id = download.mId; - String title = download.mTitle; - if (title == null || title.length() == 0) { - title = mContext.getResources().getString( - R.string.download_unknown_title); - } - - NotificationItem item; - if (mNotifications.containsKey(packageName)) { - item = mNotifications.get(packageName); - item.addItem(title, progress, max); - } else { - item = new NotificationItem(); - item.mId = (int) id; - item.mPackageName = packageName; - item.mDescription = download.mDescription; - item.addItem(title, progress, max); - mNotifications.put(packageName, item); - } - if (download.mStatus == Downloads.Impl.STATUS_QUEUED_FOR_WIFI - && item.mPausedText == null) { - item.mPausedText = mContext.getResources().getString( - R.string.notification_need_wifi_for_size); - } - } - - // Add the notifications - for (NotificationItem item : mNotifications.values()) { - // Build the notification object - final Notification.Builder builder = new Notification.Builder(mContext); - - boolean hasPausedText = (item.mPausedText != null); - int iconResource = android.R.drawable.stat_sys_download; - if (hasPausedText) { - iconResource = android.R.drawable.stat_sys_warning; - } - builder.setSmallIcon(iconResource); - builder.setOngoing(true); - - // set notification "when" to be first time this DownloadInfo.mId - // was encountered, which avoids fighting with other notifs. - long firstShown = mFirstShown.get(item.mId, -1); - if (firstShown == -1) { - firstShown = System.currentTimeMillis(); - mFirstShown.put(item.mId, firstShown); - } - builder.setWhen(firstShown); - - boolean hasContentText = false; - StringBuilder title = new StringBuilder(item.mTitles[0]); - if (item.mTitleCount > 1) { - title.append(mContext.getString(R.string.notification_filename_separator)); - title.append(item.mTitles[1]); - if (item.mTitleCount > 2) { - title.append(mContext.getString(R.string.notification_filename_extras, - new Object[] { Integer.valueOf(item.mTitleCount - 2) })); - } - } else if (!TextUtils.isEmpty(item.mDescription)) { - builder.setContentText(item.mDescription); - hasContentText = true; - } - builder.setContentTitle(title); - - if (hasPausedText) { - builder.setContentText(item.mPausedText); - } else { - builder.setProgress( - (int) item.mTotalTotal, (int) item.mTotalCurrent, item.mTotalTotal == -1); - if (hasContentText) { - builder.setContentInfo( - buildPercentageLabel(mContext, item.mTotalTotal, item.mTotalCurrent)); - } - } - - Intent intent = new Intent(Constants.ACTION_LIST); - intent.setClassName("com.android.providers.downloads", - DownloadReceiver.class.getName()); - intent.setData( - ContentUris.withAppendedId(Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, item.mId)); - intent.putExtra("multiple", item.mTitleCount > 1); - - builder.setContentIntent(PendingIntent.getBroadcast(mContext, 0, intent, 0)); - - mNotifManager.notify(item.mId, builder.build()); - } - } - - private void updateCompletedNotification(Collection<DownloadInfo> downloads) { - for (DownloadInfo download : downloads) { - if (!isCompleteAndVisible(download)) { - continue; - } - notificationForCompletedDownload(download.mId, download.mTitle, - download.mStatus, download.mDestination, download.mLastMod); - } - } - void notificationForCompletedDownload(long id, String title, int status, - int destination, long lastMod) { - // Add the notifications - Notification.Builder builder = new Notification.Builder(mContext); - builder.setSmallIcon(android.R.drawable.stat_sys_download_done); - if (title == null || title.length() == 0) { - title = mContext.getResources().getString( - R.string.download_unknown_title); - } - Uri contentUri = - ContentUris.withAppendedId(Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, id); - String caption; - Intent intent; - if (Downloads.Impl.isStatusError(status)) { - caption = mContext.getResources() - .getString(R.string.notification_download_failed); - intent = new Intent(Constants.ACTION_LIST); - } else { - caption = mContext.getResources() - .getString(R.string.notification_download_complete); - if (destination != Downloads.Impl.DESTINATION_SYSTEMCACHE_PARTITION) { - intent = new Intent(Constants.ACTION_OPEN); - } else { - intent = new Intent(Constants.ACTION_LIST); - } - } - intent.setClassName("com.android.providers.downloads", - DownloadReceiver.class.getName()); - intent.setData(contentUri); - - builder.setWhen(lastMod); - builder.setContentTitle(title); - builder.setContentText(caption); - builder.setContentIntent(PendingIntent.getBroadcast(mContext, 0, intent, 0)); - - intent = new Intent(Constants.ACTION_HIDE); - intent.setClassName("com.android.providers.downloads", - DownloadReceiver.class.getName()); - intent.setData(contentUri); - builder.setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, intent, 0)); - - mNotifManager.notify((int) id, builder.build()); - } - - private boolean isActiveAndVisible(DownloadInfo download) { - return 100 <= download.mStatus && download.mStatus < 200 - && download.mVisibility != Downloads.Impl.VISIBILITY_HIDDEN; - } - - private boolean isCompleteAndVisible(DownloadInfo download) { - return download.mStatus >= 200 - && download.mVisibility == Downloads.Impl.VISIBILITY_VISIBLE_NOTIFY_COMPLETED; - } - - private static String buildPercentageLabel( - Context context, long totalBytes, long currentBytes) { - if (totalBytes <= 0) { - return null; - } else { - final int percent = (int) (100 * currentBytes / totalBytes); - return context.getString(R.string.download_percent, percent); - } - } -} diff --git a/src/com/android/providers/downloads/DownloadNotifier.java b/src/com/android/providers/downloads/DownloadNotifier.java new file mode 100644 index 00000000..daae7831 --- /dev/null +++ b/src/com/android/providers/downloads/DownloadNotifier.java @@ -0,0 +1,318 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.providers.downloads; + +import static android.app.DownloadManager.Request.VISIBILITY_VISIBLE; +import static android.app.DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED; +import static android.app.DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION; + +import android.app.DownloadManager; +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.ContentUris; +import android.content.Context; +import android.content.Intent; +import android.content.res.Resources; +import android.net.Uri; +import android.provider.Downloads; +import android.text.TextUtils; +import android.text.format.DateUtils; + +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Maps; +import com.google.common.collect.Multimap; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; + +import javax.annotation.concurrent.GuardedBy; + +/** + * Update {@link NotificationManager} to reflect current {@link DownloadInfo} + * states. Collapses similar downloads into a single notification, and builds + * {@link PendingIntent} that launch towards {@link DownloadReceiver}. + */ +public class DownloadNotifier { + + private static final int TYPE_ACTIVE = 1; + private static final int TYPE_WAITING = 2; + private static final int TYPE_COMPLETE = 3; + + private final Context mContext; + private final NotificationManager mNotifManager; + + /** + * Currently active notifications, mapped from clustering tag to timestamp + * when first shown. + * + * @see #buildNotificationTag(DownloadInfo) + */ + @GuardedBy("mActiveNotifs") + private final HashMap<String, Long> mActiveNotifs = Maps.newHashMap(); + + public DownloadNotifier(Context context) { + mContext = context; + mNotifManager = (NotificationManager) context.getSystemService( + Context.NOTIFICATION_SERVICE); + } + + public void cancelAll() { + mNotifManager.cancelAll(); + } + + /** + * Update {@link NotificationManager} to reflect the given set of + * {@link DownloadInfo}, adding, collapsing, and removing as needed. + */ + public void updateWith(Collection<DownloadInfo> downloads) { + synchronized (mActiveNotifs) { + updateWithLocked(downloads); + } + } + + private void updateWithLocked(Collection<DownloadInfo> downloads) { + final Resources res = mContext.getResources(); + + // Cluster downloads together + final Multimap<String, DownloadInfo> clustered = ArrayListMultimap.create(); + for (DownloadInfo info : downloads) { + final String tag = buildNotificationTag(info); + if (tag != null) { + clustered.put(tag, info); + } + } + + // Build notification for each cluster + for (String tag : clustered.keySet()) { + final int type = getNotificationTagType(tag); + final Collection<DownloadInfo> cluster = clustered.get(tag); + + final Notification.Builder builder = new Notification.Builder(mContext); + + // Use time when cluster was first shown to avoid shuffling + final long firstShown; + if (mActiveNotifs.containsKey(tag)) { + firstShown = mActiveNotifs.get(tag); + } else { + firstShown = System.currentTimeMillis(); + mActiveNotifs.put(tag, firstShown); + } + builder.setWhen(firstShown); + + // Show relevant icon + if (type == TYPE_ACTIVE) { + builder.setSmallIcon(android.R.drawable.stat_sys_download); + } else if (type == TYPE_WAITING) { + builder.setSmallIcon(android.R.drawable.stat_sys_warning); + } else if (type == TYPE_COMPLETE) { + builder.setSmallIcon(android.R.drawable.stat_sys_download_done); + } + + // Build action intents + if (type == TYPE_ACTIVE || type == TYPE_WAITING) { + final Intent intent = new Intent(Constants.ACTION_LIST, + null, mContext, DownloadReceiver.class); + intent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS, + getDownloadIds(cluster)); + builder.setContentIntent(PendingIntent.getBroadcast(mContext, 0, intent, 0)); + builder.setOngoing(true); + + } else if (type == TYPE_COMPLETE) { + final DownloadInfo info = cluster.iterator().next(); + final Uri uri = ContentUris.withAppendedId( + Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, info.mId); + + final String action; + if (Downloads.Impl.isStatusError(info.mStatus)) { + action = Constants.ACTION_LIST; + } else { + if (info.mDestination != Downloads.Impl.DESTINATION_SYSTEMCACHE_PARTITION) { + action = Constants.ACTION_OPEN; + } else { + action = Constants.ACTION_LIST; + } + } + + final Intent intent = new Intent(action, uri, mContext, DownloadReceiver.class); + intent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS, + getDownloadIds(cluster)); + builder.setContentIntent(PendingIntent.getBroadcast(mContext, 0, intent, 0)); + + final Intent hideIntent = new Intent(Constants.ACTION_HIDE, + uri, mContext, DownloadReceiver.class); + builder.setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, hideIntent, 0)); + } + + // Calculate and show progress + String remainingText = null; + String percentText = null; + if (type == TYPE_ACTIVE) { + final DownloadHandler handler = DownloadHandler.getInstance(); + + long current = 0; + long total = 0; + long speed = 0; + for (DownloadInfo info : cluster) { + if (info.mTotalBytes != -1) { + current += info.mCurrentBytes; + total += info.mTotalBytes; + speed += handler.getCurrentSpeed(info.mId); + } + } + + if (total > 0) { + final int percent = (int) ((current * 100) / total); + percentText = res.getString(R.string.download_percent, percent); + + if (speed > 0) { + final long remainingMillis = ((total - current) * 1000) / speed; + remainingText = res.getString(R.string.download_remaining, + DateUtils.formatDuration(remainingMillis)); + } + + builder.setProgress(100, percent, false); + } else { + builder.setProgress(100, 0, true); + } + } + + // Build titles and description + final Notification notif; + if (cluster.size() == 1) { + final DownloadInfo info = cluster.iterator().next(); + + builder.setContentTitle(getDownloadTitle(res, info)); + + if (type == TYPE_ACTIVE) { + if (!TextUtils.isEmpty(info.mDescription)) { + builder.setContentText(info.mDescription); + } else { + builder.setContentText(remainingText); + } + builder.setContentInfo(percentText); + + } else if (type == TYPE_WAITING) { + builder.setContentText( + res.getString(R.string.notification_need_wifi_for_size)); + + } else if (type == TYPE_COMPLETE) { + if (Downloads.Impl.isStatusError(info.mStatus)) { + builder.setContentText(res.getText(R.string.notification_download_failed)); + } else if (Downloads.Impl.isStatusSuccess(info.mStatus)) { + builder.setContentText( + res.getText(R.string.notification_download_complete)); + } + } + + notif = builder.build(); + + } else { + final Notification.InboxStyle inboxStyle = new Notification.InboxStyle(builder); + + for (DownloadInfo info : cluster) { + inboxStyle.addLine(getDownloadTitle(res, info)); + } + + if (type == TYPE_ACTIVE) { + builder.setContentTitle(res.getQuantityString( + R.plurals.notif_summary_active, cluster.size(), cluster.size())); + builder.setContentText(remainingText); + builder.setContentInfo(percentText); + inboxStyle.setSummaryText(remainingText); + + } else if (type == TYPE_WAITING) { + builder.setContentTitle(res.getQuantityString( + R.plurals.notif_summary_waiting, cluster.size(), cluster.size())); + builder.setContentText( + res.getString(R.string.notification_need_wifi_for_size)); + inboxStyle.setSummaryText( + res.getString(R.string.notification_need_wifi_for_size)); + } + + notif = inboxStyle.build(); + } + + mNotifManager.notify(tag, 0, notif); + } + + // Remove stale tags that weren't renewed + final Iterator<String> it = mActiveNotifs.keySet().iterator(); + while (it.hasNext()) { + final String tag = it.next(); + if (!clustered.containsKey(tag)) { + mNotifManager.cancel(tag, 0); + it.remove(); + } + } + } + + private static CharSequence getDownloadTitle(Resources res, DownloadInfo info) { + if (!TextUtils.isEmpty(info.mTitle)) { + return info.mTitle; + } else { + return res.getString(R.string.download_unknown_title); + } + } + + private long[] getDownloadIds(Collection<DownloadInfo> infos) { + final long[] ids = new long[infos.size()]; + int i = 0; + for (DownloadInfo info : infos) { + ids[i++] = info.mId; + } + return ids; + } + + /** + * Build tag used for collapsing several {@link DownloadInfo} into a single + * {@link Notification}. + */ + private static String buildNotificationTag(DownloadInfo info) { + if (info.mStatus == Downloads.Impl.STATUS_QUEUED_FOR_WIFI) { + return TYPE_WAITING + ":" + info.mPackage; + } else if (isActiveAndVisible(info)) { + return TYPE_ACTIVE + ":" + info.mPackage; + } else if (isCompleteAndVisible(info)) { + // Complete downloads always have unique notifs + return TYPE_COMPLETE + ":" + info.mId; + } else { + return null; + } + } + + /** + * Return the cluster type of the given tag, as created by + * {@link #buildNotificationTag(DownloadInfo)}. + */ + private static int getNotificationTagType(String tag) { + return Integer.parseInt(tag.substring(0, tag.indexOf(':'))); + } + + private static boolean isActiveAndVisible(DownloadInfo download) { + return Downloads.Impl.isStatusInformational(download.mStatus) && + (download.mVisibility == VISIBILITY_VISIBLE + || download.mVisibility == VISIBILITY_VISIBLE_NOTIFY_COMPLETED); + } + + private static boolean isCompleteAndVisible(DownloadInfo download) { + return Downloads.Impl.isStatusCompleted(download.mStatus) && + (download.mVisibility == VISIBILITY_VISIBLE_NOTIFY_COMPLETED + || download.mVisibility == VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION); + } +} diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index 40ebd2bb..c554e41d 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -667,15 +667,10 @@ public final class DownloadProvider extends ContentProvider { Context context = getContext(); if (values.getAsInteger(Downloads.Impl.COLUMN_DESTINATION) == Downloads.Impl.DESTINATION_NON_DOWNLOADMANAGER_DOWNLOAD) { - // don't start downloadservice because it has nothing to do in this case. - // but does a completion notification need to be sent? + // When notification is requested, kick off service to process all + // relevant downloads. if (Downloads.Impl.isNotificationToBeDisplayed(vis)) { - DownloadNotification notifier = new DownloadNotification(context, mSystemFacade); - notifier.notificationForCompletedDownload(rowID, - values.getAsString(Downloads.Impl.COLUMN_TITLE), - Downloads.Impl.STATUS_SUCCESS, - Downloads.Impl.DESTINATION_NON_DOWNLOADMANAGER_DOWNLOAD, - lastMod); + context.startService(new Intent(context, DownloadService.class)); } } else { context.startService(new Intent(context, DownloadService.class)); diff --git a/src/com/android/providers/downloads/DownloadReceiver.java b/src/com/android/providers/downloads/DownloadReceiver.java index 7469508d..42f029a3 100644 --- a/src/com/android/providers/downloads/DownloadReceiver.java +++ b/src/com/android/providers/downloads/DownloadReceiver.java @@ -16,8 +16,10 @@ package com.android.providers.downloads; +import static android.app.DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED; +import static android.app.DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION; + import android.app.DownloadManager; -import android.app.NotificationManager; import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.ContentUris; @@ -28,9 +30,12 @@ import android.database.Cursor; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; -import android.provider.BaseColumns; +import android.os.Handler; +import android.os.HandlerThread; import android.provider.Downloads; +import android.text.TextUtils; import android.util.Log; +import android.widget.Toast; import com.google.common.annotations.VisibleForTesting; @@ -38,11 +43,21 @@ import com.google.common.annotations.VisibleForTesting; * Receives system broadcasts (boot, network connectivity) */ public class DownloadReceiver extends BroadcastReceiver { + private static final String TAG = "DownloadReceiver"; + + private static Handler sAsyncHandler; + + static { + final HandlerThread thread = new HandlerThread(TAG); + thread.start(); + sAsyncHandler = new Handler(thread.getLooper()); + } + @VisibleForTesting SystemFacade mSystemFacade = null; @Override - public void onReceive(Context context, Intent intent) { + public void onReceive(final Context context, final Intent intent) { if (mSystemFacade == null) { mSystemFacade = new RealSystemFacade(context); } @@ -72,7 +87,20 @@ public class DownloadReceiver extends BroadcastReceiver { } else if (action.equals(Constants.ACTION_OPEN) || action.equals(Constants.ACTION_LIST) || action.equals(Constants.ACTION_HIDE)) { - handleNotificationBroadcast(context, intent); + + final PendingResult result = goAsync(); + if (result == null) { + // TODO: remove this once test is refactored + handleNotificationBroadcast(context, intent); + } else { + sAsyncHandler.post(new Runnable() { + @Override + public void run() { + handleNotificationBroadcast(context, intent); + result.finish(); + } + }); + } } } @@ -80,58 +108,49 @@ public class DownloadReceiver extends BroadcastReceiver { * Handle any broadcast related to a system notification. */ private void handleNotificationBroadcast(Context context, Intent intent) { - Uri uri = intent.getData(); - String action = intent.getAction(); - if (Constants.LOGVV) { - if (action.equals(Constants.ACTION_OPEN)) { - Log.v(Constants.TAG, "Receiver open for " + uri); - } else if (action.equals(Constants.ACTION_LIST)) { - Log.v(Constants.TAG, "Receiver list for " + uri); - } else { // ACTION_HIDE - Log.v(Constants.TAG, "Receiver hide for " + uri); - } + final String action = intent.getAction(); + if (Constants.ACTION_LIST.equals(action)) { + final long[] ids = intent.getLongArrayExtra( + DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS); + sendNotificationClickedIntent(context, ids); + + } else if (Constants.ACTION_OPEN.equals(action)) { + final long id = ContentUris.parseId(intent.getData()); + openDownload(context, id); + hideNotification(context, id); + + } else if (Constants.ACTION_HIDE.equals(action)) { + final long id = ContentUris.parseId(intent.getData()); + hideNotification(context, id); } + } - Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); - if (cursor == null) { - return; - } + /** + * Mark the given {@link DownloadManager#COLUMN_ID} as being acknowledged by + * user so it's not renewed later. + */ + private void hideNotification(Context context, long id) { + final int status; + final int visibility; + + final Uri uri = ContentUris.withAppendedId(Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, id); + final Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); try { - if (!cursor.moveToFirst()) { + if (cursor.moveToFirst()) { + status = getInt(cursor, Downloads.Impl.COLUMN_STATUS); + visibility = getInt(cursor, Downloads.Impl.COLUMN_VISIBILITY); + } else { + Log.w(TAG, "Missing details for download " + id); return; } - - if (action.equals(Constants.ACTION_OPEN)) { - openDownload(context, cursor); - hideNotification(context, uri, cursor); - } else if (action.equals(Constants.ACTION_LIST)) { - sendNotificationClickedIntent(intent, cursor); - } else { // ACTION_HIDE - hideNotification(context, uri, cursor); - } } finally { cursor.close(); } - } - /** - * Hide a system notification for a download. - * @param uri URI to update the download - * @param cursor Cursor for reading the download's fields - */ - private void hideNotification(Context context, Uri uri, Cursor cursor) { - final NotificationManager notifManager = (NotificationManager) context.getSystemService( - Context.NOTIFICATION_SERVICE); - notifManager.cancel((int) ContentUris.parseId(uri)); - - int statusColumn = cursor.getColumnIndexOrThrow(Downloads.Impl.COLUMN_STATUS); - int status = cursor.getInt(statusColumn); - int visibilityColumn = - cursor.getColumnIndexOrThrow(Downloads.Impl.COLUMN_VISIBILITY); - int visibility = cursor.getInt(visibilityColumn); - if (Downloads.Impl.isStatusCompleted(status) - && visibility == Downloads.Impl.VISIBILITY_VISIBLE_NOTIFY_COMPLETED) { - ContentValues values = new ContentValues(); + if (Downloads.Impl.isStatusCompleted(status) && + (visibility == VISIBILITY_VISIBLE_NOTIFY_COMPLETED + || visibility == VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION)) { + final ContentValues values = new ContentValues(); values.put(Downloads.Impl.COLUMN_VISIBILITY, Downloads.Impl.VISIBILITY_VISIBLE); context.getContentResolver().update(uri, values, null, null); @@ -139,69 +158,84 @@ public class DownloadReceiver extends BroadcastReceiver { } /** - * Open the download that cursor is currently pointing to, since it's completed notification - * has been clicked. + * Start activity to display the file represented by the given + * {@link DownloadManager#COLUMN_ID}. */ - private void openDownload(Context context, Cursor cursor) { - final long id = cursor.getLong(cursor.getColumnIndexOrThrow(BaseColumns._ID)); + private void openDownload(Context context, long id) { final Intent intent = OpenHelper.buildViewIntent(context, id); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { context.startActivity(intent); } catch (ActivityNotFoundException ex) { Log.d(Constants.TAG, "no activity for " + intent, ex); + Toast.makeText(context, R.string.download_no_application_title, Toast.LENGTH_LONG) + .show(); } } /** * Notify the owner of a running download that its notification was clicked. - * @param intent the broadcast intent sent by the notification manager - * @param cursor Cursor for reading the download's fields */ - private void sendNotificationClickedIntent(Intent intent, Cursor cursor) { - String pckg = cursor.getString( - cursor.getColumnIndexOrThrow(Downloads.Impl.COLUMN_NOTIFICATION_PACKAGE)); - if (pckg == null) { - return; + private void sendNotificationClickedIntent(Context context, long[] ids) { + final String packageName; + final String clazz; + final boolean isPublicApi; + + final Uri uri = ContentUris.withAppendedId( + Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, ids[0]); + final Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); + try { + if (cursor.moveToFirst()) { + packageName = getString(cursor, Downloads.Impl.COLUMN_NOTIFICATION_PACKAGE); + clazz = getString(cursor, Downloads.Impl.COLUMN_NOTIFICATION_CLASS); + isPublicApi = getInt(cursor, Downloads.Impl.COLUMN_IS_PUBLIC_API) != 0; + } else { + Log.w(TAG, "Missing details for download " + ids[0]); + return; + } + } finally { + cursor.close(); } - String clazz = cursor.getString( - cursor.getColumnIndexOrThrow(Downloads.Impl.COLUMN_NOTIFICATION_CLASS)); - boolean isPublicApi = - cursor.getInt(cursor.getColumnIndex(Downloads.Impl.COLUMN_IS_PUBLIC_API)) != 0; + if (TextUtils.isEmpty(packageName)) { + Log.w(TAG, "Missing package; skipping broadcast"); + return; + } Intent appIntent = null; if (isPublicApi) { appIntent = new Intent(DownloadManager.ACTION_NOTIFICATION_CLICKED); - appIntent.setPackage(pckg); - // send id of the items clicked on. - if (intent.getBooleanExtra("multiple", false)) { - // broadcast received saying click occurred on a notification with multiple titles. - // don't include any ids at all - let the caller query all downloads belonging to it - // TODO modify the broadcast to include ids of those multiple notifications. - } else { - appIntent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS, - new long[] { - cursor.getLong(cursor.getColumnIndexOrThrow(Downloads.Impl._ID))}); - } + appIntent.setPackage(packageName); + appIntent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS, ids); + } else { // legacy behavior - if (clazz == null) { + if (TextUtils.isEmpty(clazz)) { + Log.w(TAG, "Missing class; skipping broadcast"); return; } + appIntent = new Intent(DownloadManager.ACTION_NOTIFICATION_CLICKED); - appIntent.setClassName(pckg, clazz); - if (intent.getBooleanExtra("multiple", true)) { - appIntent.setData(Downloads.Impl.CONTENT_URI); + appIntent.setClassName(packageName, clazz); + appIntent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS, ids); + + if (ids.length == 1) { + appIntent.setData(uri); } else { - long downloadId = cursor.getLong(cursor.getColumnIndexOrThrow(Downloads.Impl._ID)); - appIntent.setData( - ContentUris.withAppendedId(Downloads.Impl.CONTENT_URI, downloadId)); + appIntent.setData(Downloads.Impl.CONTENT_URI); } } mSystemFacade.sendBroadcast(appIntent); } + private static String getString(Cursor cursor, String col) { + return cursor.getString(cursor.getColumnIndexOrThrow(col)); + } + + private static int getInt(Cursor cursor, String col) { + return cursor.getInt(cursor.getColumnIndexOrThrow(col)); + } + private void startService(Context context) { context.startService(new Intent(context, DownloadService.class)); } diff --git a/src/com/android/providers/downloads/DownloadService.java b/src/com/android/providers/downloads/DownloadService.java index 8380830a..b97346b2 100644 --- a/src/com/android/providers/downloads/DownloadService.java +++ b/src/com/android/providers/downloads/DownloadService.java @@ -19,7 +19,6 @@ package com.android.providers.downloads; import static com.android.providers.downloads.Constants.TAG; import android.app.AlarmManager; -import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.ComponentName; @@ -40,6 +39,7 @@ import android.provider.Downloads; import android.text.TextUtils; import android.util.Log; +import com.android.internal.annotations.GuardedBy; import com.android.internal.util.IndentingPrintWriter; import com.google.android.collect.Maps; import com.google.common.annotations.VisibleForTesting; @@ -65,8 +65,7 @@ public class DownloadService extends Service { private DownloadManagerContentObserver mObserver; /** Class to handle Notification Manager updates */ - private DownloadNotification mNotifier; - private NotificationManager mNotifManager; + private DownloadNotifier mNotifier; /** * The Service's view of the list of downloads, mapping download IDs to the corresponding info @@ -74,6 +73,7 @@ public class DownloadService extends Service { * downloads based on this data, so that it can deal with situation where the data in the * content provider changes or disappears. */ + @GuardedBy("mDownloads") private Map<Long, DownloadInfo> mDownloads = Maps.newHashMap(); /** @@ -222,9 +222,8 @@ public class DownloadService extends Service { mMediaScannerConnecting = false; mMediaScannerConnection = new MediaScannerConnection(); - mNotifier = new DownloadNotification(this, mSystemFacade); - mNotifManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - mNotifManager.cancelAll(); + mNotifier = new DownloadNotifier(this); + mNotifier.cancelAll(); mStorageManager = StorageManager.getInstance(getApplicationContext()); updateFromProvider(); @@ -359,7 +358,7 @@ public class DownloadService extends Service { } } } - mNotifier.updateNotification(mDownloads.values()); + mNotifier.updateWith(mDownloads.values()); if (mustScan) { bindMediaScanner(); } else { @@ -459,18 +458,6 @@ public class DownloadService extends Service { Log.v(Constants.TAG, "processing updated download " + info.mId + ", status: " + info.mStatus); } - - boolean lostVisibility = - oldVisibility == Downloads.Impl.VISIBILITY_VISIBLE_NOTIFY_COMPLETED - && info.mVisibility != Downloads.Impl.VISIBILITY_VISIBLE_NOTIFY_COMPLETED - && Downloads.Impl.isStatusCompleted(info.mStatus); - boolean justCompleted = - !Downloads.Impl.isStatusCompleted(oldStatus) - && Downloads.Impl.isStatusCompleted(info.mStatus); - if (lostVisibility || justCompleted) { - mNotifManager.cancel((int) info.mId); - } - info.startIfReady(now, mStorageManager); } @@ -488,7 +475,6 @@ public class DownloadService extends Service { } new File(info.mFileName).delete(); } - mNotifManager.cancel((int) info.mId); mDownloads.remove(info.mId); } diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java index e74d5c72..34bc8e34 100644 --- a/src/com/android/providers/downloads/DownloadThread.java +++ b/src/com/android/providers/downloads/DownloadThread.java @@ -29,6 +29,7 @@ import android.net.http.AndroidHttpClient; import android.os.FileUtils; import android.os.PowerManager; import android.os.Process; +import android.os.SystemClock; import android.provider.Downloads; import android.text.TextUtils; import android.util.Log; @@ -100,6 +101,13 @@ public class DownloadThread extends Thread { public long mBytesNotified = 0; public long mTimeLastNotification = 0; + /** Historical bytes/second speed of this download. */ + public long mSpeed; + /** Time when current sample started. */ + public long mSpeedSampleStart; + /** Bytes transferred since current sample started. */ + public long mSpeedSampleBytes; + public State(DownloadInfo info) { mMimeType = Intent.normalizeMimeType(info.mMimeType); mRequestUri = info.mUri; @@ -423,7 +431,25 @@ public class DownloadThread extends Thread { * Report download progress through the database if necessary. */ private void reportProgress(State state, InnerState innerState) { - long now = mSystemFacade.currentTimeMillis(); + final long now = SystemClock.elapsedRealtime(); + + final long sampleDelta = now - state.mSpeedSampleStart; + if (sampleDelta > 500) { + final long sampleSpeed = ((state.mCurrentBytes - state.mSpeedSampleBytes) * 1000) + / sampleDelta; + + if (state.mSpeed == 0) { + state.mSpeed = sampleSpeed; + } else { + state.mSpeed = ((state.mSpeed * 3) + sampleSpeed) / 4; + } + + state.mSpeedSampleStart = now; + state.mSpeedSampleBytes = state.mCurrentBytes; + + DownloadHandler.getInstance().setCurrentSpeed(mInfo.mId, state.mSpeed); + } + if (state.mCurrentBytes - state.mBytesNotified > Constants.MIN_PROGRESS_STEP && now - state.mTimeLastNotification > Constants.MIN_PROGRESS_TIME) { ContentValues values = new ContentValues(); diff --git a/tests/src/com/android/providers/downloads/DownloadProviderFunctionalTest.java b/tests/src/com/android/providers/downloads/DownloadProviderFunctionalTest.java index bbc5c3e0..23d300f8 100644 --- a/tests/src/com/android/providers/downloads/DownloadProviderFunctionalTest.java +++ b/tests/src/com/android/providers/downloads/DownloadProviderFunctionalTest.java @@ -116,7 +116,7 @@ public class DownloadProviderFunctionalTest extends AbstractDownloadProviderFunc int rslt = getDownloadStatus(downloadUri); if (rslt == Downloads.Impl.STATUS_RUNNING || rslt == Downloads.Impl.STATUS_PENDING) { Log.i(TAG, "status is: " + rslt + ", for: " + downloadUri); - DownloadHandler.getInstance().WaitUntilDownloadsTerminate(); + DownloadHandler.getInstance().waitUntilDownloadsTerminate(); Thread.sleep(100); } else { done = true; diff --git a/tests/src/com/android/providers/downloads/FakeSystemFacade.java b/tests/src/com/android/providers/downloads/FakeSystemFacade.java index 6898efdb..481b5cba 100644 --- a/tests/src/com/android/providers/downloads/FakeSystemFacade.java +++ b/tests/src/com/android/providers/downloads/FakeSystemFacade.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.content.pm.PackageManager.NameNotFoundException; import android.net.ConnectivityManager; import android.net.NetworkInfo; +import android.net.NetworkInfo.DetailedState; import java.util.ArrayList; import java.util.LinkedList; @@ -36,7 +37,9 @@ public class FakeSystemFacade implements SystemFacade { if (mActiveNetworkType == null) { return null; } else { - return new NetworkInfo(mActiveNetworkType, 0, null, null); + final NetworkInfo info = new NetworkInfo(mActiveNetworkType, 0, null, null); + info.setDetailedState(DetailedState.CONNECTED, null, null); + return info; } } diff --git a/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java b/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java index 34a69df9..2661a1f2 100644 --- a/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java +++ b/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java @@ -17,6 +17,7 @@ package com.android.providers.downloads; import static com.google.testing.littlemock.LittleMock.anyInt; +import static com.google.testing.littlemock.LittleMock.anyString; import static com.google.testing.littlemock.LittleMock.atLeastOnce; import static com.google.testing.littlemock.LittleMock.isA; import static com.google.testing.littlemock.LittleMock.never; @@ -449,6 +450,8 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest { receiver.mSystemFacade = mSystemFacade; Intent intent = new Intent(Constants.ACTION_LIST); intent.setData(Uri.parse(Downloads.Impl.CONTENT_URI + "/" + download.mId)); + intent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS, + new long[] { download.mId }); receiver.onReceive(mContext, intent); assertEquals(1, mSystemFacade.mBroadcastsSent.size()); @@ -523,7 +526,7 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest { download.runUntilStatus(DownloadManager.STATUS_SUCCESSFUL); runService(); - verify(mNotifManager, never()).notify(anyInt(), isA(Notification.class)); + verify(mNotifManager, never()).notify(anyString(), anyInt(), isA(Notification.class)); // TODO: verify that it never cancels } @@ -536,8 +539,8 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest { runService(); // TODO: verify different notif types with tags - verify(mNotifManager, atLeastOnce()).notify(anyInt(), isA(Notification.class)); - verify(mNotifManager, times(1)).cancel(anyInt()); + verify(mNotifManager, atLeastOnce()).notify(anyString(), anyInt(), isA(Notification.class)); + verify(mNotifManager, times(1)).cancel(anyString(), anyInt()); } public void testNotificationVisibleComplete() throws Exception { @@ -549,8 +552,8 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest { runService(); // TODO: verify different notif types with tags - verify(mNotifManager, atLeastOnce()).notify(anyInt(), isA(Notification.class)); - verify(mNotifManager, times(1)).cancel(anyInt()); + verify(mNotifManager, atLeastOnce()).notify(anyString(), anyInt(), isA(Notification.class)); + verify(mNotifManager, times(1)).cancel(anyString(), anyInt()); } public void testRetryAfter() throws Exception { diff --git a/ui/src/com/android/providers/downloads/ui/DownloadList.java b/ui/src/com/android/providers/downloads/ui/DownloadList.java index 6ffa0691..ed369932 100644 --- a/ui/src/com/android/providers/downloads/ui/DownloadList.java +++ b/ui/src/com/android/providers/downloads/ui/DownloadList.java @@ -51,6 +51,7 @@ import android.widget.ExpandableListView.OnChildClickListener; import android.widget.ListView; import android.widget.Toast; +import com.android.providers.downloads.Constants; import com.android.providers.downloads.OpenHelper; import java.io.FileNotFoundException; @@ -624,15 +625,11 @@ public class DownloadList extends Activity { .show(); } - /** - * TODO use constants/shared code? - */ private void sendRunningDownloadClickedBroadcast(long id) { - Intent intent = new Intent("android.intent.action.DOWNLOAD_LIST"); - intent.setClassName("com.android.providers.downloads", - "com.android.providers.downloads.DownloadReceiver"); - intent.setData(ContentUris.withAppendedId(Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, id)); - intent.putExtra("multiple", false); + final Intent intent = new Intent(Constants.ACTION_LIST); + intent.setPackage(Constants.PROVIDER_PACKAGE_NAME); + intent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS, + new long[] { id }); sendBroadcast(intent); } |