diff options
Diffstat (limited to 'ui')
43 files changed, 868 insertions, 1943 deletions
diff --git a/ui/res/anim/footer_appear.xml b/ui/res/anim/footer_appear.xml deleted file mode 100644 index aacfd035..00000000 --- a/ui/res/anim/footer_appear.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -** Copyright 2010, Google Inc. -** -** 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. -*/ ---> - -<set xmlns:android="http://schemas.android.com/apk/res/android" > - <translate - android:interpolator="@android:anim/decelerate_interpolator" - android:fromYDelta="+12%p" - android:toYDelta="0" - android:duration="300" /> -</set> diff --git a/ui/res/anim/footer_disappear.xml b/ui/res/anim/footer_disappear.xml deleted file mode 100644 index d87be6ab..00000000 --- a/ui/res/anim/footer_disappear.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -** Copyright 2010, Google Inc. -** -** 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. -*/ ---> - -<set xmlns:android="http://schemas.android.com/apk/res/android" > - <translate - android:interpolator="@android:anim/decelerate_interpolator" - android:fromYDelta="0" - android:toYDelta="+12%p" - android:duration="300" /> -</set> diff --git a/ui/res/drawable-hdpi/ic_download_misc_file_type.png b/ui/res/drawable-hdpi/ic_download_misc_file_type.png Binary files differdeleted file mode 100644 index dab3b6e1..00000000 --- a/ui/res/drawable-hdpi/ic_download_misc_file_type.png +++ /dev/null diff --git a/ui/res/drawable-hdpi/ic_launcher_drm_file.png b/ui/res/drawable-hdpi/ic_launcher_drm_file.png Binary files differdeleted file mode 100644 index 9df1c556..00000000 --- a/ui/res/drawable-hdpi/ic_launcher_drm_file.png +++ /dev/null diff --git a/ui/res/drawable-hdpi/ic_menu_desk_clock.png b/ui/res/drawable-hdpi/ic_menu_desk_clock.png Binary files differdeleted file mode 100644 index 4101434e..00000000 --- a/ui/res/drawable-hdpi/ic_menu_desk_clock.png +++ /dev/null diff --git a/ui/res/drawable-mdpi/ic_download_misc_file_type.png b/ui/res/drawable-mdpi/ic_download_misc_file_type.png Binary files differdeleted file mode 100644 index ceed70cf..00000000 --- a/ui/res/drawable-mdpi/ic_download_misc_file_type.png +++ /dev/null diff --git a/ui/res/drawable-mdpi/ic_launcher_drm_file.png b/ui/res/drawable-mdpi/ic_launcher_drm_file.png Binary files differdeleted file mode 100644 index 57378b23..00000000 --- a/ui/res/drawable-mdpi/ic_launcher_drm_file.png +++ /dev/null diff --git a/ui/res/layout/download_list.xml b/ui/res/layout/download_list.xml deleted file mode 100644 index a0ff5ff2..00000000 --- a/ui/res/layout/download_list.xml +++ /dev/null @@ -1,71 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical" - android:divider="?android:attr/dividerHorizontal" - android:showDividers="middle" - android:dividerPadding="16dip"> - - <!-- The main area showing the list of downloads --> - <FrameLayout android:layout_width="match_parent" - android:layout_height="0dip" - android:layout_weight="1"> - - <ExpandableListView android:id="@+id/date_ordered_list" - android:paddingStart="16dip" - android:paddingEnd="16dip" - android:paddingBottom="16dip" - android:clipToPadding="false" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:scrollbarStyle="outsideOverlay" /> - <ListView android:id="@+id/size_ordered_list" - android:paddingStart="16dip" - android:paddingEnd="16dip" - android:paddingBottom="16dip" - android:clipToPadding="false" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:scrollbarStyle="outsideOverlay" /> - <TextView xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/empty" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:text="@string/no_downloads" - android:gravity="center" - android:textStyle="bold"/> - </FrameLayout> - - <!-- The selection menu that pops up from the bottom of the screen --> - <LinearLayout android:id="@+id/sort_menu" - android:orientation="horizontal" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="center" - style="?android:attr/buttonBarStyle"> - - <Button android:id="@+id/sort_button" - style="?android:attr/buttonBarButtonStyle" - android:layout_width="0dip" - android:layout_weight="1" - android:layout_height="match_parent"/> - </LinearLayout> -</LinearLayout> diff --git a/ui/res/layout/download_list_item.xml b/ui/res/layout/download_list_item.xml deleted file mode 100644 index 2435ba7f..00000000 --- a/ui/res/layout/download_list_item.xml +++ /dev/null @@ -1,85 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<com.android.providers.downloads.ui.DownloadItem - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:minHeight="?android:attr/listPreferredItemHeight" - android:paddingStart="?android:attr/listPreferredItemPaddingStart" - android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" - android:paddingTop="8dip" - android:paddingBottom="8dip" - android:columnCount="4" - android:descendantFocusability="blocksDescendants"> - - <!-- Clicks are handled directly by DownloadItem --> - <CheckBox - android:id="@+id/download_checkbox" - android:layout_rowSpan="3" - android:layout_gravity="center_vertical" - android:clickable="false" /> - - <ImageView - android:id="@+id/download_icon" - android:layout_width="@android:dimen/app_icon_size" - android:layout_height="@android:dimen/app_icon_size" - android:layout_rowSpan="3" - android:layout_marginEnd="8dip" - android:layout_gravity="center_vertical" - android:scaleType="centerInside" - android:contentDescription="@null" /> - - <TextView - android:id="@+id/download_title" - android:layout_width="0dip" - android:layout_columnSpan="2" - android:layout_gravity="fill_horizontal" - android:singleLine="true" - android:ellipsize="marquee" - android:textStyle="bold" - android:textAppearance="?android:attr/textAppearance" - android:textAlignment="viewStart" /> - - <TextView - android:id="@+id/domain" - android:layout_width="0dip" - android:layout_columnSpan="2" - android:layout_gravity="fill_horizontal" - android:singleLine="true" - android:ellipsize="marquee" - android:textAppearance="?android:attr/textAppearanceSmall" - android:textAlignment="viewStart" /> - - <TextView - android:id="@+id/size_text" - android:layout_width="0dip" - android:layout_gravity="fill_horizontal" - android:singleLine="true" - android:ellipsize="marquee" - android:textAppearance="?android:attr/textAppearanceSmall" - android:textAlignment="viewStart" /> - - <TextView - android:id="@+id/status_text" - android:layout_marginStart="8dip" - android:textAppearance="?android:attr/textAppearanceSmall" - android:textAlignment="viewStart" /> - -</com.android.providers.downloads.ui.DownloadItem> diff --git a/ui/res/layout/list_group_header.xml b/ui/res/layout/list_group_header.xml deleted file mode 100644 index 466cd6c6..00000000 --- a/ui/res/layout/list_group_header.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<TextView xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@android:id/text1" - android:layout_width="match_parent" - android:layout_height="?android:attr/listPreferredItemHeight" - android:paddingStart="?android:attr/expandableListPreferredItemPaddingLeft" - android:textAppearance="?android:attr/textAppearanceMedium" - android:gravity="center_vertical" /> diff --git a/ui/res/menu/download_menu.xml b/ui/res/menu/download_menu.xml deleted file mode 100644 index a33dd52b..00000000 --- a/ui/res/menu/download_menu.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- 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. ---> - -<menu xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:id="@+id/share_download" - android:icon="@android:drawable/ic_menu_share" - android:title="@string/download_share_dialog" - android:showAsAction="always" /> - - <item android:id="@+id/delete_download" - android:icon="@android:drawable/ic_menu_delete" - android:title="@string/delete_download" - android:showAsAction="always" /> -</menu> diff --git a/ui/res/mipmap-hdpi/ic_launcher_download.png b/ui/res/mipmap-hdpi/ic_launcher_download.png Binary files differindex 2450cfbb..f958bbd3 100644 --- a/ui/res/mipmap-hdpi/ic_launcher_download.png +++ b/ui/res/mipmap-hdpi/ic_launcher_download.png diff --git a/ui/res/mipmap-mdpi/ic_launcher_download.png b/ui/res/mipmap-mdpi/ic_launcher_download.png Binary files differindex 7b56ada3..f2e93766 100644 --- a/ui/res/mipmap-mdpi/ic_launcher_download.png +++ b/ui/res/mipmap-mdpi/ic_launcher_download.png diff --git a/ui/res/mipmap-xhdpi/ic_launcher_download.png b/ui/res/mipmap-xhdpi/ic_launcher_download.png Binary files differindex 775004f2..4dc53363 100644 --- a/ui/res/mipmap-xhdpi/ic_launcher_download.png +++ b/ui/res/mipmap-xhdpi/ic_launcher_download.png diff --git a/ui/res/mipmap-xxhdpi/ic_launcher_download.png b/ui/res/mipmap-xxhdpi/ic_launcher_download.png Binary files differindex ed8c7827..87162909 100644 --- a/ui/res/mipmap-xxhdpi/ic_launcher_download.png +++ b/ui/res/mipmap-xxhdpi/ic_launcher_download.png diff --git a/ui/res/mipmap-xxxhdpi/ic_launcher_download.png b/ui/res/mipmap-xxxhdpi/ic_launcher_download.png Binary files differindex 2dbe0f2d..f5be2199 100644 --- a/ui/res/mipmap-xxxhdpi/ic_launcher_download.png +++ b/ui/res/mipmap-xxxhdpi/ic_launcher_download.png diff --git a/ui/res/values-ms/strings.xml b/ui/res/values-az-rAZ/strings.xml index e1e9f666..5ee50dfe 100644 --- a/ui/res/values-ms/strings.xml +++ b/ui/res/values-az-rAZ/strings.xml @@ -16,35 +16,35 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="3070921713463294774">"Muat turun"</string> - <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Muat turun - Diisih mengikut tarikh"</string> - <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Muat turun - Diisih mengikut saiz"</string> - <string name="no_downloads" msgid="1029667411186146836">"Tiada muat turun."</string> - <string name="missing_title" msgid="830115697868833773">"<Tidak diketahui>"</string> - <string name="button_sort_by_size" msgid="7331549713691146251">"Isih mengikut saiz"</string> - <string name="button_sort_by_date" msgid="8800842892684101528">"Isih mengikut tarikh"</string> - <string name="download_queued" msgid="104973307780629904">"Baris gilir"</string> - <string name="download_running" msgid="4656462962155580641">"Sdg dijlnkn"</string> - <string name="download_success" msgid="7006048006543495236">"Selesai"</string> - <string name="download_error" msgid="8081329546008568251">"Tidak berjaya"</string> - <string name="dialog_title_not_available" msgid="5746317632356158515">"Tidak dapat memuat turun"</string> - <string name="dialog_failed_body" msgid="587545111677064427">"Adakah anda mahu mencuba semula muat turun fail kemudian atau memadamnya dari baris gilir?"</string> - <string name="dialog_title_queued_body" msgid="6760681913815015219">"Fail dalam giliran"</string> - <string name="dialog_queued_body" msgid="708552801635572720">"Fail ini digilirkan untuk muat turun pada masa akan datang jadi ia belum lagi tersedia."</string> - <string name="dialog_file_missing_body" msgid="3223012612774276284">"Tidak dapat mencari fail yang dimuat turun."</string> - <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Tidak dapat menyelesaikan muat turun. Ruang pada storan luaran tidak mencukupi."</string> - <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Tidak dapat menyelesaikan muat turun. Ruang pada storan muat turun dalaman tidak mencukupi."</string> - <string name="dialog_cannot_resume" msgid="8664509751358983543">"Muat turun terganggu dan tidak dapat disambung semula."</string> - <string name="dialog_file_already_exists" msgid="8308563940663449590">"Tidak dapat memuat turun. Fail destinasi sudah pun wujud."</string> - <string name="dialog_media_not_found" msgid="4468088418758018765">"Tidak dapat memuat turun. Media luaran tidak tersedia."</string> - <string name="download_no_application_title" msgid="7024782176657362251">"Tidak dapat membuka fail"</string> - <string name="remove_download" msgid="6372920256257247857">"Alih keluar"</string> - <string name="delete_download" msgid="76629022653866471">"Padam"</string> - <string name="keep_queued_download" msgid="5144882786014818569">"Simpan"</string> - <string name="cancel_running_download" msgid="5232704030969221112">"Batal"</string> - <string name="retry_download" msgid="7617100787922717912">"Cuba semula"</string> - <string name="deselect_all" msgid="6348198946254776764">"Nyahpilih semua"</string> - <string name="select_all" msgid="634074918366265804">"Pilih semua"</string> - <string name="selected_count" msgid="2101564570019753277">"Pilihan <xliff:g id="NUMBER">%1$d</xliff:g> dari <xliff:g id="TOTAL">%2$d</xliff:g>"</string> - <string name="download_share_dialog" msgid="3355867339806448955">"Kongsi melalui"</string> + <string name="app_label" msgid="3070921713463294774">"Endirmələr"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Endirilənlər - Tarixə görə sıralanıb"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Endirilənlər - Ölçüsünə görə sıralanıb"</string> + <string name="no_downloads" msgid="1029667411186146836">"Endirmə yoxdur."</string> + <string name="missing_title" msgid="830115697868833773">"<Bilinməyən>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"Ölçüsünə görə sırala"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"Tarixə görə sırala"</string> + <string name="download_queued" msgid="104973307780629904">"Növbəyə salınıb"</string> + <string name="download_running" msgid="4656462962155580641">"Davam edir"</string> + <string name="download_success" msgid="7006048006543495236">"Tamamlandı"</string> + <string name="download_error" msgid="8081329546008568251">"Nəticəsiz"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"Endirilmədi"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"Faylı yenidən endirmək istəyirsiniz yoxsa sıradan silmək istəyirsiniz?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"Növbədəki fayl"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"Bu fayl gələcək endirmə üçün növbəyə salındı, buna görə hələ mövcud deyil."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"Endirilmiş fayl tapılmır."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Endirmə tamamlanmadı. Xarici yaddaşda kifayət qədər yer yoxdur"</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Endirmə tamamlanmadı. Daxili endirmə yaddaşında kifayət qədər yer yoxdur."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"Endirmə kəsildi və bərpa edilə bilməz."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"Endirilmir. Hədəf fayl artıq mövcuddur."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"Endirilmədi. Xarici media mövcud deyil."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"Fayl açılmır"</string> + <string name="remove_download" msgid="6372920256257247857">"Yığışdır"</string> + <string name="delete_download" msgid="76629022653866471">"Sil"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"Saxla"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"Ləğv et"</string> + <string name="retry_download" msgid="7617100787922717912">"Yeniden yoxla"</string> + <string name="deselect_all" msgid="6348198946254776764">"Hamısını qaldır"</string> + <string name="select_all" msgid="634074918366265804">"Hamısını seç"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g> içindən seçilmiş <xliff:g id="NUMBER">%1$d</xliff:g>"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"Vasitəsilə paylaş"</string> </resources> diff --git a/ui/res/values-be/strings.xml b/ui/res/values-be/strings.xml deleted file mode 100644 index 6d0ca937..00000000 --- a/ui/res/values-be/strings.xml +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="3070921713463294774">"Спампоўкі"</string> - <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Запампаванае - Сартаванне паводле даты"</string> - <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Запампаванае - Сартаванне паводле памеру"</string> - <string name="no_downloads" msgid="1029667411186146836">"Няма спамповак."</string> - <string name="missing_title" msgid="830115697868833773">"Невядомы"</string> - <string name="button_sort_by_size" msgid="7331549713691146251">"Сартаваць паводле памеру"</string> - <string name="button_sort_by_date" msgid="8800842892684101528">"Сартаваць паводле даты"</string> - <string name="download_queued" msgid="104973307780629904">"У чарзе"</string> - <string name="download_running" msgid="4656462962155580641">"Выконваецца"</string> - <string name="download_success" msgid="7006048006543495236">"Гатова"</string> - <string name="download_error" msgid="8081329546008568251">"Няўдала"</string> - <string name="dialog_title_not_available" msgid="5746317632356158515">"Не атрымалася спампаваць"</string> - <string name="dialog_failed_body" msgid="587545111677064427">"Жадаеце паўтарыць спампоўванне файла пазней або выдаліць яго з чаргі?"</string> - <string name="dialog_title_queued_body" msgid="6760681913815015219">"Файл у чарзе"</string> - <string name="dialog_queued_body" msgid="708552801635572720">"Гэты файл знаходзіцца ў чарзе на спампоўку і пакуль недаступны."</string> - <string name="dialog_file_missing_body" msgid="3223012612774276284">"Немагчыма знайсці спампаваны файл."</string> - <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Немагчыма завершыць спампоўку. Не хапае месца на знешнім назапашвальнiку."</string> - <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Немагчыма скончыць спампоўку. Не хапае месца ва ўнутраным сховішчы."</string> - <string name="dialog_cannot_resume" msgid="8664509751358983543">"Спампоўка перапынена і не можа быць адноўлена."</string> - <string name="dialog_file_already_exists" msgid="8308563940663449590">"Немагчыма спампаваць. Мэтавы файл ужо існуе."</string> - <string name="dialog_media_not_found" msgid="4468088418758018765">"Немагчыма спампаваць. Не падключаны знешнi назапашвальнiк."</string> - <string name="download_no_application_title" msgid="7024782176657362251">"Немагчыма адкрыць файл"</string> - <string name="remove_download" msgid="6372920256257247857">"Выдаліць"</string> - <string name="delete_download" msgid="76629022653866471">"Выдаліць"</string> - <string name="keep_queued_download" msgid="5144882786014818569">"Пакінуць"</string> - <string name="cancel_running_download" msgid="5232704030969221112">"Адмена"</string> - <string name="retry_download" msgid="7617100787922717912">"Паўтарыць"</string> - <string name="deselect_all" msgid="6348198946254776764">"Адмяніць выбар усяго"</string> - <string name="select_all" msgid="634074918366265804">"Выбраць усё"</string> - <string name="selected_count" msgid="2101564570019753277">"Выбрана <xliff:g id="NUMBER">%1$d</xliff:g> з <xliff:g id="TOTAL">%2$d</xliff:g>"</string> - <string name="download_share_dialog" msgid="3355867339806448955">"Апублікаваць у"</string> -</resources> diff --git a/ui/res/values-bn-rBD/strings.xml b/ui/res/values-bn-rBD/strings.xml new file mode 100644 index 00000000..5aca3712 --- /dev/null +++ b/ui/res/values-bn-rBD/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"ডাউনলোডগুলি"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"ডাউনলোডগুলি - তারিখ অনুসারে সাজানো"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"ডাউনলোডগুলি - আকার অনুসারে সাজানো"</string> + <string name="no_downloads" msgid="1029667411186146836">"কোনো ডাউনলোড নেই।"</string> + <string name="missing_title" msgid="830115697868833773">"<অজানা>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"আকার অনুসারে সাজান"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"তারিখ অনুসারে বাছাই করুন"</string> + <string name="download_queued" msgid="104973307780629904">"সারিবদ্ধ"</string> + <string name="download_running" msgid="4656462962155580641">"প্রগতিতে রয়েছে"</string> + <string name="download_success" msgid="7006048006543495236">"সম্পূর্ণ"</string> + <string name="download_error" msgid="8081329546008568251">"অসফল"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"ডাউনলোড করা যায়নি"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"আপনি পরে ফাইলটি ডাউনলোড করতে পুনরায় চেষ্টা করবেন অথবা সারি থেকে এটি মুছে ফেলতে চান?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"ফাইল সারিতে রয়েছে"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"এই ফাইলটি ভবিষ্যতের ডাউনলোডের জন্য সারিবদ্ধ করা আছে তাই এখনো উপলব্ধ নয়।"</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"ডাউনলোড করা ফাইল খুঁজে পাওয়া যাবে না।"</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"ডাউনলোড শেষ করা যাবে না। বহিরাগত সঞ্চয়স্থানে পর্যাপ্ত জায়গা নেই।"</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"ডাউনলোড শেষ করা যাবে না। অভ্যন্তরীণ ডাউনলোড সঞ্চয়স্থানে পর্যাপ্ত জায়গা নেই।"</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"ডাউনলোড বাধাপ্রাপ্ত হয়েছে এবং পুনঃসূচনা করা যাবে না।"</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"ডাউনলোড করতে পারবেন না। গন্তব্য ফাইলটি ইতিমধ্যেই বিদ্যমান।"</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"ডাউনলোড করতে পারবেন না। বহিরাগত মিডিয়া উপলব্ধ নয়।"</string> + <string name="download_no_application_title" msgid="7024782176657362251">"ফাইল খোলা যাবে না"</string> + <string name="remove_download" msgid="6372920256257247857">"সরান"</string> + <string name="delete_download" msgid="76629022653866471">"মুছুন"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"রাখুন"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"বাতিল করুন"</string> + <string name="retry_download" msgid="7617100787922717912">"পুনরায় চেষ্টা করুন"</string> + <string name="deselect_all" msgid="6348198946254776764">"সবগুলিকে নির্বাচনমুক্ত করুন"</string> + <string name="select_all" msgid="634074918366265804">"সবগুলি নির্বাচন করুন"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g>টির মধ্যে <xliff:g id="NUMBER">%1$d</xliff:g>টি নির্বাচিত"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"এর মাধ্যমে ভাগ করুন"</string> +</resources> diff --git a/ui/res/values-et/strings.xml b/ui/res/values-eu-rES/strings.xml index e2602e5d..b852bb0c 100644 --- a/ui/res/values-et/strings.xml +++ b/ui/res/values-eu-rES/strings.xml @@ -16,35 +16,35 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="3070921713463294774">"Allalaadimised"</string> - <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Allalaadimised - sorditud kuupäeva järgi"</string> - <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Allalaadimised - sorditud suuruse järgi"</string> - <string name="no_downloads" msgid="1029667411186146836">"Allalaadimisi pole."</string> - <string name="missing_title" msgid="830115697868833773">"<Tundmatu>"</string> - <string name="button_sort_by_size" msgid="7331549713691146251">"Sordi suuruse järgi"</string> - <string name="button_sort_by_date" msgid="8800842892684101528">"Sordi kuupäeva järgi"</string> - <string name="download_queued" msgid="104973307780629904">"Järjekorras"</string> - <string name="download_running" msgid="4656462962155580641">"Edenemine"</string> - <string name="download_success" msgid="7006048006543495236">"Lõpetatud"</string> - <string name="download_error" msgid="8081329546008568251">"Ebaõnnestus"</string> - <string name="dialog_title_not_available" msgid="5746317632356158515">"Ei saanud alla laadida."</string> - <string name="dialog_failed_body" msgid="587545111677064427">"Kas soovite proovida faili hiljem uuesti alla laadida või kustutada selle järjekorrast?"</string> - <string name="dialog_title_queued_body" msgid="6760681913815015219">"Järjekorras olev fail"</string> - <string name="dialog_queued_body" msgid="708552801635572720">"Fail on allalaadimise järjekorras ega ole seetõttu veel saadaval."</string> - <string name="dialog_file_missing_body" msgid="3223012612774276284">"Ei leia allalaaditud faili."</string> - <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Allalaadimist ei saa lõpetada. Välismäluseadmes ei ole piisavalt ruumi."</string> - <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Allalaadimist ei saa lõpule viia. Sisest allalaadimisruumi ei ole piisavalt."</string> - <string name="dialog_cannot_resume" msgid="8664509751358983543">"Allalaadimine katkes ja seda ei saa jätkata."</string> - <string name="dialog_file_already_exists" msgid="8308563940663449590">"Ei saa alla laadida. Sihtfail on juba olemas."</string> - <string name="dialog_media_not_found" msgid="4468088418758018765">"Ei saa alla laadida. Väline andmekandja ei ole saadaval."</string> - <string name="download_no_application_title" msgid="7024782176657362251">"Faili ei saa avada"</string> - <string name="remove_download" msgid="6372920256257247857">"Eemalda"</string> - <string name="delete_download" msgid="76629022653866471">"Kustuta"</string> - <string name="keep_queued_download" msgid="5144882786014818569">"Jäta alles"</string> - <string name="cancel_running_download" msgid="5232704030969221112">"Tühista"</string> - <string name="retry_download" msgid="7617100787922717912">"Proovi uuesti"</string> - <string name="deselect_all" msgid="6348198946254776764">"Tühista kõik valikud"</string> - <string name="select_all" msgid="634074918366265804">"Vali kõik"</string> - <string name="selected_count" msgid="2101564570019753277">"Valitud <xliff:g id="NUMBER">%1$d</xliff:g>/<xliff:g id="TOTAL">%2$d</xliff:g>"</string> - <string name="download_share_dialog" msgid="3355867339806448955">"Jaga rakendusest"</string> + <string name="app_label" msgid="3070921713463294774">"Deskargak"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Deskargak, dataren arabera ordenatuta"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Deskargak, tamainaren arabera ordenatuta"</string> + <string name="no_downloads" msgid="1029667411186146836">"Ez dago deskargarik."</string> + <string name="missing_title" msgid="830115697868833773">"<Ezezaguna>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"Ordenatu tamainaren arabera"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"Ordenatu dataren arabera"</string> + <string name="download_queued" msgid="104973307780629904">"Ilaran ezarri da"</string> + <string name="download_running" msgid="4656462962155580641">"Abian"</string> + <string name="download_success" msgid="7006048006543495236">"Osatuta"</string> + <string name="download_error" msgid="8081329546008568251">"Ezin izan da deskargatu"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"Ezin izan da deskargatu"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"Fitxategia geroago deskargatzen saiatu nahi duzu edo ilaratik ezabatu nahi duzu?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"Fitxategia ilaran dago"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"Fitxategia ilaran ezarri da geroago deskargatzeko eta, beraz, ez dago oraindik erabilgarri."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"Ezin da deskargatutako fitxategia aurkitu."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Ezin da deskarga amaitu. Ez dago deskargetarako behar adina kanpoko memoria."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Ezin da deskarga amaitu. Ez dago deskargetarako behar adina barneko memoria."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"Deskarga eten egin da eta ezin zaio berrekin."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"Ezin da deskargatu. Helburuko fitxategia bazegoen lehendik ere."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"Ezin da deskargatu. Kanpoko multimedia-elementua ez dago erabilgarri."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"Ezin da fitxategia ireki"</string> + <string name="remove_download" msgid="6372920256257247857">"Kendu"</string> + <string name="delete_download" msgid="76629022653866471">"Ezabatu"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"Utzi bere horretan"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"Utzi"</string> + <string name="retry_download" msgid="7617100787922717912">"Saiatu berriro"</string> + <string name="deselect_all" msgid="6348198946254776764">"Desautatu guztiak"</string> + <string name="select_all" msgid="634074918366265804">"Hautatu guztiak"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="NUMBER">%1$d</xliff:g>/<xliff:g id="TOTAL">%2$d</xliff:g> hautatuta"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"Partekatu honekin:"</string> </resources> diff --git a/ui/res/values-gl-rES/strings.xml b/ui/res/values-gl-rES/strings.xml new file mode 100644 index 00000000..c3d6c800 --- /dev/null +++ b/ui/res/values-gl-rES/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"Descargas"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Descargas: ordenadas por data"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Descargas: ordenadas por tamaño"</string> + <string name="no_downloads" msgid="1029667411186146836">"Non hai descargas."</string> + <string name="missing_title" msgid="830115697868833773">"<Descoñecido>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"Ordenar por tamaño"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"Ordenar por data"</string> + <string name="download_queued" msgid="104973307780629904">"Na cola"</string> + <string name="download_running" msgid="4656462962155580641">"En curso"</string> + <string name="download_success" msgid="7006048006543495236">"Completada"</string> + <string name="download_error" msgid="8081329546008568251">"Incorrecta"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"Non se puido descargar"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"Queres tentar descargar o ficheiro máis tarde ou queres eliminalo da cola?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"Ficheiro en cola"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"Este ficheiro está na cola para descargar máis adiante, polo que aínda non está dispoñible."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"Non se puido atopar o ficheiro descargado."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Non se pode rematar a descarga. Non hai espazo suficiente no almacenamento externo."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Non se pode rematar a descarga. Non hai espazo suficiente no almacenamento de descargas interno."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"Interrompeuse a descarga e non se pode retomar."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"Non se pode descargar. O ficheiro de destino xa existe."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"Non se pode realizar a descarga. O soporte externo non está dispoñible."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"Non se pode abrir o ficheiro"</string> + <string name="remove_download" msgid="6372920256257247857">"Eliminar"</string> + <string name="delete_download" msgid="76629022653866471">"Eliminar"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"Manter"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"Cancelar"</string> + <string name="retry_download" msgid="7617100787922717912">"Tentar de novo"</string> + <string name="deselect_all" msgid="6348198946254776764">"Desmarcar todo"</string> + <string name="select_all" msgid="634074918366265804">"Seleccionar todas"</string> + <string name="selected_count" msgid="2101564570019753277">"Seleccionáronse <xliff:g id="NUMBER">%1$d</xliff:g> de <xliff:g id="TOTAL">%2$d</xliff:g>"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"Compartir a través de"</string> +</resources> diff --git a/ui/res/values-hi/strings.xml b/ui/res/values-hi/strings.xml index 4761bd34..d33f40c4 100644 --- a/ui/res/values-hi/strings.xml +++ b/ui/res/values-hi/strings.xml @@ -28,12 +28,12 @@ <string name="download_success" msgid="7006048006543495236">"पूर्ण"</string> <string name="download_error" msgid="8081329546008568251">"विफल"</string> <string name="dialog_title_not_available" msgid="5746317632356158515">"डाउनलोड नहीं किया जा सका"</string> - <string name="dialog_failed_body" msgid="587545111677064427">"क्या आप बाद में फ़ाइल डाउनलोड करने का पुनः प्रयास करना चाहते हैं या उसे कतार से हटाना चाहते हैं?"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"क्या आप बाद में फ़ाइल डाउनलोड करने का फिर से प्रयास करना चाहते हैं या उसे कतार से हटाना चाहते हैं?"</string> <string name="dialog_title_queued_body" msgid="6760681913815015219">"फ़ाइल कतार में"</string> <string name="dialog_queued_body" msgid="708552801635572720">"यह फ़ाइल भविष्य के डाउनलोड के लिए कतारबद्ध है इसलिए अभी उपलब्ध नहीं है."</string> <string name="dialog_file_missing_body" msgid="3223012612774276284">"डाउनलोड की गई फ़ाइल नहीं मिल रही."</string> - <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"डाउनलोड पूर्ण नहीं हो सकता. बाह्य संग्रहण पर पर्याप्त स्थान नहीं है."</string> - <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"डाउनलोड पूर्ण नहीं हो सकता. आंतरिक डाउनलोड संग्रहण में पर्याप्त स्थान नहीं है."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"डाउनलोड पूर्ण नहीं हो सकता. बाह्य मेमोरी पर पर्याप्त स्थान नहीं है."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"डाउनलोड पूर्ण नहीं हो सकता. आंतरिक डाउनलोड मेमोरी में पर्याप्त स्थान नहीं है."</string> <string name="dialog_cannot_resume" msgid="8664509751358983543">"डाउनलोड बाधित हो गया था और इसे फिर से शुरू नहीं किया जा सकता."</string> <string name="dialog_file_already_exists" msgid="8308563940663449590">"डाउनलोड नहीं कर सकता. गंतव्य फ़ाइल पहले से मौजूद है."</string> <string name="dialog_media_not_found" msgid="4468088418758018765">"डाउनलोड नहीं किया जा सकता. बाह्य मीडिया उपलब्ध नहीं है."</string> @@ -41,9 +41,9 @@ <string name="remove_download" msgid="6372920256257247857">"निकालें"</string> <string name="delete_download" msgid="76629022653866471">"हटाएं"</string> <string name="keep_queued_download" msgid="5144882786014818569">"रखें"</string> - <string name="cancel_running_download" msgid="5232704030969221112">"रद्द करें"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"रहने दें"</string> <string name="retry_download" msgid="7617100787922717912">"पुन: प्रयास करें"</string> - <string name="deselect_all" msgid="6348198946254776764">"सभी का चयन रद्द करें"</string> + <string name="deselect_all" msgid="6348198946254776764">"कुछ भी ना चुनें"</string> <string name="select_all" msgid="634074918366265804">"सभी चुनें"</string> <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g> में से <xliff:g id="NUMBER">%1$d</xliff:g> चयनित"</string> <string name="download_share_dialog" msgid="3355867339806448955">"इसके द्वारा साझा करें"</string> diff --git a/ui/res/values-is-rIS/strings.xml b/ui/res/values-is-rIS/strings.xml new file mode 100644 index 00000000..2db65251 --- /dev/null +++ b/ui/res/values-is-rIS/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"Niðurhal"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Niðurhal – Raðað eftir dagsetningu"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Niðurhal – Raðað eftir stærð"</string> + <string name="no_downloads" msgid="1029667411186146836">"Ekkert niðurhal."</string> + <string name="missing_title" msgid="830115697868833773">"<Óþekkt>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"Raða eftir stærð"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"Raða eftir dagsetningu"</string> + <string name="download_queued" msgid="104973307780629904">"Í biðröð"</string> + <string name="download_running" msgid="4656462962155580641">"Í gangi"</string> + <string name="download_success" msgid="7006048006543495236">"Lokið"</string> + <string name="download_error" msgid="8081329546008568251">"Mistókst"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"Ekki var hægt að sækja"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"Hvort viltu reyna að sækja skrána aftur síðar eða eyða henni úr biðröðinni?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"Skrá í biðröð"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"Þessi skrá er í biðröð til niðurhals síðar og er því ekki tiltæk enn."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"Ekki er hægt að sækja skrána."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Ekki er hægt að ljúka niðurhalinu. Ekki er nægt pláss í ytri geymslu."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Ekki er hægt að ljúka niðurhalinu. Ekki er nægt pláss í innbyggðu niðurhalsgeymslunni."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"Niðurhalið var truflað og ekki er hægt að hefja það að nýju."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"Ekki er hægt að sækja. Viðtökuskráin er þegar til staðar."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"Ekki er hægt að sækja. Ytri geymslumiðill er ekki tilbúinn."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"Ekki er hægt að opna skrána"</string> + <string name="remove_download" msgid="6372920256257247857">"Fjarlægja"</string> + <string name="delete_download" msgid="76629022653866471">"Eyða"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"Halda"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"Hætta við"</string> + <string name="retry_download" msgid="7617100787922717912">"Reyna aftur"</string> + <string name="deselect_all" msgid="6348198946254776764">"Velja ekkert"</string> + <string name="select_all" msgid="634074918366265804">"Velja allt"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="NUMBER">%1$d</xliff:g> skrár valdar af <xliff:g id="TOTAL">%2$d</xliff:g>"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"Deila í gegnum"</string> +</resources> diff --git a/ui/res/values-kk-rKZ/strings.xml b/ui/res/values-kk-rKZ/strings.xml new file mode 100644 index 00000000..5987713f --- /dev/null +++ b/ui/res/values-kk-rKZ/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"Жүктеулер"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Жүктеулер - Мерзім бойынша сұрыпталған"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Жүктеулер - Өлшем бойынша сұрыпталған"</string> + <string name="no_downloads" msgid="1029667411186146836">"Жүктеулер жоқ."</string> + <string name="missing_title" msgid="830115697868833773">"<Белгісіз>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"Өлшемі бойынша сұрыптау"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"Мерзімі бойынша сұрыптау"</string> + <string name="download_queued" msgid="104973307780629904">"Кезекте"</string> + <string name="download_running" msgid="4656462962155580641">"Жүктеуде"</string> + <string name="download_success" msgid="7006048006543495236">"Аяқталды"</string> + <string name="download_error" msgid="8081329546008568251">"Сәтсіз"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"Жүктеу мүмкін болмады."</string> + <string name="dialog_failed_body" msgid="587545111677064427">"Бұл файлды кейінірек қайта жүктеп көруді қалайсыз ба әлде кезектен жойылсын ба?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"Файл кезекте."</string> + <string name="dialog_queued_body" msgid="708552801635572720">"Бұл файл келесі жолы жүктеу үшін кезекке қойылған, сондықтан қазір қол жетімсіз."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"Жүктелген файлдарды таба алмады."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Жүктеуді аяқтау мүмкін емес. Сыртқы жүктеу жадында жеткілікті орын жоқ."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Жүктеуді аяқтау мүмкін емес. Ішкі жүктеу жадында жеткілікті орын жоқ."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"Жүктеу тоқтатылды және оны жалғастыру мүмкін емес."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"Жүктеу мүмкін емес. Мақсатты файл бұрыннан бар."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"Жүктеу мүмкін емес. Сыртқы медиа қол жетімсіз."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"Файлды аша алмады"</string> + <string name="remove_download" msgid="6372920256257247857">"Алып тастау"</string> + <string name="delete_download" msgid="76629022653866471">"Жою"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"Қалсын"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"Өшіру"</string> + <string name="retry_download" msgid="7617100787922717912">"Қайта әрекеттену"</string> + <string name="deselect_all" msgid="6348198946254776764">"Барлығының таңдауын алыңыз"</string> + <string name="select_all" msgid="634074918366265804">"Барлығын таңдау"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="NUMBER">%1$d</xliff:g> таңдалды, барлығы <xliff:g id="TOTAL">%2$d</xliff:g>"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"Бөлісу қолданбасы"</string> +</resources> diff --git a/ui/res/values-km-rKH/strings.xml b/ui/res/values-km-rKH/strings.xml index 5bcc6851..cc5f49b6 100644 --- a/ui/res/values-km-rKH/strings.xml +++ b/ui/res/values-km-rKH/strings.xml @@ -41,7 +41,7 @@ <string name="remove_download" msgid="6372920256257247857">"លុបចេញ"</string> <string name="delete_download" msgid="76629022653866471">"លុប"</string> <string name="keep_queued_download" msgid="5144882786014818569">"បន្ត"</string> - <string name="cancel_running_download" msgid="5232704030969221112">"បោះបង់"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"បោះបង់"</string> <string name="retry_download" msgid="7617100787922717912">"សាកល្បងម្ដងទៀត"</string> <string name="deselect_all" msgid="6348198946254776764">"មិនជ្រើសទាំងអស់"</string> <string name="select_all" msgid="634074918366265804">"ជ្រើសទាំងអស់"</string> diff --git a/ui/res/values-kn-rIN/strings.xml b/ui/res/values-kn-rIN/strings.xml new file mode 100644 index 00000000..62fa8a66 --- /dev/null +++ b/ui/res/values-kn-rIN/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"ಡೌನ್ಲೋಡ್ಗಳು"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"ಡೌನ್ಲೋಡ್ಗಳು - ದಿನಾಂಕದ ಪ್ರಕಾರ ವಿಂಗಡಿಸಲಾಗಿದೆ"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"ಡೌನ್ಲೊಡ್ಗಳು - ಗಾತ್ರದ ಪ್ರಕಾರ ವಿಂಗಡಿಸಲಾಗಿದೆ"</string> + <string name="no_downloads" msgid="1029667411186146836">"ಯಾವುದೇ ಡೌನ್ಲೋಡ್ಗಳಿಲ್ಲ."</string> + <string name="missing_title" msgid="830115697868833773">"<ಅಜ್ಞಾತ>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"ಗಾತ್ರದಂತೆ ವಿಂಗಡಿಸಿ"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"ದಿನಾಂಕದ ಪ್ರಕಾರವಾಗಿ ವಿಂಗಡಿಸಿ"</string> + <string name="download_queued" msgid="104973307780629904">"ಸರದಿಯಲ್ಲಿರಿಸಲಾಗಿದೆ"</string> + <string name="download_running" msgid="4656462962155580641">"ಪ್ರಗತಿಯಲ್ಲಿದೆ"</string> + <string name="download_success" msgid="7006048006543495236">"ಪೂರ್ಣಗೊಂಡಿದೆ"</string> + <string name="download_error" msgid="8081329546008568251">"ವಿಫಲಗೊಂಡಿದೆ"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"ನೀವು ನಂತರದಲ್ಲಿ ಫೈಲ್ಗಳನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಮರುಪ್ರಯತ್ನಿಸಲು ಬಯಸುವಿರಾ ಅಥವಾ ಅದನ್ನು ಸರದಿಯಿಂದ ಅಳಿಸಲು ಬಯಸುವಿರಾ?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"ಫೈಲ್ ಸರದಿಯಲ್ಲಿದೆ"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"ಭವಿಷ್ಯದ ಡೌನ್ಲೋಡ್ಗಾಗಿ ಈ ಫೈಲ್ ಅನ್ನು ಸರದಿಯಲ್ಲಿರಿಸಲಾಗಿದೆ ಹಾಗಾಗಿ ಇನ್ನೂ ಲಭ್ಯವಿಲ್ಲ."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"ಡೌನ್ಲೋಡ್ ಮಾಡಿದ ಫೈಲ್ ಹುಡುಕಲು ಸಾಧ್ಯವಿಲ್ಲ."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"ಡೌನ್ಲೋಡ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಾಗಲಿಲ್ಲ. ಬಾಹ್ಯ ಡೌನ್ಲೋಡ್ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"ಡೌನ್ಲೋಡ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಾಗಲಿಲ್ಲ. ಆಂತರಿಕ ಡೌನ್ಲೋಡ್ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"ಡೌನ್ಲೋಡ್ ಅಡಚಣೆಗೊಳಗಾಗಿದೆ ಮತ್ತು ಪುನರಾರಂಭಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಉದ್ದೇಶಿತ ಫೈಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಬಾಹ್ಯ ಮಾಧ್ಯಮವು ಲಭ್ಯವಿಲ್ಲ."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"ಫೈಲ್ ತೆರೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"</string> + <string name="remove_download" msgid="6372920256257247857">"ತೆಗೆದುಹಾಕಿ"</string> + <string name="delete_download" msgid="76629022653866471">"ಅಳಿಸು"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"ಇರಿಸಿ"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"ರದ್ದುಮಾಡು"</string> + <string name="retry_download" msgid="7617100787922717912">"ಮರುಪ್ರಯತ್ನಿಸಿ"</string> + <string name="deselect_all" msgid="6348198946254776764">"ಎಲ್ಲಾ ಆಯ್ಕೆಯನ್ನು ರದ್ದುಮಾಡಿ"</string> + <string name="select_all" msgid="634074918366265804">"ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆಮಾಡಿ"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g> ರಲ್ಲಿ <xliff:g id="NUMBER">%1$d</xliff:g> ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"ಈ ಮೂಲಕ ಹಂಚಿಕೊಳ್ಳಿ"</string> +</resources> diff --git a/ui/res/values-ky-rKG/strings.xml b/ui/res/values-ky-rKG/strings.xml new file mode 100644 index 00000000..ccfdf0ca --- /dev/null +++ b/ui/res/values-ky-rKG/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"Жүктөөлөр"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Жүктөөлөр - датасы боюнча ылганган"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Жүктөөлөр - өлчөмү боюнча ылганган"</string> + <string name="no_downloads" msgid="1029667411186146836">"Жүктөөлөр жок."</string> + <string name="missing_title" msgid="830115697868833773">"<Белгисиз>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"Өлчөмү боюнча ылгоо"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"Датасы боюнча ылгоо"</string> + <string name="download_queued" msgid="104973307780629904">"Кезекте"</string> + <string name="download_running" msgid="4656462962155580641">"Жүктөлүүдө"</string> + <string name="download_success" msgid="7006048006543495236">"Жүктөө аяктады"</string> + <string name="download_error" msgid="8081329546008568251">"Ийгиликсиз"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"Жүктөө мүмкүн болбоду"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"Сиз файлды кийинчерээк жүктөп көрөсүзбү же аны кезектен чыгарып саласызбы?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"Файл кезекте"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"Бул файл кийин жүктөлсүн деп кезекке тургузулган, азырынча ал жеткиликтүү эмес."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"Жүктөлгөн файл табылбай жатат."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Жүктөөнү аягына чыгаруу мүмкүн эмес. Тышкы сактагычта орун жетишсиз."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Жүктөөнү аягына чыгаруу мүмкүн эмес. Ички сактагычта орун жетишсиз."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"Жүктөө үзгүлтүккө учурады жана аягына чыгарылбайт."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"Жүктөө мүмкүн эмес. Мындай файл мурунтан бар."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"Жүктөөнү аягына чыгаруу мүмкүн эмес. Тышкы медиа жеткиликтүү эмес."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"Файл ачылбады"</string> + <string name="remove_download" msgid="6372920256257247857">"Алып салуу"</string> + <string name="delete_download" msgid="76629022653866471">"Жок кылуу"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"Калтыруу"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"Айнуу"</string> + <string name="retry_download" msgid="7617100787922717912">"Кайра аракеттенүү"</string> + <string name="deselect_all" msgid="6348198946254776764">"Баарын бошотуу"</string> + <string name="select_all" msgid="634074918366265804">"Бардыгын тандоо"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g> ичинен <xliff:g id="NUMBER">%1$d</xliff:g> тандалды"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"Бул аркылуу бөлүшүү:"</string> +</resources> diff --git a/ui/res/values-mk-rMK/strings.xml b/ui/res/values-mk-rMK/strings.xml new file mode 100644 index 00000000..15951642 --- /dev/null +++ b/ui/res/values-mk-rMK/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"Преземања"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Преземања - Подредени по датум"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Преземања - Подредени по големина"</string> + <string name="no_downloads" msgid="1029667411186146836">"Нема преземања."</string> + <string name="missing_title" msgid="830115697868833773">"Непознато"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"Подреди по големина"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"Подреди по датум"</string> + <string name="download_queued" msgid="104973307780629904">"Чека на ред"</string> + <string name="download_running" msgid="4656462962155580641">"Во тек е"</string> + <string name="download_success" msgid="7006048006543495236">"Целосно"</string> + <string name="download_error" msgid="8081329546008568251">"Неуспешно"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"Не можеше да се преземе"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"Сакате повторно да се обиде со преземање на датотеката подоцна или да се избрише од редот?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"Датотеката е во ред на чекање"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"Оваа датотека е ставена во ред начекање да се преземе во иднина и сè уште не е достапна."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"Не може да се пронајде преземената датотека."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Преземањето не може да се заврши. Нема доволно простор на надворешната меморија."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Преземањето не може да се заврши. Нема доволно простор на внатрешна меморија за преземање."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"Преземањето се прекина и не може да продолжи."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"Не може да се преземе. Одредишната датотека веќе постои."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"Не може да се преземе. Надворешниот медиум не е достапен."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"Датотеката не се отвора"</string> + <string name="remove_download" msgid="6372920256257247857">"Отстрани"</string> + <string name="delete_download" msgid="76629022653866471">"Избриши"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"Задржи"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"Откажи"</string> + <string name="retry_download" msgid="7617100787922717912">"Обиди се повторно"</string> + <string name="deselect_all" msgid="6348198946254776764">"Отштиклирај ги сите"</string> + <string name="select_all" msgid="634074918366265804">"Избери ги сите"</string> + <string name="selected_count" msgid="2101564570019753277">"Избрани <xliff:g id="NUMBER">%1$d</xliff:g> од <xliff:g id="TOTAL">%2$d</xliff:g>"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"Сподели преку"</string> +</resources> diff --git a/ui/res/values-ml-rIN/strings.xml b/ui/res/values-ml-rIN/strings.xml new file mode 100644 index 00000000..29f9a70e --- /dev/null +++ b/ui/res/values-ml-rIN/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"ഡൗൺലോഡുകൾ"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"ഡൗൺലോഡുകൾ - തീയതി പ്രകാരം അടുക്കുക"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"ഡൗൺലോഡുകൾ - വലുപ്പം പ്രകാരം അടുക്കുക"</string> + <string name="no_downloads" msgid="1029667411186146836">"ഡൗൺലോഡുകളൊന്നുമില്ല."</string> + <string name="missing_title" msgid="830115697868833773">"<അജ്ഞാതം>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"വലുപ്പമനുസരിച്ച് അടുക്കുക"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"തീയതി അനുസരിച്ച് അടുക്കുക"</string> + <string name="download_queued" msgid="104973307780629904">"ക്യൂവിലാണ്"</string> + <string name="download_running" msgid="4656462962155580641">"പുരോഗമിക്കുന്നു"</string> + <string name="download_success" msgid="7006048006543495236">"പൂർത്തിയായി"</string> + <string name="download_error" msgid="8081329546008568251">"പരാജയപ്പെട്ടു"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"ഡൗൺലോഡുചെയ്യാനായില്ല"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"ഫയൽ ഡൗൺലോഡുചെയ്യാൻ വീണ്ടും ശ്രമിക്കുകയോ ക്യൂവിൽ നിന്നും അത് ഇല്ലാതാക്കുകയോ ചെയ്യണോ?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"ഫയൽ ക്യൂവിലാണ്"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"ഭാവിയിൽ ഡൗൺലോഡുചെയ്യാനായി ഫയൽ ക്യൂവിലായതിനാൽ ഇതുവരെയും ലഭ്യമല്ല."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"ഡൗൺലോഡുചെയ്ത ഫയൽ കണ്ടെത്താനായില്ല."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"ഡൗൺലോഡ് പൂർത്തിയാക്കാനാകില്ല. ബാഹ്യസംഭരണത്തിൽ ആവശ്യമായ ഇടമില്ല."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"ഡൗൺലോഡ് പൂർത്തിയാക്കാനായില്ല. ആന്തരിക ഡൗൺലോഡ് സംഭരണത്തിൽ ആവശ്യമായ ഇടമില്ല."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"ഡൗൺലോഡ് തടസ്സപ്പെട്ടതിനാൽ പുനരാരംഭിക്കാനാകില്ല."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"ഡൗൺലോഡുചെയ്യാനാകില്ല. ലക്ഷ്യസ്ഥാന ഫയൽ ഇതിനകം നിലവിലുണ്ട്."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"ഡൗൺലോഡുചെയ്യാനാകില്ല. ബാഹ്യ മീഡിയ ലഭ്യമല്ല."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"ഫയൽ തുറക്കാനായില്ല"</string> + <string name="remove_download" msgid="6372920256257247857">"നീക്കംചെയ്യുക"</string> + <string name="delete_download" msgid="76629022653866471">"ഇല്ലാതാക്കുക"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"സൂക്ഷിക്കുക"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"റദ്ദാക്കുക"</string> + <string name="retry_download" msgid="7617100787922717912">"വീണ്ടും ശ്രമിക്കുക"</string> + <string name="deselect_all" msgid="6348198946254776764">"തിരഞ്ഞെടുത്തത് എല്ലാം മാറ്റുക"</string> + <string name="select_all" msgid="634074918366265804">"എല്ലാം തിരഞ്ഞെടുക്കുക"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="NUMBER">%1$d</xliff:g> / <xliff:g id="TOTAL">%2$d</xliff:g> എണ്ണം തിരഞ്ഞെടുത്തു"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"ഇതുവഴി പങ്കിടുക"</string> +</resources> diff --git a/ui/res/values-mr-rIN/strings.xml b/ui/res/values-mr-rIN/strings.xml new file mode 100644 index 00000000..4340c570 --- /dev/null +++ b/ui/res/values-mr-rIN/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"डाउनलोड"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"डाउनलोड - तारखेनुसार क्रमवारी लावलेले"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"डाउनलोड - आकारानुसार क्रमवारी लावलेले"</string> + <string name="no_downloads" msgid="1029667411186146836">"कोणतेही डाउनलोड नाहीत."</string> + <string name="missing_title" msgid="830115697868833773">"<अज्ञात>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"आकारानुसार क्रमवारी लावा"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"तारखेनुसार क्रमवारी लावा"</string> + <string name="download_queued" msgid="104973307780629904">"रांगेत लावलेला"</string> + <string name="download_running" msgid="4656462962155580641">"प्रगतीपथावर"</string> + <string name="download_success" msgid="7006048006543495236">"पूर्ण"</string> + <string name="download_error" msgid="8081329546008568251">"अयशस्वी"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"डाउनलोड करू शकलो नाही"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"आपण फाइल डाउनलोड करण्याचा नंतर पुन्हा प्रयत्न करू इच्छिता कि तिला रांगेमधून हटवू इच्छिता?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"रांगेतील फाइल"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"ही फाइल भविष्यात डाउनलोड करण्यासाठी रांगेत लावली आहे म्हणून ती अद्याप उपलब्ध नाही."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"डाउनलोड केलेली फाइल शोधू शकत नाही."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"डाउनलोड समाप्त करू शकत नाही. बाह्य संचयनावर पुरेसे स्थान नाही."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"डाउनलोड समाप्त करू शकत नाही. अंतर्गत डाउनलोड संचयनावर पुरेसे स्थान नाही."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"डाउनलोडमध्ये व्यत्यय आला आणि पुन्हा सुरु केले जाऊ शकत नाही."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"डाउनलोड करू शकत नाही. गंतव्य फाइल आधीपासून अस्तित्वात आहे."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"डाउनलोड करू शकत नाही. बाह्य मीडिया उपलब्ध नाही."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"फाइल उघडू शकत नाही"</string> + <string name="remove_download" msgid="6372920256257247857">"काढा"</string> + <string name="delete_download" msgid="76629022653866471">"हटवा"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"ठेवा"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"रद्द करा"</string> + <string name="retry_download" msgid="7617100787922717912">"पुन्हा प्रयत्न करा"</string> + <string name="deselect_all" msgid="6348198946254776764">"सर्व निवड रद्द करा"</string> + <string name="select_all" msgid="634074918366265804">"सर्व निवडा"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g> पैकी <xliff:g id="NUMBER">%1$d</xliff:g> निवडले"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"द्वारे सामायिक करा"</string> +</resources> diff --git a/ui/res/values-my-rMM/strings.xml b/ui/res/values-my-rMM/strings.xml new file mode 100644 index 00000000..f2483e8e --- /dev/null +++ b/ui/res/values-my-rMM/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"ဒေါင်းလုပ်များ"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"ဒေါင်းလုပ်များ -နေ့စွဲအလိုက် စီထားသည်"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"ဒေါင်းလုပ်များ -အရွယ်အစားအလိုက် စီထားသည်"</string> + <string name="no_downloads" msgid="1029667411186146836">"ဒေါင်းလုပ်မရှိပါ"</string> + <string name="missing_title" msgid="830115697868833773">"အကြောင်းအရာ မသိရှိ"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"အရွယ်အစားအလိုက် စီရန်"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"နေ့စွဲအလိုက် စီရန်"</string> + <string name="download_queued" msgid="104973307780629904">"တန်းစီထားပြီး"</string> + <string name="download_running" msgid="4656462962155580641">"ပြုလုပ်နေဆဲ"</string> + <string name="download_success" msgid="7006048006543495236">"ပြီးဆုံးပါပြီ"</string> + <string name="download_error" msgid="8081329546008568251">"မအောင်မြင်ပါ"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"ဒေါင်းလုပ်ပြုလုပ်မရပါ"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"ခဏကြာလျှင် ဒေါင်းလုပ်ပြန်ကြိုးစားမည်လား သို့မဟုတ် တန်းစီးထားခြင်းမှ ဖျက်မည်လား?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"ဖိုင်ကိုတန်းစီထားသည်"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"နောင်တွင် ဒေါင်းလုပ်ပြုလုပ်ရန် ဖိုင်ကိုတန်းစီထားသောကြောင့် မရနိုင်သေးပါ"</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"ဒေါင်းလုပ်ပြုလုပ်ထားသောဖိုင်အား ရှာမရပါ"</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"ဒေါင်းလုပ် မပြီးဆုံးနိုင်ပါ၊ ပြင်ပ သိုလှောင်ရာနေရာတွင် လုံလောက်သော နေရာလွတ် မရှိပါ။"</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"ဒေါင်းလုပ် မပြီးဆုံးနိုင်ပါ၊ စက်တွင်းဒေါင်းလုပ်သိုလှောင်မှုတွင် လုံလောက်သောနေရာလပ်မရှိပါ"</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"ဒေါင်းလုပ်မှာ နှောက်ယှက်ခံရသောကြောင့် ပြန်မစနိုင်ပါ"</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"ဒေါင်းလုပ်ပြုလုပ်မရပါ၊ ဦးတည်ရာဖိုင် ရှိနှင့်ပြီးဖြစ်သည်။"</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"ဒေါင်းလုပ် မပြုလုပ်နိုင်ပါ၊ ပြင်ပ မီဒီယာ မရှိပါ။"</string> + <string name="download_no_application_title" msgid="7024782176657362251">"ဖိုင်အား ဖွင့်မရပါ"</string> + <string name="remove_download" msgid="6372920256257247857">"ဖယ်ရှားရန်"</string> + <string name="delete_download" msgid="76629022653866471">"ဖျက်ပစ်ရန်"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"သိမ်းထားပါ"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"ထားတော့"</string> + <string name="retry_download" msgid="7617100787922717912">"ပြန်ကြိုးစားပါ"</string> + <string name="deselect_all" msgid="6348198946254776764">"ဘာကိုမှ မရွေးပါ"</string> + <string name="select_all" msgid="634074918366265804">"အားလုံးရွေးချယ်ရန်"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="NUMBER">%1$d</xliff:g> ထဲမှ <xliff:g id="TOTAL">%2$d</xliff:g> ရွေးချယ်ပြီး"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"မှတစ်ဆင့် မျှဝေပါ"</string> +</resources> diff --git a/ui/res/values-ne-rNP/strings.xml b/ui/res/values-ne-rNP/strings.xml new file mode 100644 index 00000000..2a7389b2 --- /dev/null +++ b/ui/res/values-ne-rNP/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"डाउनलोडहरू"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"डाउनलोडहरू - मिति अनुसार क्रमबद्ध गरिएका"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"डाउनलोडहरू - आकार अनुसार क्रमबद्ध गरिएका"</string> + <string name="no_downloads" msgid="1029667411186146836">"कुनै डाउनलोडहरू छैनन्।"</string> + <string name="missing_title" msgid="830115697868833773">"<अज्ञात>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"आकार अनुसार क्रमबद्ध गर्नुहोस्"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"मिति अनुसार क्रमबद्ध गर्नुहोस्"</string> + <string name="download_queued" msgid="104973307780629904">"लाममा राखियो"</string> + <string name="download_running" msgid="4656462962155580641">"प्रगतिमा"</string> + <string name="download_success" msgid="7006048006543495236">"पुरा गर्नुहोस्"</string> + <string name="download_error" msgid="8081329546008568251">"असफल"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"डाउनलोड गर्न सकेन"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"तपाईँ पछि फेरि फाइल डाउनलोड गर्ने प्रयास गर्न चाहनुहुन्छ कि लामबाट हटाउन चाहनुहुन्छ?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"फाइल लाममा छ"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"फाइल भविष्यमा डाउनलोड गर्नका लागि लाममा राखिएको छ, यसैले अझै उपलब्ध छैन।"</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"डाउनलोड गरिएको फाइल फेला पार्न सकेन।"</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"डाउनलोड समाप्त पार्न सकेन। बाह्य भण्डारणमा पर्याप्त ठाउँ छैन।"</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"डाउनलोड समाप्त पार्न सकेन। आन्तरिक डाउनलोड भण्डारणमा पर्याप्त ठाउँ छैन।"</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"डाउनलोड अवरूद्ध भयो र यो पुनः सुरु गर्न सकिन्न।"</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"डाउनलोड गर्न सकेन। लक्षित फाइल पहिले नै छ।"</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"डाउनलोड गर्न सकेन। बाह्य मिडिया उपलब्ध छैन।"</string> + <string name="download_no_application_title" msgid="7024782176657362251">"फाइल खोल्न सकिँदैन"</string> + <string name="remove_download" msgid="6372920256257247857">"हटाउनुहोस्"</string> + <string name="delete_download" msgid="76629022653866471">"मेटाउनुहोस्"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"राख्नुहोस्"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"रद्द गर्नुहोस्"</string> + <string name="retry_download" msgid="7617100787922717912">"पुनःप्रयास गर्नुहोस्"</string> + <string name="deselect_all" msgid="6348198946254776764">"सबै अचयन गर्नुहोस्"</string> + <string name="select_all" msgid="634074918366265804">"सबै चयन गर्नुहोस्"</string> + <string name="selected_count" msgid="2101564570019753277">"छानिएको <xliff:g id="TOTAL">%2$d</xliff:g> को <xliff:g id="NUMBER">%1$d</xliff:g> बाट"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"द्वारा साझेदारी गर्नुहोस्"</string> +</resources> diff --git a/ui/res/values-si-rLK/strings.xml b/ui/res/values-si-rLK/strings.xml new file mode 100644 index 00000000..11873878 --- /dev/null +++ b/ui/res/values-si-rLK/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"බාගැනීම්"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"බාගැනීම් - දිනය අනුව පෙළගස්වන ලද"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"බාගැනීම් - ප්රමාණය අනුව පෙළගස්වන ලද"</string> + <string name="no_downloads" msgid="1029667411186146836">"බාගැනීම් නොමැත."</string> + <string name="missing_title" msgid="830115697868833773">"<නොදනී>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"ප්රමාණය අනුව අනුපිළිවෙලට සකසන්න"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"දිනය අනුව අනුපිළිවෙලට සකසන්න"</string> + <string name="download_queued" msgid="104973307780629904">"පෙළ ගැස්විණි"</string> + <string name="download_running" msgid="4656462962155580641">"ක්රියාවේ පවතී"</string> + <string name="download_success" msgid="7006048006543495236">"සම්පුර්ණයි"</string> + <string name="download_error" msgid="8081329546008568251">"අසාර්ථකයි"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"බාගත නොහැකි විය"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"ඔබට ගොනු පසුව බාගැනීමට උත්සාහ කිරීමට අවශ්යද නැතිනම් එය පෝලිමෙන් මැකීමට අවශ්යද?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"ගොනුව පේළියෙහි තිබේ"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"අනාගත බාගැනීම් සඳහා මෙම ගොනුව පෙළගස්වා ඇත එබැවින් එය තවම ලබාගත නොහැක."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"බාගත් ගොනුව සොයා ගත නොහැක."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"බාගැනීම අවසන් කළ නොහැක. බාහිර බාගැනීම් ආචයනයේ අවශ්ය තරම් ඉඩක් නොමැත."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"බාගැනීම අවසන් කළ නොහැක. අභ්යන්තර බාගැනීම් ආචයනයේ අවශ්ය තරම් ඉඩක් නොමැත."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"බාගැනීමට බාධා ඇතිවූ අතර එය යළි ආරම්භ කළ නොහැක."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"බාගත නොහැක. ගමනාන්තයේ ගොනුව දැනටමත් ඇත."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"බාගත නොහැක. බාහිර මාධ්ය නොමැත."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"ගොනුව විවෘත කළ නොහැකි විය"</string> + <string name="remove_download" msgid="6372920256257247857">"ඉවත් කරන්න"</string> + <string name="delete_download" msgid="76629022653866471">"මකන්න"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"තබාගැනීම"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"අවලංගු කරන්න"</string> + <string name="retry_download" msgid="7617100787922717912">"නැවත උත්සාහ කරන්න"</string> + <string name="deselect_all" msgid="6348198946254776764">"සියල්ල තේරීම අත්හරින්න"</string> + <string name="select_all" msgid="634074918366265804">"සියල්ල තෝරන්න"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g> ගෙන් <xliff:g id="NUMBER">%1$d</xliff:g> ක් තෝරා ගන්නා ලදී"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"බෙදාගන්නේ"</string> +</resources> diff --git a/ui/res/values-ta-rIN/strings.xml b/ui/res/values-ta-rIN/strings.xml new file mode 100644 index 00000000..7056356c --- /dev/null +++ b/ui/res/values-ta-rIN/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"பதிவிறக்கங்கள்"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"பதிவிறக்கங்கள் - தேதியின்படி வரிசைப்படுத்தப்பட்டது"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"பதிவிறக்கங்கள் - அளவின்படி வரிசைப்படுத்தப்பட்டது"</string> + <string name="no_downloads" msgid="1029667411186146836">"பதிவிறக்கங்கள் இல்லை."</string> + <string name="missing_title" msgid="830115697868833773">"<அறியப்படாதது>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"அளவின்படி வரிசைப்படுத்து"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"தேதிப்படி வரிசைப்படுத்து"</string> + <string name="download_queued" msgid="104973307780629904">"வரிசைப்படுத்தப்பட்டது"</string> + <string name="download_running" msgid="4656462962155580641">"செயலிலுள்ளது"</string> + <string name="download_success" msgid="7006048006543495236">"முடிந்தது"</string> + <string name="download_error" msgid="8081329546008568251">"தோல்வி"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"பதிவிறக்க முடியவில்லை"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"கோப்பைப் பின்னர் பதிவிறக்க முயற்சிக்கவா அல்லது வரிசையிலிருந்து நீக்க விரும்புகிறீர்களா?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"வரிசையில் உள்ள கோப்பு"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"இந்தக் கோப்பு எதிர்கால பதிவிறக்கத்திற்கு வரிசைப்படுத்தப்பட்டது, அதனால், இதுவரை இது கிடைக்கவில்லை."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"பதிவிறக்கிய கோப்பைக் கண்டறிய முடியவில்லை."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"பதிவிறக்கத்தை முடிக்க முடியவில்லை. வெளிப்புறச் சேமிப்பிடத்தில் போதுமான இடம் இல்லை."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"பதிவிறக்கத்தை முடிக்க முடியவில்லை. அகப் பதிவிறக்க சேமிப்பிடத்தில் போதுமான இடம் இல்லை."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"பதிவிறக்கம் குறுக்கிடப்பட்டது, மேலும் மீண்டும் தொடங்க முடியாது."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"பதிவிறக்க முடியவில்லை. இலக்குக் கோப்பு ஏற்கனவே உள்ளது."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"பதிவிறக்க முடியவில்லை. வெளிப்புற மீடியா கிடைக்கவில்லை."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"கோப்பைத் திறக்க முடியவில்லை"</string> + <string name="remove_download" msgid="6372920256257247857">"அகற்று"</string> + <string name="delete_download" msgid="76629022653866471">"நீக்கு"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"வைத்திரு"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"ரத்துசெய்"</string> + <string name="retry_download" msgid="7617100787922717912">"மீண்டும் முயற்சிசெய்க"</string> + <string name="deselect_all" msgid="6348198946254776764">"எல்லாம் தேர்வுநீக்கு"</string> + <string name="select_all" msgid="634074918366265804">"எல்லாவற்றையும் தேர்ந்தெடு"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g> இல் <xliff:g id="NUMBER">%1$d</xliff:g> தேர்ந்தெடுக்கப்பட்டன"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"இதன் வழியாகப் பகிர்"</string> +</resources> diff --git a/ui/res/values-te-rIN/strings.xml b/ui/res/values-te-rIN/strings.xml new file mode 100644 index 00000000..9099044e --- /dev/null +++ b/ui/res/values-te-rIN/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"డౌన్లోడ్లు"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"డౌన్లోడ్లు - తేదీ ద్వారా క్రమబద్ధీకరించబడినవి"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"డౌన్లోడ్లు - పరిమాణం ద్వారా క్రమబద్ధీకరించబడినవి"</string> + <string name="no_downloads" msgid="1029667411186146836">"డౌన్లోడ్లు ఏవీ లేవు."</string> + <string name="missing_title" msgid="830115697868833773">"<తెలియదు>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"పరిమాణం ద్వారా క్రమబద్ధీకరించు"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"తేదీ ద్వారా క్రమబద్ధీకరించు"</string> + <string name="download_queued" msgid="104973307780629904">"క్రమవరుసలో ఉంచబడింది"</string> + <string name="download_running" msgid="4656462962155580641">"ప్రోగ్రెస్లో ఉంది"</string> + <string name="download_success" msgid="7006048006543495236">"పూర్తయింది"</string> + <string name="download_error" msgid="8081329546008568251">"విఫలమైంది"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"డౌన్లోడ్ చేయడం సాధ్యపడలేదు"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"మీరు ఫైల్ను తర్వాత డౌన్లోడ్ చేయడానికి మళ్లీ ప్రయత్నించాలనుకుంటున్నారా లేదా దీన్ని క్రమవరుస నుండి తొలగించాలనుకుంటున్నారా?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"ఫైల్ క్రమవరుసలో ఉంది"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"ఈ ఫైల్ భవిష్యత్తు డౌన్లోడ్ కోసం క్రమవరుసలో ఉంచబడింది అందువలన ఇంకా అందుబాటులో లేదు."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"డౌన్లోడ్ చేయబడిన ఫైల్ను కనుగొనడం సాధ్యపడదు."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"డౌన్లోడ్ను పూర్తి చేయడం సాధ్యపడదు. బాహ్య నిల్వలో తగినంత స్థలం లేదు."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"డౌన్లోడ్ను పూర్తి చేయడం సాధ్యపడదు. అంతర్గత డౌన్లోడ్ నిల్వలో తగినంత స్థలం లేదు."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"డౌన్లోడ్కు అంతరాయం ఏర్పడింది మరియు పునఃప్రారంభించడం సాధ్యపడదు."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"డౌన్లోడ్ చేయడం సాధ్యపడదు. గమ్యస్థాన ఫైల్ ఇప్పటికే ఉంది."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"డౌన్లోడ్ చేయడం సాధ్యపడదు. బాహ్య మీడియా అందుబాటులో లేదు."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"ఫైల్ను తెరవడం సాధ్యపడదు"</string> + <string name="remove_download" msgid="6372920256257247857">"తీసివేయి"</string> + <string name="delete_download" msgid="76629022653866471">"తొలగించు"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"ఉంచు"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"రద్దు చేయి"</string> + <string name="retry_download" msgid="7617100787922717912">"మళ్లీ ప్రయత్నించు"</string> + <string name="deselect_all" msgid="6348198946254776764">"అన్నింటి ఎంపికను తీసివేయి"</string> + <string name="select_all" msgid="634074918366265804">"అన్నీ ఎంచుకోండి"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g>లో <xliff:g id="NUMBER">%1$d</xliff:g> ఎంచుకోబడ్డాయి"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"వీటి ద్వారా భాగస్వామ్యం చేయండి"</string> +</resources> diff --git a/ui/res/values-ur-rPK/strings.xml b/ui/res/values-ur-rPK/strings.xml new file mode 100644 index 00000000..f7a2feaa --- /dev/null +++ b/ui/res/values-ur-rPK/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"ڈاؤن لوڈز"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"ڈاؤن لوڈز - تاریخ کے لحاظ سے مرتب"</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"ڈاؤن لوڈز - سائز کے لحاظ سے مرتب"</string> + <string name="no_downloads" msgid="1029667411186146836">"کوئی ڈاؤن لوڈز نہیں ہیں۔"</string> + <string name="missing_title" msgid="830115697868833773">">نامعلوم&It;"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"سائز کے لحاظ سے ترتیب دیں"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"ترتیب دیں بلحاظ تاریخ"</string> + <string name="download_queued" msgid="104973307780629904">"قطار بند"</string> + <string name="download_running" msgid="4656462962155580641">"پیشرفت میں"</string> + <string name="download_success" msgid="7006048006543495236">"مکمل"</string> + <string name="download_error" msgid="8081329546008568251">"ناکام"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"ڈاؤن لوڈ نہیں کیا جا سکا"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"کیا آپ بعد میں فائل کو ڈاؤن لوڈ کرنے کی دوبارہ کوشش کرنا یا اسے قطار سے حذف کرنا چاہتے ہیں؟"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"فائل قطار میں ہے"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"یہ فائل آئندہ کے ڈاؤن لوڈ کیلئے قطار بند ہے اس لیے ابھی دستیاب نہیں ہے۔"</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"ڈاؤن لوڈ کردہ فائل تلاش نہیں کی جا سکتی ہے۔"</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"ڈاؤن لوڈ کو مکمل نہیں کر سکتے ہیں۔ خارجی اسٹوریج پر کافی جگہ نہیں ہے۔"</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"ڈاؤن لوڈ کو مکمل نہیں کر سکتے ہیں۔ داخلی ڈاؤن لوڈ اسٹوریج پر کافی جگہ نہیں ہے۔"</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"ڈاؤن لوڈ میں خلل پیدا ہو گیا اور دوبارہ شروع نہیں ہو سکتا۔"</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"ڈاؤن لوڈ نہیں کر سکتے ہیں۔ منزل مقصود کی فائل پہلے سے موجود ہے۔"</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"ڈاؤن لوڈ نہیں کر سکتے ہیں۔ خارجی میڈیا دستیاب نہیں ہے۔"</string> + <string name="download_no_application_title" msgid="7024782176657362251">"فائل نہيں کھول سکتے ہیں"</string> + <string name="remove_download" msgid="6372920256257247857">"ہٹائیں"</string> + <string name="delete_download" msgid="76629022653866471">"حذف کریں"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"رکھیں"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"منسوخ کریں"</string> + <string name="retry_download" msgid="7617100787922717912">"دوبارہ کوشش کریں"</string> + <string name="deselect_all" msgid="6348198946254776764">"سبھی کو غیر منتخب کریں"</string> + <string name="select_all" msgid="634074918366265804">"سبھی کو منتخب کریں"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="NUMBER">%1$d</xliff:g> از <xliff:g id="TOTAL">%2$d</xliff:g> کو منتخب کیا گیا"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"اشتراک کریں بذریعہ"</string> +</resources> diff --git a/ui/res/values-uz-rUZ/strings.xml b/ui/res/values-uz-rUZ/strings.xml new file mode 100644 index 00000000..11add3f9 --- /dev/null +++ b/ui/res/values-uz-rUZ/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2010 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="3070921713463294774">"Yuklab olishlar"</string> + <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Yuklab olishlar - Sana bo‘yicha saralan."</string> + <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Yuklab olishlar - Hajm bo‘yicha saralan."</string> + <string name="no_downloads" msgid="1029667411186146836">"Yuklab olishlar yo‘q."</string> + <string name="missing_title" msgid="830115697868833773">"<Noma’lum>"</string> + <string name="button_sort_by_size" msgid="7331549713691146251">"Hajmi bo‘yicha saralash"</string> + <string name="button_sort_by_date" msgid="8800842892684101528">"Sanasi bo‘yicha saralash"</string> + <string name="download_queued" msgid="104973307780629904">"Navbatda"</string> + <string name="download_running" msgid="4656462962155580641">"Yuk. amalda"</string> + <string name="download_success" msgid="7006048006543495236">"Y"</string> + <string name="download_error" msgid="8081329546008568251">"Muvaff-siz"</string> + <string name="dialog_title_not_available" msgid="5746317632356158515">"Yuklab olinmadi"</string> + <string name="dialog_failed_body" msgid="587545111677064427">"Faylni keyinroq qaytadan yuklab olishga urinib ko‘rasizmi yoki navbatdan o‘chirilsinmi?"</string> + <string name="dialog_title_queued_body" msgid="6760681913815015219">"Fayl navbatda"</string> + <string name="dialog_queued_body" msgid="708552801635572720">"Ushbu fayl keyinroq yuklab olish uchun navbatga qo‘shildi, shuning uchun hozir mavjud emas."</string> + <string name="dialog_file_missing_body" msgid="3223012612774276284">"Yukab olingan fayl topilmadi."</string> + <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Yuklab olish tugamadi. Tashqi yuklab olish xotirasida yetarlicha bo‘sh joy yo‘q."</string> + <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Yuklab olish tugamadi. Ichki yuklab olish xotirasida yetarlicha bo‘sh joy yo‘q."</string> + <string name="dialog_cannot_resume" msgid="8664509751358983543">"Yuklab olish uzildi, shuning uchun davom ettirib bo‘lmaydi."</string> + <string name="dialog_file_already_exists" msgid="8308563940663449590">"Yuklab olinmadi. Mo‘ljaldagi fayl allaqachon mavjud."</string> + <string name="dialog_media_not_found" msgid="4468088418758018765">"Yuklab olinmadi. Tashqi xotira qurilmasi mavjud emas."</string> + <string name="download_no_application_title" msgid="7024782176657362251">"Fayl ochilmadi"</string> + <string name="remove_download" msgid="6372920256257247857">"O‘chirish"</string> + <string name="delete_download" msgid="76629022653866471">"O‘chirish"</string> + <string name="keep_queued_download" msgid="5144882786014818569">"Saqlash"</string> + <string name="cancel_running_download" msgid="5232704030969221112">"Bekor qilish"</string> + <string name="retry_download" msgid="7617100787922717912">"Qayta urinish"</string> + <string name="deselect_all" msgid="6348198946254776764">"Belgilashlarni bekor qil."</string> + <string name="select_all" msgid="634074918366265804">"Barchasini belgilash"</string> + <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="TOTAL">%2$d</xliff:g>dan <xliff:g id="NUMBER">%1$d</xliff:g>ta belgilandi"</string> + <string name="download_share_dialog" msgid="3355867339806448955">"Bu orqali ulashish:"</string> +</resources> diff --git a/ui/res/values/dimen.xml b/ui/res/values/dimen.xml deleted file mode 100644 index 7519b878..00000000 --- a/ui/res/values/dimen.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<resources> - <dimen name="checkmark_area">48dip</dimen> -</resources> diff --git a/ui/src/com/android/providers/downloads/ui/DateSortedDownloadAdapter.java b/ui/src/com/android/providers/downloads/ui/DateSortedDownloadAdapter.java deleted file mode 100644 index b69fb8b8..00000000 --- a/ui/src/com/android/providers/downloads/ui/DateSortedDownloadAdapter.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -package com.android.providers.downloads.ui; - -import android.app.DownloadManager; -import android.database.Cursor; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ExpandableListView; -import android.widget.RelativeLayout; - -/** - * Adapter for a date-sorted list of downloads. Delegates all the real work to - * {@link DownloadAdapter}. - */ -public class DateSortedDownloadAdapter extends DateSortedExpandableListAdapter { - private final DownloadAdapter mDelegate; - private final DownloadList mDownloadList; - - public DateSortedDownloadAdapter(DownloadList downloadList, Cursor cursor) { - super(downloadList, cursor, - cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP)); - mDelegate = new DownloadAdapter(downloadList, cursor); - mDownloadList = downloadList; - } - - @Override - public View getChildView(int groupPosition, int childPosition, - boolean isLastChild, View convertView, ViewGroup parent) { - // The layout file uses a RelativeLayout, whereas the GroupViews use TextView. - if (null == convertView || !(convertView instanceof RelativeLayout)) { - convertView = mDelegate.newView(); - } - - // Bail early if the Cursor is closed. - if (!moveCursorToChildPosition(groupPosition, childPosition)) { - return convertView; - } - - int pos = mDownloadList.getExpandableListView().getFlatListPosition( - ExpandableListView.getPackedPositionForChild(groupPosition, childPosition)); - mDelegate.bindView(convertView, pos); - return convertView; - } -} diff --git a/ui/src/com/android/providers/downloads/ui/DateSortedExpandableListAdapter.java b/ui/src/com/android/providers/downloads/ui/DateSortedExpandableListAdapter.java deleted file mode 100644 index f5d70770..00000000 --- a/ui/src/com/android/providers/downloads/ui/DateSortedExpandableListAdapter.java +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.providers.downloads.ui; - -import android.app.DownloadManager; -import android.content.Context; -import android.database.ContentObserver; -import android.database.Cursor; -import android.database.DataSetObserver; -import android.os.Handler; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.webkit.DateSorter; -import android.widget.ExpandableListAdapter; -import android.widget.ExpandableListView; -import android.widget.TextView; - -import java.util.Vector; - -/** - * ExpandableListAdapter which separates data into categories based on date. Copied from - * packages/apps/Browser. - */ -public class DateSortedExpandableListAdapter implements ExpandableListAdapter { - // Array for each of our bins. Each entry represents how many items are - // in that bin. - private int mItemMap[]; - // This is our GroupCount. We will have at most DateSorter.DAY_COUNT - // bins, less if the user has no items in one or more bins. - private int mNumberOfBins; - private Vector<DataSetObserver> mObservers; - private Cursor mCursor; - private DateSorter mDateSorter; - private int mDateIndex; - private int mIdIndex; - private Context mContext; - - private class ChangeObserver extends ContentObserver { - public ChangeObserver() { - super(new Handler()); - } - - @Override - public boolean deliverSelfNotifications() { - return true; - } - - @Override - public void onChange(boolean selfChange) { - refreshData(); - } - } - - private class MyDataSetObserver extends DataSetObserver { - @Override - public void onChanged() { - buildMap(); - for (DataSetObserver o : mObservers) { - o.onChanged(); - } - } - } - - public DateSortedExpandableListAdapter(Context context, Cursor cursor, - int dateIndex) { - mContext = context; - mDateSorter = new DateSorter(context); - mObservers = new Vector<DataSetObserver>(); - mCursor = cursor; - mIdIndex = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_ID); - cursor.registerContentObserver(new ChangeObserver()); - cursor.registerDataSetObserver(new MyDataSetObserver()); - mDateIndex = dateIndex; - buildMap(); - } - - /** - * Set up the bins for determining which items belong to which groups. - */ - private void buildMap() { - // The cursor is sorted by date - // The ItemMap will store the number of items in each bin. - int array[] = new int[DateSorter.DAY_COUNT]; - // Zero out the array. - for (int j = 0; j < DateSorter.DAY_COUNT; j++) { - array[j] = 0; - } - mNumberOfBins = 0; - int dateIndex = -1; - if (mCursor.moveToFirst() && mCursor.getCount() > 0) { - while (!mCursor.isAfterLast()) { - long date = getLong(mDateIndex); - int index = mDateSorter.getIndex(date); - if (index > dateIndex) { - mNumberOfBins++; - if (index == DateSorter.DAY_COUNT - 1) { - // We are already in the last bin, so it will - // include all the remaining items - array[index] = mCursor.getCount() - - mCursor.getPosition(); - break; - } - dateIndex = index; - } - array[dateIndex]++; - mCursor.moveToNext(); - } - } - mItemMap = array; - } - - /** - * Get the byte array at cursorIndex from the Cursor. Assumes the Cursor - * has already been moved to the correct position. Along with - * {@link #getInt} and {@link #getString}, these are provided so the client - * does not need to access the Cursor directly - * @param cursorIndex Index to query the Cursor. - * @return corresponding byte array from the Cursor. - */ - /* package */ byte[] getBlob(int cursorIndex) { - return mCursor.getBlob(cursorIndex); - } - - /* package */ Context getContext() { - return mContext; - } - - /** - * Get the integer at cursorIndex from the Cursor. Assumes the Cursor has - * already been moved to the correct position. Along with - * {@link #getBlob} and {@link #getString}, these are provided so the client - * does not need to access the Cursor directly - * @param cursorIndex Index to query the Cursor. - * @return corresponding integer from the Cursor. - */ - /* package */ int getInt(int cursorIndex) { - return mCursor.getInt(cursorIndex); - } - - /** - * Get the long at cursorIndex from the Cursor. Assumes the Cursor has - * already been moved to the correct position. - */ - /* package */ long getLong(int cursorIndex) { - return mCursor.getLong(cursorIndex); - } - - /** - * Get the String at cursorIndex from the Cursor. Assumes the Cursor has - * already been moved to the correct position. Along with - * {@link #getInt} and {@link #getInt}, these are provided so the client - * does not need to access the Cursor directly - * @param cursorIndex Index to query the Cursor. - * @return corresponding String from the Cursor. - */ - /* package */ String getString(int cursorIndex) { - return mCursor.getString(cursorIndex); - } - - /** - * Determine which group an item belongs to. - * @param childId ID of the child view in question. - * @return int Group position of the containing group. - /* package */ int groupFromChildId(long childId) { - int group = -1; - for (mCursor.moveToFirst(); !mCursor.isAfterLast(); - mCursor.moveToNext()) { - if (getLong(mIdIndex) == childId) { - int bin = mDateSorter.getIndex(getLong(mDateIndex)); - // bin is the same as the group if the number of bins is the - // same as DateSorter - if (DateSorter.DAY_COUNT == mNumberOfBins) return bin; - // There are some empty bins. Find the corresponding group. - group = 0; - for (int i = 0; i < bin; i++) { - if (mItemMap[i] != 0) group++; - } - break; - } - } - return group; - } - - /** - * Translates from a group position in the ExpandableList to a bin. This is - * necessary because some groups have no history items, so we do not include - * those in the ExpandableList. - * @param groupPosition Position in the ExpandableList's set of groups - * @return The corresponding bin that holds that group. - */ - private int groupPositionToBin(int groupPosition) { - if (groupPosition < 0 || groupPosition >= DateSorter.DAY_COUNT) { - throw new AssertionError("group position out of range"); - } - if (DateSorter.DAY_COUNT == mNumberOfBins || 0 == mNumberOfBins) { - // In the first case, we have exactly the same number of bins - // as our maximum possible, so there is no need to do a - // conversion - // The second statement is in case this method gets called when - // the array is empty, in which case the provided groupPosition - // will do fine. - return groupPosition; - } - int arrayPosition = -1; - while (groupPosition > -1) { - arrayPosition++; - if (mItemMap[arrayPosition] != 0) { - groupPosition--; - } - } - return arrayPosition; - } - - /** - * Move the cursor to the position indicated. - * @param packedPosition Position in packed position representation. - * @return True on success, false otherwise. - */ - boolean moveCursorToPackedChildPosition(long packedPosition) { - if (ExpandableListView.getPackedPositionType(packedPosition) != - ExpandableListView.PACKED_POSITION_TYPE_CHILD) { - return false; - } - int groupPosition = ExpandableListView.getPackedPositionGroup( - packedPosition); - int childPosition = ExpandableListView.getPackedPositionChild( - packedPosition); - return moveCursorToChildPosition(groupPosition, childPosition); - } - - /** - * Move the cursor the the position indicated. - * @param groupPosition Index of the group containing the desired item. - * @param childPosition Index of the item within the specified group. - * @return boolean False if the cursor is closed, so the Cursor was not - * moved. True on success. - */ - /* package */ boolean moveCursorToChildPosition(int groupPosition, - int childPosition) { - if (mCursor.isClosed()) return false; - groupPosition = groupPositionToBin(groupPosition); - int index = childPosition; - for (int i = 0; i < groupPosition; i++) { - index += mItemMap[i]; - } - return mCursor.moveToPosition(index); - } - - /* package */ void refreshData() { - if (mCursor.isClosed()) { - return; - } - mCursor.requery(); - } - - public View getGroupView(int groupPosition, boolean isExpanded, - View convertView, ViewGroup parent) { - TextView item; - if (null == convertView || !(convertView instanceof TextView)) { - LayoutInflater factory = LayoutInflater.from(mContext); - item = (TextView) factory.inflate(R.layout.list_group_header, parent, false); - } else { - item = (TextView) convertView; - } - String label = mDateSorter.getLabel(groupPositionToBin(groupPosition)); - item.setText(label); - return item; - } - - public View getChildView(int groupPosition, int childPosition, - boolean isLastChild, View convertView, ViewGroup parent) { - return null; - } - - public boolean areAllItemsEnabled() { - return true; - } - - public boolean isChildSelectable(int groupPosition, int childPosition) { - return true; - } - - public int getGroupCount() { - return mNumberOfBins; - } - - public int getChildrenCount(int groupPosition) { - return mItemMap[groupPositionToBin(groupPosition)]; - } - - public Object getGroup(int groupPosition) { - return null; - } - - public Object getChild(int groupPosition, int childPosition) { - return null; - } - - public long getGroupId(int groupPosition) { - return groupPosition; - } - - public long getChildId(int groupPosition, int childPosition) { - if (moveCursorToChildPosition(groupPosition, childPosition)) { - return getLong(mIdIndex); - } - return 0; - } - - public boolean hasStableIds() { - return true; - } - - public void registerDataSetObserver(DataSetObserver observer) { - mObservers.add(observer); - } - - public void unregisterDataSetObserver(DataSetObserver observer) { - mObservers.remove(observer); - } - - public void onGroupExpanded(int groupPosition) { - } - - public void onGroupCollapsed(int groupPosition) { - } - - public long getCombinedChildId(long groupId, long childId) { - return childId; - } - - public long getCombinedGroupId(long groupId) { - return groupId; - } - - public boolean isEmpty() { - return mCursor.isClosed() || mCursor.getCount() == 0; - } -} diff --git a/ui/src/com/android/providers/downloads/ui/DownloadAdapter.java b/ui/src/com/android/providers/downloads/ui/DownloadAdapter.java deleted file mode 100644 index 9ce2a986..00000000 --- a/ui/src/com/android/providers/downloads/ui/DownloadAdapter.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.providers.downloads.ui; - -import android.app.DownloadManager; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; -import android.content.res.Resources; -import android.database.Cursor; -import android.graphics.drawable.Drawable; -import android.net.Uri; -import android.text.format.Formatter; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.CursorAdapter; -import android.widget.ImageView; -import android.widget.TextView; - -import java.text.DateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.List; - -/** - * List adapter for Cursors returned by {@link DownloadManager}. - */ -public class DownloadAdapter extends CursorAdapter { - private final DownloadList mDownloadList; - private Cursor mCursor; - private Resources mResources; - private DateFormat mDateFormat; - private DateFormat mTimeFormat; - - private final int mTitleColumnId; - private final int mDescriptionColumnId; - private final int mStatusColumnId; - private final int mReasonColumnId; - private final int mTotalBytesColumnId; - private final int mMediaTypeColumnId; - private final int mDateColumnId; - private final int mIdColumnId; - private final int mFileNameColumnId; - - public DownloadAdapter(DownloadList downloadList, Cursor cursor) { - super(downloadList, cursor); - mDownloadList = downloadList; - mCursor = cursor; - mResources = mDownloadList.getResources(); - mDateFormat = DateFormat.getDateInstance(DateFormat.SHORT); - mTimeFormat = DateFormat.getTimeInstance(DateFormat.SHORT); - - mIdColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_ID); - mTitleColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TITLE); - mDescriptionColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_DESCRIPTION); - mStatusColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS); - mReasonColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_REASON); - mTotalBytesColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES); - mMediaTypeColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_MEDIA_TYPE); - mDateColumnId = - cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP); - mFileNameColumnId = - cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_FILENAME); - } - - public View newView() { - final DownloadItem view = (DownloadItem) LayoutInflater.from(mDownloadList) - .inflate(R.layout.download_list_item, null); - view.setDownloadListObj(mDownloadList); - return view; - } - - public void bindView(View convertView, int position) { - if (!(convertView instanceof DownloadItem)) { - return; - } - - long downloadId = mCursor.getLong(mIdColumnId); - ((DownloadItem) convertView).setData(downloadId, position, - mCursor.getString(mFileNameColumnId), - mCursor.getString(mMediaTypeColumnId)); - - // Retrieve the icon for this download - retrieveAndSetIcon(convertView); - - String title = mCursor.getString(mTitleColumnId); - if (title.isEmpty()) { - title = mResources.getString(R.string.missing_title); - } - setTextForView(convertView, R.id.download_title, title); - setTextForView(convertView, R.id.domain, mCursor.getString(mDescriptionColumnId)); - setTextForView(convertView, R.id.size_text, getSizeText()); - - final int status = mCursor.getInt(mStatusColumnId); - final CharSequence statusText; - if (status == DownloadManager.STATUS_SUCCESSFUL) { - statusText = getDateString(); - } else { - statusText = mResources.getString(getStatusStringId(status)); - } - setTextForView(convertView, R.id.status_text, statusText); - - ((DownloadItem) convertView).getCheckBox() - .setChecked(mDownloadList.isDownloadSelected(downloadId)); - } - - private String getDateString() { - Date date = new Date(mCursor.getLong(mDateColumnId)); - if (date.before(getStartOfToday())) { - return mDateFormat.format(date); - } else { - return mTimeFormat.format(date); - } - } - - private Date getStartOfToday() { - Calendar today = new GregorianCalendar(); - today.set(Calendar.HOUR_OF_DAY, 0); - today.set(Calendar.MINUTE, 0); - today.set(Calendar.SECOND, 0); - today.set(Calendar.MILLISECOND, 0); - return today.getTime(); - } - - private String getSizeText() { - long totalBytes = mCursor.getLong(mTotalBytesColumnId); - String sizeText = ""; - if (totalBytes >= 0) { - sizeText = Formatter.formatFileSize(mContext, totalBytes); - } - return sizeText; - } - - private int getStatusStringId(int status) { - switch (status) { - case DownloadManager.STATUS_FAILED: - return R.string.download_error; - - case DownloadManager.STATUS_SUCCESSFUL: - return R.string.download_success; - - case DownloadManager.STATUS_PENDING: - case DownloadManager.STATUS_RUNNING: - return R.string.download_running; - - case DownloadManager.STATUS_PAUSED: - final int reason = mCursor.getInt(mReasonColumnId); - switch (reason) { - case DownloadManager.PAUSED_QUEUED_FOR_WIFI: - return R.string.download_queued; - default: - return R.string.download_running; - } - } - throw new IllegalStateException("Unknown status: " + mCursor.getInt(mStatusColumnId)); - } - - private void retrieveAndSetIcon(View convertView) { - String mediaType = mCursor.getString(mMediaTypeColumnId); - ImageView iconView = (ImageView) convertView.findViewById(R.id.download_icon); - iconView.setVisibility(View.INVISIBLE); - - if (mediaType == null) { - return; - } - - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setDataAndType(Uri.fromParts("file", "", null), mediaType); - PackageManager pm = mContext.getPackageManager(); - List<ResolveInfo> list = pm.queryIntentActivities(intent, - PackageManager.MATCH_DEFAULT_ONLY); - if (list.size() == 0) { - // no icon found for this mediatype. use "unknown" icon - iconView.setImageResource(R.drawable.ic_download_misc_file_type); - } else { - Drawable icon = list.get(0).activityInfo.loadIcon(pm); - iconView.setImageDrawable(icon); - } - iconView.setVisibility(View.VISIBLE); - } - - private void setTextForView(View parent, int textViewId, CharSequence text) { - TextView view = (TextView) parent.findViewById(textViewId); - view.setText(text); - } - - // CursorAdapter overrides - - @Override - public View newView(Context context, Cursor cursor, ViewGroup parent) { - return newView(); - } - - @Override - public void bindView(View view, Context context, Cursor cursor) { - bindView(view, cursor.getPosition()); - } -} diff --git a/ui/src/com/android/providers/downloads/ui/DownloadItem.java b/ui/src/com/android/providers/downloads/ui/DownloadItem.java deleted file mode 100644 index 0562cd05..00000000 --- a/ui/src/com/android/providers/downloads/ui/DownloadItem.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.providers.downloads.ui; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.view.accessibility.AccessibilityEvent; -import android.widget.CheckBox; -import android.widget.Checkable; -import android.widget.GridLayout; - -/** - * This class customizes RelativeLayout to directly handle clicks on the left part of the view and - * treat them at clicks on the checkbox. This makes rapid selection of many items easier. This class - * also keeps an ID associated with the currently displayed download and notifies a listener upon - * selection changes with that ID. - */ -public class DownloadItem extends GridLayout implements Checkable { - private static float CHECKMARK_AREA = -1; - - private boolean mIsInDownEvent = false; - private CheckBox mCheckBox; - private long mDownloadId; - private String mFileName; - private String mMimeType; - private DownloadList mDownloadList; - private int mPosition; - - public DownloadItem(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - initialize(); - } - - public DownloadItem(Context context, AttributeSet attrs) { - super(context, attrs); - initialize(); - } - - public DownloadItem(Context context) { - super(context); - initialize(); - } - - private void initialize() { - if (CHECKMARK_AREA == -1) { - CHECKMARK_AREA = getResources().getDimensionPixelSize(R.dimen.checkmark_area); - } - } - - @Override - protected void onFinishInflate() { - super.onFinishInflate(); - mCheckBox = (CheckBox) findViewById(R.id.download_checkbox); - } - - public void setData(long downloadId, int position, String fileName, String mimeType) { - mDownloadId = downloadId; - mPosition = position; - mFileName = fileName; - mMimeType = mimeType; - if (mDownloadList.isDownloadSelected(downloadId)) { - setChecked(true); - } - } - - public void setDownloadListObj(DownloadList downloadList) { - mDownloadList = downloadList; - } - - private boolean inCheckArea(MotionEvent event) { - if (isLayoutRtl()) { - return event.getX() > getWidth() - CHECKMARK_AREA; - } else { - return event.getX() < CHECKMARK_AREA; - } - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - boolean handled = false; - switch(event.getAction()) { - case MotionEvent.ACTION_DOWN: - if (inCheckArea(event)) { - mIsInDownEvent = true; - handled = true; - } - break; - - case MotionEvent.ACTION_CANCEL: - mIsInDownEvent = false; - break; - - case MotionEvent.ACTION_UP: - if (mIsInDownEvent && inCheckArea(event)) { - toggle(); - sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED); - handled = true; - } - mIsInDownEvent = false; - break; - } - - if (handled) { - postInvalidate(); - } else { - handled = super.onTouchEvent(event); - } - - return handled; - } - - @Override - public boolean isChecked() { - return mCheckBox.isChecked(); - } - - @Override - public void setChecked(boolean checked) { - mCheckBox.setChecked(checked); - mDownloadList.onDownloadSelectionChanged(mDownloadId, mCheckBox.isChecked(), - mFileName, mMimeType); - mDownloadList.getCurrentView().setItemChecked(mPosition, mCheckBox.isChecked()); - } - - @Override - public void toggle() { - setChecked(!isChecked()); - } - - public CheckBox getCheckBox() { - return this.mCheckBox; - } - - public String getFileName() { - return mFileName; - } - - public String getMimeType() { - return mMimeType; - } -} diff --git a/ui/src/com/android/providers/downloads/ui/DownloadList.java b/ui/src/com/android/providers/downloads/ui/DownloadList.java index 107940c0..044bd4eb 100644 --- a/ui/src/com/android/providers/downloads/ui/DownloadList.java +++ b/ui/src/com/android/providers/downloads/ui/DownloadList.java @@ -17,134 +17,13 @@ package com.android.providers.downloads.ui; import android.app.Activity; -import android.app.AlertDialog; -import android.app.DownloadManager; -import android.content.ContentUris; -import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; -import android.database.ContentObserver; -import android.database.Cursor; -import android.database.DataSetObserver; -import android.net.Uri; import android.os.Bundle; -import android.os.Environment; -import android.os.Handler; -import android.os.Parcelable; -import android.provider.BaseColumns; import android.provider.DocumentsContract; -import android.provider.Downloads; -import android.util.Log; -import android.util.SparseBooleanArray; -import android.view.ActionMode; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.View.OnClickListener; -import android.widget.AbsListView.MultiChoiceModeListener; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.Button; -import android.widget.ExpandableListView; -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; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; - -/** - * View showing a list of all downloads the Download Manager knows about. - */ public class DownloadList extends Activity { - static final String LOG_TAG = "DownloadList"; - - private ExpandableListView mDateOrderedListView; - private ListView mSizeOrderedListView; - private View mEmptyView; - - private DownloadManager mDownloadManager; - private Cursor mDateSortedCursor; - private DateSortedDownloadAdapter mDateSortedAdapter; - private Cursor mSizeSortedCursor; - private DownloadAdapter mSizeSortedAdapter; - private ActionMode mActionMode; - private MyContentObserver mContentObserver = new MyContentObserver(); - private MyDataSetObserver mDataSetObserver = new MyDataSetObserver(); - - private int mStatusColumnId; - private int mIdColumnId; - private int mLocalUriColumnId; - private int mMediaTypeColumnId; - private int mReasonColumndId; - - // TODO this shouldn't be necessary - private final Map<Long, SelectionObjAttrs> mSelectedIds = - new HashMap<Long, SelectionObjAttrs>(); - private static class SelectionObjAttrs { - private String mFileName; - private String mMimeType; - SelectionObjAttrs(String fileName, String mimeType) { - mFileName = fileName; - mMimeType = mimeType; - } - String getFileName() { - return mFileName; - } - String getMimeType() { - return mMimeType; - } - } - private ListView mCurrentView; - private Cursor mCurrentCursor; - private boolean mCurrentViewIsExpandableListView = false; - private boolean mIsSortedBySize = false; - - /** - * We keep track of when a dialog is being displayed for a pending download, because if that - * download starts running, we want to immediately hide the dialog. - */ - private Long mQueuedDownloadId = null; - private AlertDialog mQueuedDialog; - String mSelectedCountFormat; - - private Button mSortOption; - - private class MyContentObserver extends ContentObserver { - public MyContentObserver() { - super(new Handler()); - } - - @Override - public void onChange(boolean selfChange) { - handleDownloadsChanged(); - } - } - - private class MyDataSetObserver extends DataSetObserver { - @Override - public void onChanged() { - // ignore change notification if there are selections - if (mSelectedIds.size() > 0) { - return; - } - // may need to switch to or from the empty view - chooseListToShow(); - ensureSomeGroupIsExpanded(); - } - } - @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); @@ -156,648 +35,4 @@ public class DownloadList extends Activity { startActivity(intent); finish(); } - - public void onCreateLegacy(Bundle icicle) { - super.onCreate(icicle); - setFinishOnTouchOutside(true); - setupViews(); - - mDownloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); - mDownloadManager.setAccessAllDownloads(true); - DownloadManager.Query baseQuery = new DownloadManager.Query() - .setOnlyIncludeVisibleInDownloadsUi(true); - //TODO don't do both queries - do them as needed - mDateSortedCursor = mDownloadManager.query(baseQuery); - mSizeSortedCursor = mDownloadManager.query(baseQuery - .orderBy(DownloadManager.COLUMN_TOTAL_SIZE_BYTES, - DownloadManager.Query.ORDER_DESCENDING)); - - // only attach everything to the listbox if we can access the download database. Otherwise, - // just show it empty - if (haveCursors()) { - startManagingCursor(mDateSortedCursor); - startManagingCursor(mSizeSortedCursor); - - mStatusColumnId = - mDateSortedCursor.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS); - mIdColumnId = - mDateSortedCursor.getColumnIndexOrThrow(DownloadManager.COLUMN_ID); - mLocalUriColumnId = - mDateSortedCursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_URI); - mMediaTypeColumnId = - mDateSortedCursor.getColumnIndexOrThrow(DownloadManager.COLUMN_MEDIA_TYPE); - mReasonColumndId = - mDateSortedCursor.getColumnIndexOrThrow(DownloadManager.COLUMN_REASON); - - mDateSortedAdapter = new DateSortedDownloadAdapter(this, mDateSortedCursor); - mDateOrderedListView.setAdapter(mDateSortedAdapter); - mSizeSortedAdapter = new DownloadAdapter(this, mSizeSortedCursor); - mSizeOrderedListView.setAdapter(mSizeSortedAdapter); - - ensureSomeGroupIsExpanded(); - } - - // did the caller want to display the data sorted by size? - Bundle extras = getIntent().getExtras(); - if (extras != null && - extras.getBoolean(DownloadManager.INTENT_EXTRAS_SORT_BY_SIZE, false)) { - mIsSortedBySize = true; - } - mSortOption = (Button) findViewById(R.id.sort_button); - mSortOption.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - // flip the view - mIsSortedBySize = !mIsSortedBySize; - // clear all selections - mSelectedIds.clear(); - chooseListToShow(); - } - }); - - chooseListToShow(); - mSelectedCountFormat = getString(R.string.selected_count); - } - - /** - * If no group is expanded in the date-sorted list, expand the first one. - */ - private void ensureSomeGroupIsExpanded() { - mDateOrderedListView.post(new Runnable() { - public void run() { - if (mDateSortedAdapter.getGroupCount() == 0) { - return; - } - for (int group = 0; group < mDateSortedAdapter.getGroupCount(); group++) { - if (mDateOrderedListView.isGroupExpanded(group)) { - return; - } - } - mDateOrderedListView.expandGroup(0); - } - }); - } - - private void setupViews() { - setContentView(R.layout.download_list); - ModeCallback modeCallback = new ModeCallback(this); - - //TODO don't create both views. create only the one needed. - mDateOrderedListView = (ExpandableListView) findViewById(R.id.date_ordered_list); - mDateOrderedListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); - mDateOrderedListView.setMultiChoiceModeListener(modeCallback); - mDateOrderedListView.setOnChildClickListener(new OnChildClickListener() { - // called when a child is clicked on (this is NOT the checkbox click) - @Override - public boolean onChildClick(ExpandableListView parent, View v, - int groupPosition, int childPosition, long id) { - if (!(v instanceof DownloadItem)) { - // can this even happen? - return false; - } - if (mSelectedIds.size() > 0) { - ((DownloadItem)v).setChecked(true); - } else { - mDateSortedAdapter.moveCursorToChildPosition(groupPosition, childPosition); - handleItemClick(mDateSortedCursor); - } - return true; - } - }); - mSizeOrderedListView = (ListView) findViewById(R.id.size_ordered_list); - mSizeOrderedListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); - mSizeOrderedListView.setMultiChoiceModeListener(modeCallback); - mSizeOrderedListView.setOnItemClickListener(new OnItemClickListener() { - // handle a click from the size-sorted list. (this is NOT the checkbox click) - @Override - public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - mSizeSortedCursor.moveToPosition(position); - handleItemClick(mSizeSortedCursor); - } - }); - mEmptyView = findViewById(R.id.empty); - } - - private static class ModeCallback implements MultiChoiceModeListener { - private final DownloadList mDownloadList; - - public ModeCallback(DownloadList downloadList) { - mDownloadList = downloadList; - } - - @Override public void onDestroyActionMode(ActionMode mode) { - mDownloadList.mSelectedIds.clear(); - mDownloadList.mActionMode = null; - } - - @Override - public boolean onPrepareActionMode(ActionMode mode, Menu menu) { - return true; - } - - @Override - public boolean onCreateActionMode(ActionMode mode, Menu menu) { - if (mDownloadList.haveCursors()) { - final MenuInflater inflater = mDownloadList.getMenuInflater(); - inflater.inflate(R.menu.download_menu, menu); - } - mDownloadList.mActionMode = mode; - return true; - } - - @Override - public boolean onActionItemClicked(ActionMode mode, MenuItem item) { - if (mDownloadList.mSelectedIds.size() == 0) { - // nothing selected. - return true; - } - switch (item.getItemId()) { - case R.id.delete_download: - for (Long downloadId : mDownloadList.mSelectedIds.keySet()) { - mDownloadList.deleteDownload(downloadId); - } - // uncheck all checked items - ListView lv = mDownloadList.getCurrentView(); - SparseBooleanArray checkedPositionList = lv.getCheckedItemPositions(); - int checkedPositionListSize = checkedPositionList.size(); - ArrayList<DownloadItem> sharedFiles = null; - for (int i = 0; i < checkedPositionListSize; i++) { - int position = checkedPositionList.keyAt(i); - if (checkedPositionList.get(position, false)) { - lv.setItemChecked(position, false); - onItemCheckedStateChanged(mode, position, 0, false); - } - } - mDownloadList.mSelectedIds.clear(); - // update the subtitle - onItemCheckedStateChanged(mode, 1, 0, false); - break; - case R.id.share_download: - mDownloadList.shareDownloadedFiles(); - break; - } - return true; - } - - @Override - public void onItemCheckedStateChanged(ActionMode mode, int position, long id, - boolean checked) { - // ignore long clicks on groups - if (mDownloadList.isCurrentViewExpandableListView()) { - ExpandableListView ev = mDownloadList.getExpandableListView(); - long pos = ev.getExpandableListPosition(position); - if (checked && (ExpandableListView.getPackedPositionType(pos) == - ExpandableListView.PACKED_POSITION_TYPE_GROUP)) { - // ignore this click - ev.setItemChecked(position, false); - return; - } - } - mDownloadList.setActionModeTitle(mode); - } - } - - void setActionModeTitle(ActionMode mode) { - int numSelected = mSelectedIds.size(); - if (numSelected > 0) { - mode.setTitle(String.format(mSelectedCountFormat, numSelected, - mCurrentCursor.getCount())); - } else { - mode.setTitle(""); - } - } - - private boolean haveCursors() { - return mDateSortedCursor != null && mSizeSortedCursor != null; - } - - @Override - protected void onResume() { - super.onResume(); - if (haveCursors()) { - mDateSortedCursor.registerContentObserver(mContentObserver); - mDateSortedCursor.registerDataSetObserver(mDataSetObserver); - refresh(); - } - } - - @Override - protected void onPause() { - super.onPause(); - if (haveCursors()) { - mDateSortedCursor.unregisterContentObserver(mContentObserver); - mDateSortedCursor.unregisterDataSetObserver(mDataSetObserver); - } - } - - private static final String BUNDLE_SAVED_DOWNLOAD_IDS = "download_ids"; - private static final String BUNDLE_SAVED_FILENAMES = "filenames"; - private static final String BUNDLE_SAVED_MIMETYPES = "mimetypes"; - @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putBoolean("isSortedBySize", mIsSortedBySize); - int len = mSelectedIds.size(); - if (len == 0) { - return; - } - long[] selectedIds = new long[len]; - String[] fileNames = new String[len]; - String[] mimeTypes = new String[len]; - int i = 0; - for (long id : mSelectedIds.keySet()) { - selectedIds[i] = id; - SelectionObjAttrs obj = mSelectedIds.get(id); - fileNames[i] = obj.getFileName(); - mimeTypes[i] = obj.getMimeType(); - i++; - } - outState.putLongArray(BUNDLE_SAVED_DOWNLOAD_IDS, selectedIds); - outState.putStringArray(BUNDLE_SAVED_FILENAMES, fileNames); - outState.putStringArray(BUNDLE_SAVED_MIMETYPES, mimeTypes); - } - - @Override - protected void onRestoreInstanceState(Bundle savedInstanceState) { - super.onRestoreInstanceState(savedInstanceState); - mIsSortedBySize = savedInstanceState.getBoolean("isSortedBySize"); - mSelectedIds.clear(); - long[] selectedIds = savedInstanceState.getLongArray(BUNDLE_SAVED_DOWNLOAD_IDS); - String[] fileNames = savedInstanceState.getStringArray(BUNDLE_SAVED_FILENAMES); - String[] mimeTypes = savedInstanceState.getStringArray(BUNDLE_SAVED_MIMETYPES); - if (selectedIds != null && selectedIds.length > 0) { - for (int i = 0; i < selectedIds.length; i++) { - mSelectedIds.put(selectedIds[i], new SelectionObjAttrs(fileNames[i], mimeTypes[i])); - } - } - chooseListToShow(); - } - - /** - * Show the correct ListView and hide the other, or hide both and show the empty view. - */ - private void chooseListToShow() { - mDateOrderedListView.setVisibility(View.GONE); - mSizeOrderedListView.setVisibility(View.GONE); - - if (mDateSortedCursor == null || mDateSortedCursor.getCount() == 0) { - mEmptyView.setVisibility(View.VISIBLE); - mSortOption.setVisibility(View.GONE); - } else { - mEmptyView.setVisibility(View.GONE); - mSortOption.setVisibility(View.VISIBLE); - ListView lv = activeListView(); - lv.setVisibility(View.VISIBLE); - lv.invalidateViews(); // ensure checkboxes get updated - } - // restore the ActionMode title if there are selections - if (mActionMode != null) { - setActionModeTitle(mActionMode); - } - } - - ListView getCurrentView() { - return mCurrentView; - } - - ExpandableListView getExpandableListView() { - return mDateOrderedListView; - } - - boolean isCurrentViewExpandableListView() { - return mCurrentViewIsExpandableListView; - } - - private ListView activeListView() { - if (mIsSortedBySize) { - mCurrentCursor = mSizeSortedCursor; - mCurrentView = mSizeOrderedListView; - setTitle(R.string.download_title_sorted_by_size); - mSortOption.setText(R.string.button_sort_by_date); - mCurrentViewIsExpandableListView = false; - } else { - mCurrentCursor = mDateSortedCursor; - mCurrentView = mDateOrderedListView; - setTitle(R.string.download_title_sorted_by_date); - mSortOption.setText(R.string.button_sort_by_size); - mCurrentViewIsExpandableListView = true; - } - if (mActionMode != null) { - mActionMode.finish(); - } - return mCurrentView; - } - - /** - * @return an OnClickListener to delete the given downloadId from the Download Manager - */ - private DialogInterface.OnClickListener getDeleteClickHandler(final long downloadId) { - return new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - deleteDownload(downloadId); - } - }; - } - - /** - * @return an OnClickListener to restart the given downloadId in the Download Manager - */ - private DialogInterface.OnClickListener getRestartClickHandler(final long downloadId) { - return new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - mDownloadManager.restartDownload(downloadId); - } - }; - } - - /** - * Send an Intent to open the download currently pointed to by the given cursor. - */ - private void openCurrentDownload(Cursor cursor) { - final Uri localUri = Uri.parse(cursor.getString(mLocalUriColumnId)); - try { - getContentResolver().openFileDescriptor(localUri, "r").close(); - } catch (FileNotFoundException exc) { - Log.d(LOG_TAG, "Failed to open download " + cursor.getLong(mIdColumnId), exc); - showFailedDialog(cursor.getLong(mIdColumnId), - getString(R.string.dialog_file_missing_body)); - return; - } catch (IOException exc) { - // close() failed, not a problem - } - - final long id = cursor.getLong(cursor.getColumnIndexOrThrow(BaseColumns._ID)); - if (!OpenHelper.startViewIntent(this, id, 0)) { - Toast.makeText(this, R.string.download_no_application_title, Toast.LENGTH_SHORT).show(); - } - } - - private void handleItemClick(Cursor cursor) { - long id = cursor.getInt(mIdColumnId); - switch (cursor.getInt(mStatusColumnId)) { - case DownloadManager.STATUS_PENDING: - case DownloadManager.STATUS_RUNNING: - sendRunningDownloadClickedBroadcast(id); - break; - - case DownloadManager.STATUS_PAUSED: - if (isPausedForWifi(cursor)) { - mQueuedDownloadId = id; - mQueuedDialog = new AlertDialog.Builder(this) - .setTitle(R.string.dialog_title_queued_body) - .setMessage(R.string.dialog_queued_body) - .setPositiveButton(R.string.keep_queued_download, null) - .setNegativeButton(R.string.remove_download, getDeleteClickHandler(id)) - .setOnCancelListener(new DialogInterface.OnCancelListener() { - /** - * Called when a dialog for a pending download is canceled. - */ - @Override - public void onCancel(DialogInterface dialog) { - mQueuedDownloadId = null; - mQueuedDialog = null; - } - }) - .show(); - } else { - sendRunningDownloadClickedBroadcast(id); - } - break; - - case DownloadManager.STATUS_SUCCESSFUL: - openCurrentDownload(cursor); - break; - - case DownloadManager.STATUS_FAILED: - showFailedDialog(id, getErrorMessage(cursor)); - break; - } - } - - /** - * @return the appropriate error message for the failed download pointed to by cursor - */ - private String getErrorMessage(Cursor cursor) { - switch (cursor.getInt(mReasonColumndId)) { - case DownloadManager.ERROR_FILE_ALREADY_EXISTS: - if (isOnExternalStorage(cursor)) { - return getString(R.string.dialog_file_already_exists); - } else { - // the download manager should always find a free filename for cache downloads, - // so this indicates a strange internal error - return getUnknownErrorMessage(); - } - - case DownloadManager.ERROR_INSUFFICIENT_SPACE: - if (isOnExternalStorage(cursor)) { - return getString(R.string.dialog_insufficient_space_on_external); - } else { - return getString(R.string.dialog_insufficient_space_on_cache); - } - - case DownloadManager.ERROR_DEVICE_NOT_FOUND: - return getString(R.string.dialog_media_not_found); - - case DownloadManager.ERROR_CANNOT_RESUME: - return getString(R.string.dialog_cannot_resume); - - default: - return getUnknownErrorMessage(); - } - } - - private boolean isOnExternalStorage(Cursor cursor) { - String localUriString = cursor.getString(mLocalUriColumnId); - if (localUriString == null) { - return false; - } - Uri localUri = Uri.parse(localUriString); - if (!localUri.getScheme().equals("file")) { - return false; - } - String path = localUri.getPath(); - String externalRoot = Environment.getExternalStorageDirectory().getPath(); - return path.startsWith(externalRoot); - } - - private String getUnknownErrorMessage() { - return getString(R.string.dialog_failed_body); - } - - private void showFailedDialog(long downloadId, String dialogBody) { - new AlertDialog.Builder(this) - .setTitle(R.string.dialog_title_not_available) - .setMessage(dialogBody) - .setNegativeButton(R.string.delete_download, getDeleteClickHandler(downloadId)) - .setPositiveButton(R.string.retry_download, getRestartClickHandler(downloadId)) - .show(); - } - - private void sendRunningDownloadClickedBroadcast(long id) { - 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); - } - - // handle a click on one of the download item checkboxes - public void onDownloadSelectionChanged(long downloadId, boolean isSelected, - String fileName, String mimeType) { - if (isSelected) { - mSelectedIds.put(downloadId, new SelectionObjAttrs(fileName, mimeType)); - } else { - mSelectedIds.remove(downloadId); - } - } - - /** - * Requery the database and update the UI. - */ - private void refresh() { - mDateSortedCursor.requery(); - mSizeSortedCursor.requery(); - // Adapters get notification of changes and update automatically - } - - /** - * Delete a download from the Download Manager. - */ - private void deleteDownload(long downloadId) { - // let DownloadService do the job of cleaning up the downloads db, mediaprovider db, - // and removal of file from sdcard - // TODO do the following in asynctask - not on main thread. - mDownloadManager.markRowDeleted(downloadId); - } - - public boolean isDownloadSelected(long id) { - return mSelectedIds.containsKey(id); - } - - /** - * Called when there's a change to the downloads database. - */ - void handleDownloadsChanged() { - checkSelectionForDeletedEntries(); - - if (mQueuedDownloadId != null && moveToDownload(mQueuedDownloadId)) { - if (mDateSortedCursor.getInt(mStatusColumnId) != DownloadManager.STATUS_PAUSED - || !isPausedForWifi(mDateSortedCursor)) { - mQueuedDialog.cancel(); - } - } - } - - private boolean isPausedForWifi(Cursor cursor) { - return cursor.getInt(mReasonColumndId) == DownloadManager.PAUSED_QUEUED_FOR_WIFI; - } - - /** - * Check if any of the selected downloads have been deleted from the downloads database, and - * remove such downloads from the selection. - */ - private void checkSelectionForDeletedEntries() { - // gather all existing IDs... - Set<Long> allIds = new HashSet<Long>(); - for (mDateSortedCursor.moveToFirst(); !mDateSortedCursor.isAfterLast(); - mDateSortedCursor.moveToNext()) { - allIds.add(mDateSortedCursor.getLong(mIdColumnId)); - } - - // ...and check if any selected IDs are now missing - for (Iterator<Long> iterator = mSelectedIds.keySet().iterator(); iterator.hasNext(); ) { - if (!allIds.contains(iterator.next())) { - iterator.remove(); - } - } - } - - /** - * Move {@link #mDateSortedCursor} to the download with the given ID. - * @return true if the specified download ID was found; false otherwise - */ - private boolean moveToDownload(long downloadId) { - for (mDateSortedCursor.moveToFirst(); !mDateSortedCursor.isAfterLast(); - mDateSortedCursor.moveToNext()) { - if (mDateSortedCursor.getLong(mIdColumnId) == downloadId) { - return true; - } - } - return false; - } - - /** - * handle share menu button click when one more files are selected for sharing - */ - public boolean shareDownloadedFiles() { - Intent intent = new Intent(); - if (mSelectedIds.size() > 1) { - intent.setAction(Intent.ACTION_SEND_MULTIPLE); - ArrayList<Parcelable> attachments = new ArrayList<Parcelable>(); - ArrayList<String> mimeTypes = new ArrayList<String>(); - for (Map.Entry<Long, SelectionObjAttrs> item : mSelectedIds.entrySet()) { - final Uri uri = ContentUris.withAppendedId( - Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, item.getKey()); - final String mimeType = item.getValue().getMimeType(); - attachments.add(uri); - if (mimeType != null) { - mimeTypes.add(mimeType); - } - } - intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, attachments); - intent.setType(findCommonMimeType(mimeTypes)); - } else { - // get the entry - // since there is ONLY one entry in this, we can do the following - for (Map.Entry<Long, SelectionObjAttrs> item : mSelectedIds.entrySet()) { - final Uri uri = ContentUris.withAppendedId( - Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, item.getKey()); - final String mimeType = item.getValue().getMimeType(); - intent.setAction(Intent.ACTION_SEND); - intent.putExtra(Intent.EXTRA_STREAM, uri); - intent.setType(mimeType); - } - } - intent = Intent.createChooser(intent, getText(R.string.download_share_dialog)); - startActivity(intent); - return true; - } - - private String findCommonMimeType(ArrayList<String> mimeTypes) { - // are all mimeypes the same? - String str = findCommonString(mimeTypes); - if (str != null) { - return str; - } - - // are all prefixes of the given mimetypes the same? - ArrayList<String> mimeTypePrefixes = new ArrayList<String>(); - for (String s : mimeTypes) { - if (s != null) { - mimeTypePrefixes.add(s.substring(0, s.indexOf('/'))); - } - } - str = findCommonString(mimeTypePrefixes); - if (str != null) { - return str + "/*"; - } - - // return generic mimetype - return "*/*"; - } - private String findCommonString(Collection<String> set) { - String str = null; - boolean found = true; - for (String s : set) { - if (str == null) { - str = s; - } else if (!str.equals(s)) { - found = false; - break; - } - } - return (found) ? str : null; - } } |