summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/res/anim/footer_appear.xml25
-rw-r--r--ui/res/anim/footer_disappear.xml25
-rw-r--r--ui/res/drawable-hdpi/ic_download_misc_file_type.pngbin2405 -> 0 bytes
-rw-r--r--ui/res/drawable-hdpi/ic_launcher_drm_file.pngbin4501 -> 0 bytes
-rw-r--r--ui/res/drawable-hdpi/ic_menu_desk_clock.pngbin2171 -> 0 bytes
-rw-r--r--ui/res/drawable-mdpi/ic_download_misc_file_type.pngbin1624 -> 0 bytes
-rw-r--r--ui/res/drawable-mdpi/ic_launcher_drm_file.pngbin2738 -> 0 bytes
-rw-r--r--ui/res/layout/download_list.xml71
-rw-r--r--ui/res/layout/download_list_item.xml85
-rw-r--r--ui/res/layout/list_group_header.xml23
-rw-r--r--ui/res/menu/download_menu.xml27
-rw-r--r--ui/res/values-ar/strings.xml2
-rw-r--r--ui/res/values-az-rAZ/strings.xml50
-rw-r--r--ui/res/values-be/strings.xml50
-rw-r--r--ui/res/values-bn-rBD/strings.xml50
-rw-r--r--ui/res/values-ca/strings.xml2
-rw-r--r--ui/res/values-en-rIN/strings.xml50
-rw-r--r--ui/res/values-et-rEE/strings.xml (renamed from ui/res/values-et/strings.xml)0
-rw-r--r--ui/res/values-eu-rES/strings.xml50
-rw-r--r--ui/res/values-fa/strings.xml2
-rw-r--r--ui/res/values-fr-rCA/strings.xml50
-rw-r--r--ui/res/values-gl-rES/strings.xml50
-rw-r--r--ui/res/values-hy-rAM/strings.xml50
-rw-r--r--ui/res/values-in/strings.xml4
-rw-r--r--ui/res/values-is-rIS/strings.xml50
-rw-r--r--ui/res/values-iw/strings.xml2
-rw-r--r--ui/res/values-ka-rGE/strings.xml50
-rw-r--r--ui/res/values-kk-rKZ/strings.xml50
-rw-r--r--ui/res/values-km-rKH/strings.xml50
-rw-r--r--ui/res/values-kn-rIN/strings.xml50
-rw-r--r--ui/res/values-ky-rKG/strings.xml50
-rw-r--r--ui/res/values-lo-rLA/strings.xml50
-rw-r--r--ui/res/values-mk-rMK/strings.xml50
-rw-r--r--ui/res/values-ml-rIN/strings.xml50
-rw-r--r--ui/res/values-mn-rMN/strings.xml50
-rw-r--r--ui/res/values-mr-rIN/strings.xml50
-rw-r--r--ui/res/values-ms-rMY/strings.xml (renamed from ui/res/values-ms/strings.xml)0
-rw-r--r--ui/res/values-my-rMM/strings.xml50
-rw-r--r--ui/res/values-ne-rNP/strings.xml50
-rw-r--r--ui/res/values-si-rLK/strings.xml50
-rw-r--r--ui/res/values-sk/strings.xml26
-rw-r--r--ui/res/values-ta-rIN/strings.xml50
-rw-r--r--ui/res/values-te-rIN/strings.xml50
-rw-r--r--ui/res/values-th/strings.xml8
-rw-r--r--ui/res/values-ur-rPK/strings.xml50
-rw-r--r--ui/res/values-uz-rUZ/strings.xml50
-rw-r--r--ui/res/values-zh-rHK/strings.xml50
-rw-r--r--ui/res/values/dimen.xml19
-rw-r--r--ui/src/com/android/providers/downloads/ui/DateSortedDownloadAdapter.java60
-rw-r--r--ui/src/com/android/providers/downloads/ui/DateSortedExpandableListAdapter.java354
-rw-r--r--ui/src/com/android/providers/downloads/ui/DownloadAdapter.java215
-rw-r--r--ui/src/com/android/providers/downloads/ui/DownloadItem.java156
-rw-r--r--ui/src/com/android/providers/downloads/ui/DownloadList.java765
53 files changed, 1323 insertions, 1898 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
deleted file mode 100644
index dab3b6e1..00000000
--- a/ui/res/drawable-hdpi/ic_download_misc_file_type.png
+++ /dev/null
Binary files differ
diff --git a/ui/res/drawable-hdpi/ic_launcher_drm_file.png b/ui/res/drawable-hdpi/ic_launcher_drm_file.png
deleted file mode 100644
index 9df1c556..00000000
--- a/ui/res/drawable-hdpi/ic_launcher_drm_file.png
+++ /dev/null
Binary files differ
diff --git a/ui/res/drawable-hdpi/ic_menu_desk_clock.png b/ui/res/drawable-hdpi/ic_menu_desk_clock.png
deleted file mode 100644
index 4101434e..00000000
--- a/ui/res/drawable-hdpi/ic_menu_desk_clock.png
+++ /dev/null
Binary files differ
diff --git a/ui/res/drawable-mdpi/ic_download_misc_file_type.png b/ui/res/drawable-mdpi/ic_download_misc_file_type.png
deleted file mode 100644
index ceed70cf..00000000
--- a/ui/res/drawable-mdpi/ic_download_misc_file_type.png
+++ /dev/null
Binary files differ
diff --git a/ui/res/drawable-mdpi/ic_launcher_drm_file.png b/ui/res/drawable-mdpi/ic_launcher_drm_file.png
deleted file mode 100644
index 57378b23..00000000
--- a/ui/res/drawable-mdpi/ic_launcher_drm_file.png
+++ /dev/null
Binary files differ
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/values-ar/strings.xml b/ui/res/values-ar/strings.xml
index f39fdad5..99638b35 100644
--- a/ui/res/values-ar/strings.xml
+++ b/ui/res/values-ar/strings.xml
@@ -20,7 +20,7 @@
<string name="download_title_sorted_by_date" msgid="5898014492155434221">"عمليات التنزيل - مصنفة بحسب التاريخ"</string>
<string name="download_title_sorted_by_size" msgid="1417193166677094813">"عمليات التنزيل - مصنفة بحسب الحجم"</string>
<string name="no_downloads" msgid="1029667411186146836">"ليس هناك أي تنزيلات"</string>
- <string name="missing_title" msgid="830115697868833773">"&lt;غير معروف&gt;"</string>
+ <string name="missing_title" msgid="830115697868833773">"‏&lt;غير معروف&gt;"</string>
<string name="button_sort_by_size" msgid="7331549713691146251">"التصنيف بحسب الحجم"</string>
<string name="button_sort_by_date" msgid="8800842892684101528">"التصنيف بحسب التاريخ"</string>
<string name="download_queued" msgid="104973307780629904">"في الانتظار"</string>
diff --git a/ui/res/values-az-rAZ/strings.xml b/ui/res/values-az-rAZ/strings.xml
new file mode 100644
index 00000000..5ee50dfe
--- /dev/null
+++ b/ui/res/values-az-rAZ/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">"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">"&lt;Bilinməyən&gt;"</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">"&lt;অজানা&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"আকার অনুসারে সাজান"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"তারিখ অনুসারে বাছাই করুন"</string>
+ <string name="download_queued" msgid="104973307780629904">"সারিবদ্ধ"</string>
+ <string name="download_running" msgid="4656462962155580641">"প্রগতিতে রয়েছে"</string>
+ <string name="download_success" msgid="7006048006543495236">"সম্পূর্ণ"</string>
+ <string name="download_error" msgid="8081329546008568251">"অসফল"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"ডাউনলোড করা যায়নি"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"আপনি পরে ফাইলটি ডাউনলোড করতে পুনরায় চেষ্টা করবেন অথবা সারি থেকে এটি মুছে ফেলতে চান?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"ফাইল সারিতে রয়েছে"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"এই ফাইলটি ভবিষ্যতের ডাউনলোডের জন্য সারিবদ্ধ করা আছে তাই এখনো উপলব্ধ নয়।"</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"ডাউনলোড করা ফাইল খুঁজে পাওয়া যাবে না।"</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"ডাউনলোড শেষ করা যাবে না। বহিরাগত সঞ্চয়স্থানে পর্যাপ্ত জায়গা নেই।"</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"ডাউনলোড শেষ করা যাবে না। অভ্যন্তরীণ ডাউনলোড সঞ্চয়স্থানে পর্যাপ্ত জায়গা নেই।"</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"ডাউনলোড বাধাপ্রাপ্ত হয়েছে এবং পুনঃসূচনা করা যাবে না।"</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"ডাউনলোড করতে পারবেন না। গন্তব্য ফাইলটি ইতিমধ্যেই বিদ্যমান।"</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"ডাউনলোড করতে পারবেন না। বহিরাগত মিডিয়া উপলব্ধ নয়।"</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"ফাইল খোলা যাবে না"</string>
+ <string name="remove_download" msgid="6372920256257247857">"সরান"</string>
+ <string name="delete_download" msgid="76629022653866471">"মুছুন"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"রাখুন"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"বাতিল করুন"</string>
+ <string name="retry_download" msgid="7617100787922717912">"পুনরায় চেষ্টা করুন"</string>
+ <string name="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-ca/strings.xml b/ui/res/values-ca/strings.xml
index 072ca539..f9fc286c 100644
--- a/ui/res/values-ca/strings.xml
+++ b/ui/res/values-ca/strings.xml
@@ -35,7 +35,7 @@
<string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"No es pot finalitzar la baixada. No hi ha prou espai a l\'emmagatzematge extern."</string>
<string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"No es pot finalitzar la baixada. No hi ha prou espai a l\'emmagatzematge intern."</string>
<string name="dialog_cannot_resume" msgid="8664509751358983543">"S\'ha interromput la baixada i no es pot reprendre."</string>
- <string name="dialog_file_already_exists" msgid="8308563940663449590">"No es pot baixar. El fitxer de destí ja existeix."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"No es pot baixar. El fitxer de destinació ja existeix."</string>
<string name="dialog_media_not_found" msgid="4468088418758018765">"No es pot baixar. El mitjà extern no està disponible."</string>
<string name="download_no_application_title" msgid="7024782176657362251">"No es pot obrir el fitxer"</string>
<string name="remove_download" msgid="6372920256257247857">"Elimina"</string>
diff --git a/ui/res/values-en-rIN/strings.xml b/ui/res/values-en-rIN/strings.xml
new file mode 100644
index 00000000..15cab92d
--- /dev/null
+++ b/ui/res/values-en-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">"Downloads"</string>
+ <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Downloads - Sorted by date"</string>
+ <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Downloads - Sorted by size"</string>
+ <string name="no_downloads" msgid="1029667411186146836">"No downloads."</string>
+ <string name="missing_title" msgid="830115697868833773">"&lt;Unknown&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"Sort by size"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"Sort by date"</string>
+ <string name="download_queued" msgid="104973307780629904">"Queued"</string>
+ <string name="download_running" msgid="4656462962155580641">"In progress"</string>
+ <string name="download_success" msgid="7006048006543495236">"Complete"</string>
+ <string name="download_error" msgid="8081329546008568251">"Unsuccessful"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"Couldn\'t download"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"Do you want to retry downloading the file later or delete it from the queue?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"File in queue"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"This file is queued for future download, so isn\'t available yet."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"Can\'t find the downloaded file."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Can\'t finish download. There isn\'t enough space on external storage."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Cannot finish download. There is not enough space on internal download storage."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"Download was interrupted and can\'t be resumed."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"Can\'t download. The destination file already exists."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"Cannot download. The external media are not available."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"Can\'t open file"</string>
+ <string name="remove_download" msgid="6372920256257247857">"Remove"</string>
+ <string name="delete_download" msgid="76629022653866471">"Delete"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"Keep"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"Cancel"</string>
+ <string name="retry_download" msgid="7617100787922717912">"Retry"</string>
+ <string name="deselect_all" msgid="6348198946254776764">"Deselect all"</string>
+ <string name="select_all" msgid="634074918366265804">"Select all"</string>
+ <string name="selected_count" msgid="2101564570019753277">"Selected <xliff:g id="NUMBER">%1$d</xliff:g> out of <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+ <string name="download_share_dialog" msgid="3355867339806448955">"Share via"</string>
+</resources>
diff --git a/ui/res/values-et/strings.xml b/ui/res/values-et-rEE/strings.xml
index e2602e5d..e2602e5d 100644
--- a/ui/res/values-et/strings.xml
+++ b/ui/res/values-et-rEE/strings.xml
diff --git a/ui/res/values-eu-rES/strings.xml b/ui/res/values-eu-rES/strings.xml
new file mode 100644
index 00000000..b852bb0c
--- /dev/null
+++ b/ui/res/values-eu-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">"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">"&lt;Ezezaguna&gt;"</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-fa/strings.xml b/ui/res/values-fa/strings.xml
index 8650ce35..eeb855ef 100644
--- a/ui/res/values-fa/strings.xml
+++ b/ui/res/values-fa/strings.xml
@@ -20,7 +20,7 @@
<string name="download_title_sorted_by_date" msgid="5898014492155434221">"دانلودها - مرتب شده بر اساس تاریخ"</string>
<string name="download_title_sorted_by_size" msgid="1417193166677094813">"دانلودها - مرتب شده بر اساس اندازه"</string>
<string name="no_downloads" msgid="1029667411186146836">"خیر دانلودها."</string>
- <string name="missing_title" msgid="830115697868833773">"&lt;ناشناس&gt;"</string>
+ <string name="missing_title" msgid="830115697868833773">"‏&lt;ناشناس&gt;"</string>
<string name="button_sort_by_size" msgid="7331549713691146251">"بر اساس اندازه مرتب شود"</string>
<string name="button_sort_by_date" msgid="8800842892684101528">"ترتیب براساس تاریخ"</string>
<string name="download_queued" msgid="104973307780629904">"در صف"</string>
diff --git a/ui/res/values-fr-rCA/strings.xml b/ui/res/values-fr-rCA/strings.xml
new file mode 100644
index 00000000..69dacc94
--- /dev/null
+++ b/ui/res/values-fr-rCA/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">"Téléchargements"</string>
+ <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Téléchargements : triés par date"</string>
+ <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Téléchargements : triés par taille"</string>
+ <string name="no_downloads" msgid="1029667411186146836">"Aucun téléchargement"</string>
+ <string name="missing_title" msgid="830115697868833773">"&lt;Inconnu&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"Trier par taille"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"Trier par date"</string>
+ <string name="download_queued" msgid="104973307780629904">"Placée en file d\'attente"</string>
+ <string name="download_running" msgid="4656462962155580641">"En cours de traitement"</string>
+ <string name="download_success" msgid="7006048006543495236">"Terminé"</string>
+ <string name="download_error" msgid="8081329546008568251">"Échec"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"Téléchargement impossible"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"Souhaitez-vous réessayer de télécharger le fichier plus tard ou préférez-vous le supprimer de la file d\'attente?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"Fichier en attente"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"Ce fichier est en attente de téléchargement et n\'est donc pas encore disponible."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"Impossible de trouver le fichier téléchargé."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Impossible de terminer le téléchargement. L\'espace disponible sur la mémoire de stockage externe est insuffisant."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Impossible de terminer le téléchargement. L\'espace disponible sur la mémoire de stockage interne est insuffisant."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"Le téléchargement a été interrompu et ne peut pas être repris."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"Impossible de procéder au téléchargement. Le fichier de destination existe déjà."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"Impossible de procéder au téléchargement. Le support externe n\'est pas disponible."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"Impossible d\'ouvrir le fichier."</string>
+ <string name="remove_download" msgid="6372920256257247857">"Supprimer"</string>
+ <string name="delete_download" msgid="76629022653866471">"Supprimer"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"Conserver"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"Annuler"</string>
+ <string name="retry_download" msgid="7617100787922717912">"Réessayer"</string>
+ <string name="deselect_all" msgid="6348198946254776764">"Tout désélectionner"</string>
+ <string name="select_all" msgid="634074918366265804">"Tout sélectionner"</string>
+ <string name="selected_count" msgid="2101564570019753277">"<xliff:g id="NUMBER">%1$d</xliff:g> téléchargements sélectionnés sur <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+ <string name="download_share_dialog" msgid="3355867339806448955">"Partager via"</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">"&lt;Descoñecido&gt;"</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-hy-rAM/strings.xml b/ui/res/values-hy-rAM/strings.xml
new file mode 100644
index 00000000..0b494a6c
--- /dev/null
+++ b/ui/res/values-hy-rAM/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">"&lt;Անհայտ&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"Դասավորել ըստ չափի"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"Դասավորել ըստ ամսաթվի"</string>
+ <string name="download_queued" msgid="104973307780629904">"Հերթագրված է"</string>
+ <string name="download_running" msgid="4656462962155580641">"Ընթացքի մեջ է"</string>
+ <string name="download_success" msgid="7006048006543495236">"Ավարտված է"</string>
+ <string name="download_error" msgid="8081329546008568251">"Ձախողվել է"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"Հնարավոր չէ ներբեռնել"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"Ցանկանու՞մ եք կրկնել ֆայլի ներբեռնումը ավելի ուշ, թե՞ ջնջել այն հերթացանկից:"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"Ֆայլը հերթացանկում է"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"Այս ֆայլը հերթագրված է հետագայում ներբեռնման համար, այնպես որ` դեռ հասանելի չէ:"</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"Հնարավոր չէ գնտել ներբեռնված ֆայլը:"</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Հնարավոր չէ ավարտել ներբեռնումը: Չկա բավարար տարածություն արտաքին պահուստում:"</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Հնարավոր չէ ավարտել ներբեռնումը: Չկա բավարար տարածություն ներքին ներբեռնման պահուստում:"</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"Ներբեռնումը խզվել է, և այն հնարավոր չէ վերականգնել:"</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"Հնարավոր չէ ներբեռնել: Նպատակային ֆայլն արդեն գոյություն ունի:"</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"Հնարավոր չէ ներբեռնել: Արտաքին կրիչը հասանելի չէ:"</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"Հնարավոր չէ բացել ֆայլը"</string>
+ <string name="remove_download" msgid="6372920256257247857">"Հեռացնել"</string>
+ <string name="delete_download" msgid="76629022653866471">"Ջնջել"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"Պահել"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"Չեղարկել"</string>
+ <string name="retry_download" msgid="7617100787922717912">"Կրկնել"</string>
+ <string name="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-in/strings.xml b/ui/res/values-in/strings.xml
index f3bfe35c..72cb4372 100644
--- a/ui/res/values-in/strings.xml
+++ b/ui/res/values-in/strings.xml
@@ -21,8 +21,8 @@
<string name="download_title_sorted_by_size" msgid="1417193166677094813">"Unduhan - Disortir menurut ukuran"</string>
<string name="no_downloads" msgid="1029667411186146836">"Tidak ada unduhan."</string>
<string name="missing_title" msgid="830115697868833773">"&lt;Tidak diketahui&gt;"</string>
- <string name="button_sort_by_size" msgid="7331549713691146251">"Sortir menurut ukuran"</string>
- <string name="button_sort_by_date" msgid="8800842892684101528">"Sortir menurut tanggal"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"Urutkan menurut ukuran"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"Urutkan menurut tanggal"</string>
<string name="download_queued" msgid="104973307780629904">"Dalam antrean"</string>
<string name="download_running" msgid="4656462962155580641">"Sedang berlangsung"</string>
<string name="download_success" msgid="7006048006543495236">"Selesai"</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">"&lt;Óþekkt&gt;"</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-iw/strings.xml b/ui/res/values-iw/strings.xml
index ca58ef6f..8b7965f8 100644
--- a/ui/res/values-iw/strings.xml
+++ b/ui/res/values-iw/strings.xml
@@ -20,7 +20,7 @@
<string name="download_title_sorted_by_date" msgid="5898014492155434221">"הורדות - ממוינות לפי תאריך"</string>
<string name="download_title_sorted_by_size" msgid="1417193166677094813">"הורדות - ממוינות לפי גודל"</string>
<string name="no_downloads" msgid="1029667411186146836">"אין הורדות."</string>
- <string name="missing_title" msgid="830115697868833773">"&lt;לא ידוע&gt;"</string>
+ <string name="missing_title" msgid="830115697868833773">"‏&lt;לא ידוע&gt;"</string>
<string name="button_sort_by_size" msgid="7331549713691146251">"מיין לפי גודל"</string>
<string name="button_sort_by_date" msgid="8800842892684101528">"מיין לפי תאריך"</string>
<string name="download_queued" msgid="104973307780629904">"בהמתנה בתור"</string>
diff --git a/ui/res/values-ka-rGE/strings.xml b/ui/res/values-ka-rGE/strings.xml
new file mode 100644
index 00000000..17dab2af
--- /dev/null
+++ b/ui/res/values-ka-rGE/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">"&lt;უცნობი&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"სორტირება ზომის მიხედვით"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"სორტირება თარიღის მიხედვით"</string>
+ <string name="download_queued" msgid="104973307780629904">"რიგშია"</string>
+ <string name="download_running" msgid="4656462962155580641">"მიმდინარეობს"</string>
+ <string name="download_success" msgid="7006048006543495236">"დასრულება"</string>
+ <string name="download_error" msgid="8081329546008568251">"წარუმატებელი"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"ჩამოტვირთვა ვერ განხორციელდა"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"გსურთ, ფაილის ჩამოტვირთვა სცადოთ ხელახლა მოგვიანებით თუ წაშალოთ ის რიგიდან?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"ფაილი რიგშია"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"ეს ფაილი რიგშია მომავალი ჩამოტვირთვისთვის და ჯერ მიუწვდომელია."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"ჩამოტვირთული ფაილის მოძიება ვერ ხერხდება."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"ჩამოტვირთვა ვერ დასრულდა. გარე მეხსიერებაში არ არის საკმარისი სივრცე."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Can\'t finish download. There isn\'t enough space on internal download storage."</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-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">"&lt;Белгісіз&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"Өлшемі бойынша сұрыптау"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"Мерзімі бойынша сұрыптау"</string>
+ <string name="download_queued" msgid="104973307780629904">"Кезекте"</string>
+ <string name="download_running" msgid="4656462962155580641">"Жүктеуде"</string>
+ <string name="download_success" msgid="7006048006543495236">"Аяқталды"</string>
+ <string name="download_error" msgid="8081329546008568251">"Сәтсіз"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"Жүктеу мүмкін болмады."</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"Бұл файлды кейінірек қайта жүктеп көруді қалайсыз ба әлде кезектен жойылсын ба?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"Файл кезекте."</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"Бұл файл келесі жолы жүктеу үшін кезекке қойылған, сондықтан қазір қол жетімсіз."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"Жүктелген файлдарды таба алмады."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Жүктеуді аяқтау мүмкін емес. Сыртқы жүктеу жадында жеткілікті орын жоқ."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Жүктеуді аяқтау мүмкін емес. Ішкі жүктеу жадында жеткілікті орын жоқ."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"Жүктеу тоқтатылды және оны жалғастыру мүмкін емес."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"Жүктеу мүмкін емес. Мақсатты файл бұрыннан бар."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"Жүктеу мүмкін емес. Сыртқы медиа қол жетімсіз."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"Файлды аша алмады"</string>
+ <string name="remove_download" msgid="6372920256257247857">"Алып тастау"</string>
+ <string name="delete_download" msgid="76629022653866471">"Жою"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"Қалсын"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"Өшіру"</string>
+ <string name="retry_download" msgid="7617100787922717912">"Қайта әрекеттену"</string>
+ <string name="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
new file mode 100644
index 00000000..cc5f49b6
--- /dev/null
+++ b/ui/res/values-km-rKH/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">"&lt;មិន​ស្គាល់&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"តម្រៀប​តាម​ទំហំ"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"តម្រៀប​តាម​ថ្ងៃ"</string>
+ <string name="download_queued" msgid="104973307780629904">"​បាន​ដាក់​ជា​ជួរ"</string>
+ <string name="download_running" msgid="4656462962155580641">"កំពុង​ដំណើរការ"</string>
+ <string name="download_success" msgid="7006048006543495236">"រួចរាល់"</string>
+ <string name="download_error" msgid="8081329546008568251">"បរាជ័យ"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"មិន​អាច​ទាញ​យក"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"តើ​អ្នក​ចង់​ព្យាយាម​ទាញ​យក​ឯកសារ​ម្ដងទៀត​នៅ​ពេល​ក្រោយ ឬ​លុប​វា​ចេញពី​ជួរ?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"ឯកសារ​ស្ថិត​ក្នុង​ជួរ"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"ឯកសារ​គឺ​ស្ថិត​ក្នុង​ជួរ​សម្រាប់​ការ​ទាញ​យក​បន្ទាប់ ដូច្នេះ​វា​មិន​មាន​នៅឡើយ​ទេ។"</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"រក​មិន​ឃើញ​ឯកសារ​ដែល​បាន​ទាញ​យក។"</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"មិន​អាច​បញ្ចប់​ការ​ទាញ​យក។ មិន​មាន​ទំហំ​គ្រប់គ្រាន់​នៅ​លើ​ឧបករណ៍​ផ្ទុក​ការ​ទាញ​យក​ខាងក្រៅ។"</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"មិន​អាច​បញ្ចប់​ការ​ទាញ​យក។ មិន​មាន​ទំហំ​គ្រប់គ្រាន់​នៅ​លើ​ឧបករណ៍​ផ្ទុក​ការ​ទាញ​យក​ខាងក្នុង។"</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"បាន​បង្អាក់​ការ​ទាញ​យក ហើយ​វា​មិន​អាច​បន្ត​ទៀត​បាន​ទេ។"</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"មិន​អាច​ទាញ​យក, ឯកសារ​ទិសដៅ​មាន​រួចហើយ។"</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"មិន​អាច​បញ្ចប់​ការ​ទាញ​យក។ មិន​មាន​មេឌៀ​ខាងក្រៅ។"</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"មិន​អាច​បើក​ឯកសារ"</string>
+ <string name="remove_download" msgid="6372920256257247857">"លុប​ចេញ"</string>
+ <string name="delete_download" msgid="76629022653866471">"លុប"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"បន្ត"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"បោះ​បង់​"</string>
+ <string name="retry_download" msgid="7617100787922717912">"សាកល្បង​ម្ដងទៀត"</string>
+ <string name="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-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">"&lt;ಅಜ್ಞಾತ&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"ಗಾತ್ರದಂತೆ ವಿಂಗಡಿಸಿ"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"ದಿನಾಂಕದ ಪ್ರಕಾರವಾಗಿ ವಿಂಗಡಿಸಿ"</string>
+ <string name="download_queued" msgid="104973307780629904">"ಸರದಿಯಲ್ಲಿರಿಸಲಾಗಿದೆ"</string>
+ <string name="download_running" msgid="4656462962155580641">"ಪ್ರಗತಿಯಲ್ಲಿದೆ"</string>
+ <string name="download_success" msgid="7006048006543495236">"ಪೂರ್ಣಗೊಂಡಿದೆ"</string>
+ <string name="download_error" msgid="8081329546008568251">"ವಿಫಲಗೊಂಡಿದೆ"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"ನೀವು ನಂತರದಲ್ಲಿ ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಮರುಪ್ರಯತ್ನಿಸಲು ಬಯಸುವಿರಾ ಅಥವಾ ಅದನ್ನು ಸರದಿಯಿಂದ ಅಳಿಸಲು ಬಯಸುವಿರಾ?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"ಫೈಲ್‌ ಸರದಿಯಲ್ಲಿದೆ"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"ಭವಿಷ್ಯದ ಡೌನ್‌ಲೋಡ್‌ಗಾಗಿ ಈ ಫೈಲ್‌‌ ಅನ್ನು ಸರದಿಯಲ್ಲಿರಿಸಲಾಗಿದೆ ಹಾಗಾಗಿ ಇನ್ನೂ ಲಭ್ಯವಿಲ್ಲ."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಿದ ಫೈಲ್‌‌ ಹುಡುಕಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"ಡೌನ್‌ಲೋಡ್‌ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಾಗಲಿಲ್ಲ. ಬಾಹ್ಯ ಡೌನ್‌ಲೋಡ್‌ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"ಡೌನ್‌ಲೋಡ್‌ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಾಗಲಿಲ್ಲ. ಆಂತರಿಕ ಡೌನ್‌ಲೋಡ್‌ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"ಡೌನ್‌ಲೋಡ್‌ ಅಡಚಣೆಗೊಳಗಾಗಿದೆ ಮತ್ತು ಪುನರಾರಂಭಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಉದ್ದೇಶಿತ ಫೈಲ್‌ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಬಾಹ್ಯ ಮಾಧ್ಯಮವು ಲಭ್ಯವಿಲ್ಲ."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"ಫೈಲ್ ತೆರೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"</string>
+ <string name="remove_download" msgid="6372920256257247857">"ತೆಗೆದುಹಾಕಿ"</string>
+ <string name="delete_download" msgid="76629022653866471">"ಅಳಿಸು"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"ಇರಿಸಿ"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"ರದ್ದುಮಾಡು"</string>
+ <string name="retry_download" msgid="7617100787922717912">"ಮರುಪ್ರಯತ್ನಿಸಿ"</string>
+ <string name="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">"&lt;Белгисиз&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"Өлчөмү боюнча ылгоо"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"Датасы боюнча ылгоо"</string>
+ <string name="download_queued" msgid="104973307780629904">"Кезекте"</string>
+ <string name="download_running" msgid="4656462962155580641">"Жүктөлүүдө"</string>
+ <string name="download_success" msgid="7006048006543495236">"Жүктөө аяктады"</string>
+ <string name="download_error" msgid="8081329546008568251">"Ийгиликсиз"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"Жүктөө мүмкүн болбоду"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"Сиз файлды кийинчерээк жүктөп көрөсүзбү же аны кезектен чыгарып саласызбы?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"Файл кезекте"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"Бул файл кийин жүктөлсүн деп кезекке тургузулган, азырынча ал жеткиликтүү эмес."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"Жүктөлгөн файл табылбай жатат."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Жүктөөнү аягына чыгаруу мүмкүн эмес. Тышкы сактагычта орун жетишсиз."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Жүктөөнү аягына чыгаруу мүмкүн эмес. Ички сактагычта орун жетишсиз."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"Жүктөө үзгүлтүккө учурады жана аягына чыгарылбайт."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"Жүктөө мүмкүн эмес. Мындай файл мурунтан бар."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"Жүктөөнү аягына чыгаруу мүмкүн эмес. Тышкы медиа жеткиликтүү эмес."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"Файл ачылбады"</string>
+ <string name="remove_download" msgid="6372920256257247857">"Алып салуу"</string>
+ <string name="delete_download" msgid="76629022653866471">"Жок кылуу"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"Калтыруу"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"Айнуу"</string>
+ <string name="retry_download" msgid="7617100787922717912">"Кайра аракеттенүү"</string>
+ <string name="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-lo-rLA/strings.xml b/ui/res/values-lo-rLA/strings.xml
new file mode 100644
index 00000000..70eb8d67
--- /dev/null
+++ b/ui/res/values-lo-rLA/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">"&lt;ບໍ່ຮູ້ຈັກ&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"ຮຽງຕາມຂະຫນາດ"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"ຮຽງຕາມວັນທີ"</string>
+ <string name="download_queued" msgid="104973307780629904">"ເຂົ້າຄິວແລ້ວ"</string>
+ <string name="download_running" msgid="4656462962155580641">"ກຳລັງດຳເນີນການ"</string>
+ <string name="download_success" msgid="7006048006543495236">"ສໍາເລັດ"</string>
+ <string name="download_error" msgid="8081329546008568251">"ບໍ່ສຳເລັດ"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"ບໍ່ສາມາດດາວໂຫລດໄດ້"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"ທ່ານຕ້ອງການລອງດາວໂຫລດໄຟລ໌ນີ້ໃໝ່ໃນພາຍຫຼັງບໍ່ ຫຼືຈະລຶບມັນອອກຈາກຄິວ?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"ໄຟລ໌ຢູ່ໃນຄິວ"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"ໄຟລ໌ນີ້ຖືກເຂົ້າຄິວໄວ້ເພື່ອການດາວໂຫລດໃນອະນາຄົດ ມັນຍັງບໍ່ສາມາດໃຊ້ໄດ້ເທື່ອ."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"ບໍ່ສາມາດຊອກຫາໄຟລ໌ທີ່ດາວໂຫລດມາໄດ້."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"ບໍ່ສາມາດດາວໂຫລດໃຫ້ສຳເລັດໄດ້. ບ່ອນຈັດເກັບຂໍ້ມູນດາວໂຫລດພາຍນອກບໍ່ພຽງພໍ."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"ບໍ່ສາມາດດາວໂຫລດໃຫ້ສຳເລັດໄດ້. ບ່ອນຈັດເກັບຂໍ້ມູນດາວໂຫລດພາຍໃນບໍ່ພຽງພໍ."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"ການດາວໂຫລດຖືກລົບກວນ ແລະບໍ່ສາມາດສືບຕໍ່ໄດ້."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"ບໍ່ສາມາດດາວໂຫລດໄດ້. ໄຟລ໌ເປົ້າໝາຍມີຢູ່ແລ້ວ."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"ບໍ່ສາມາດດາວໂຫລດໄດ້. ອຸປະກອນພາຍນອກບໍ່ສາມາດນຳໃຊ້ໄດ້."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"ບໍ່ສາມາດເປີດໄຟລ໌"</string>
+ <string name="remove_download" msgid="6372920256257247857">"ລຶບ"</string>
+ <string name="delete_download" msgid="76629022653866471">"ລຶບ"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"ເກັບໄວ້"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"ຍົກເລີກ"</string>
+ <string name="retry_download" msgid="7617100787922717912">"ລອງໃໝ່"</string>
+ <string name="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-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">"&lt;അജ്ഞാതം&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"വലുപ്പമനുസരിച്ച് അടുക്കുക"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"തീയതി അനുസരിച്ച് അടുക്കുക"</string>
+ <string name="download_queued" msgid="104973307780629904">"ക്യൂവിലാണ്"</string>
+ <string name="download_running" msgid="4656462962155580641">"പുരോഗമിക്കുന്നു"</string>
+ <string name="download_success" msgid="7006048006543495236">"പൂർത്തിയായി"</string>
+ <string name="download_error" msgid="8081329546008568251">"പരാജയപ്പെട്ടു"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"ഡൗൺലോഡുചെയ്യാനായില്ല"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"ഫയൽ ഡൗൺലോഡുചെയ്യാൻ വീണ്ടും ശ്രമിക്കുകയോ ക്യൂവിൽ നിന്നും അത് ഇല്ലാതാക്കുകയോ ചെയ്യണോ?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"ഫയൽ ക്യൂവിലാണ്"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"ഭാവിയിൽ ഡൗൺലോഡുചെയ്യാനായി ഫയൽ ക്യൂവിലായതിനാൽ ഇതുവരെയും ലഭ്യമല്ല."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"ഡൗൺലോഡുചെയ്‌ത ഫയൽ കണ്ടെത്താനായില്ല."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"ഡൗൺലോഡ് പൂർത്തിയാക്കാനാകില്ല. ബാഹ്യസംഭരണത്തിൽ ആവശ്യമായ ഇടമില്ല."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"ഡൗൺലോഡ് പൂർത്തിയാക്കാനായില്ല. ആന്തരിക ഡൗൺലോഡ് സംഭരണത്തിൽ ആവശ്യമായ ഇടമില്ല."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"ഡൗൺലോഡ് തടസ്സപ്പെട്ടതിനാൽ പുനരാരംഭിക്കാനാകില്ല."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"ഡൗൺലോഡുചെയ്യാനാകില്ല. ലക്ഷ്യസ്ഥാന ഫയൽ ഇതിനകം നിലവിലുണ്ട്."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"ഡൗൺലോഡുചെയ്യാനാകില്ല. ബാഹ്യ മീഡിയ ലഭ്യമല്ല."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"ഫയൽ തുറക്കാനായില്ല"</string>
+ <string name="remove_download" msgid="6372920256257247857">"നീക്കംചെയ്യുക"</string>
+ <string name="delete_download" msgid="76629022653866471">"ഇല്ലാതാക്കുക"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"സൂക്ഷിക്കുക"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"റദ്ദാക്കുക"</string>
+ <string name="retry_download" msgid="7617100787922717912">"വീണ്ടും ശ്രമിക്കുക"</string>
+ <string name="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-mn-rMN/strings.xml b/ui/res/values-mn-rMN/strings.xml
new file mode 100644
index 00000000..3890a24f
--- /dev/null
+++ b/ui/res/values-mn-rMN/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">"&lt;Тодорхойгүй&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"Хэмжээгээр эрэмбэлэх"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"Огноогоор эрэмбэлэх"</string>
+ <string name="download_queued" msgid="104973307780629904">"Хүлээлгэнд"</string>
+ <string name="download_running" msgid="4656462962155580641">"Үргэлжилж байгаа"</string>
+ <string name="download_success" msgid="7006048006543495236">"Дуусгах"</string>
+ <string name="download_error" msgid="8081329546008568251">"Амжилтгүй"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"Татан авч чадсангүй"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"Та файлыг дараа татан авахаар үлдээх үү эсхүл хүлээлгээс хасах уу?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"Файл хүлээлгэнд"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"Файлыг ирээдүйд татаж авахаар хүлээлгэнд оруулсан бөгөөд одоо алга байна."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"Татаж авсан файлыг олох боломжгүй байна."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Татан авалтыг дуусгаж чадангүй. Гадаад татан авалтын санд хангалттай зай байхгүй байна."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Татан авалтыг дуусгаж чадангүй. Дотоод татан авалтын санд хангалттай зай байхгүй байна."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"Татан авалт таслагдсан бөгөөд дахин үргэлжлүүлэх боломжгүй."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"Татаж авах боломжгүй. Хуулах файл байна."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"Татаж авах боломжгүй. Гадаад медиа холбох боломжгүй."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"Файлыг нээх боломжгүй"</string>
+ <string name="remove_download" msgid="6372920256257247857">"Устгах"</string>
+ <string name="delete_download" msgid="76629022653866471">"Устгах"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"Байлгах"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"Цуцлах"</string>
+ <string name="retry_download" msgid="7617100787922717912">"Дахин оролдох"</string>
+ <string name="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-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">"&lt;अज्ञात&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"आकारानुसार क्रमवारी लावा"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"तारखेनुसार क्रमवारी लावा"</string>
+ <string name="download_queued" msgid="104973307780629904">"रांगेत लावलेला"</string>
+ <string name="download_running" msgid="4656462962155580641">"प्रगतीपथावर"</string>
+ <string name="download_success" msgid="7006048006543495236">"पूर्ण"</string>
+ <string name="download_error" msgid="8081329546008568251">"अयशस्वी"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"डाउनलोड करू शकलो नाही"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"आपण फाइल डाउनलोड करण्‍याचा नंतर पुन्हा प्रयत्न करू इच्‍छिता कि तिला रांगेमधून हटवू इच्छिता?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"रांगेतील फाइल"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"ही फाइल भविष्‍यात डाउनलोड करण्‍यासाठी रांगेत लावली आहे म्‍हणून ती अद्याप उपलब्‍ध नाही."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"डाउनलोड केलेली फाइल शोधू शकत नाही."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"डाउनलोड समाप्त करू शकत नाही. बाह्य संचयनावर पुरेसे स्‍थान नाही."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"डाउनलोड समाप्त करू शकत नाही. अंतर्गत डाउनलोड संचयनावर पुरेसे स्‍थान नाही."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"डाउनलोडमध्‍ये व्यत्यय आला आणि पुन्हा सुरु केले जाऊ शकत नाही."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"डाउनलोड करू शकत नाही. गंतव्य फाइल आधीपासून अस्तित्वात आहे."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"डाउनलोड करू शकत नाही. बाह्य मीडिया उपलब्ध नाही."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"फाइल उघडू शकत नाही"</string>
+ <string name="remove_download" msgid="6372920256257247857">"काढा"</string>
+ <string name="delete_download" msgid="76629022653866471">"हटवा"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"ठेवा"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"रद्द करा"</string>
+ <string name="retry_download" msgid="7617100787922717912">"पुन्हा प्रयत्न करा"</string>
+ <string name="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-ms/strings.xml b/ui/res/values-ms-rMY/strings.xml
index e1e9f666..e1e9f666 100644
--- a/ui/res/values-ms/strings.xml
+++ b/ui/res/values-ms-rMY/strings.xml
diff --git a/ui/res/values-my-rMM/strings.xml b/ui/res/values-my-rMM/strings.xml
new file mode 100644
index 00000000..999c57e3
--- /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">"&lt;अज्ञात&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"आकार अनुसार क्रमबद्ध गर्नुहोस्"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"मिति अनुसार क्रमबद्ध गर्नुहोस्"</string>
+ <string name="download_queued" msgid="104973307780629904">"लाममा राखियो"</string>
+ <string name="download_running" msgid="4656462962155580641">"प्रगतिमा"</string>
+ <string name="download_success" msgid="7006048006543495236">"पुरा गर्नुहोस्"</string>
+ <string name="download_error" msgid="8081329546008568251">"असफल"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"डाउनलोड गर्न सकेन"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"तपाईँ पछि फेरि फाइल डाउनलोड गर्ने प्रयास गर्न चाहनुहुन्छ कि लामबाट हटाउन चाहनुहुन्छ?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"फाइल लाममा छ"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"फाइल भविष्यमा डाउनलोड गर्नका लागि लाममा राखिएको छ, यसैले अझै उपलब्ध छैन।"</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"डाउनलोड गरिएको फाइल फेला पार्न सकेन।"</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"डाउनलोड समाप्त पार्न सकेन। बाह्य भण्डारणमा पर्याप्त ठाउँ छैन।"</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"डाउनलोड समाप्त पार्न सकेन। आन्तरिक डाउनलोड भण्डारणमा पर्याप्त ठाउँ छैन।"</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"डाउनलोड अवरूद्ध भयो र यो पुनः सुरु गर्न सकिन्न।"</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"डाउनलोड गर्न सकेन। लक्षित फाइल पहिले नै छ।"</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"डाउनलोड गर्न सकेन। बाह्य मिडिया उपलब्ध छैन।"</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"फाइल खोल्न सकिँदैन"</string>
+ <string name="remove_download" msgid="6372920256257247857">"हटाउनुहोस्"</string>
+ <string name="delete_download" msgid="76629022653866471">"मेटाउनुहोस्"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"राख्नुहोस्"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"रद्द गर्नुहोस्"</string>
+ <string name="retry_download" msgid="7617100787922717912">"पुनःप्रयास गर्नुहोस्"</string>
+ <string name="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">"&lt;නොදනී&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"ප්‍රමාණය අනුව අනුපිළිවෙලට සකසන්න"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"දිනය අනුව අනුපිළිවෙලට සකසන්න"</string>
+ <string name="download_queued" msgid="104973307780629904">"පෙළ ගැස්විණි"</string>
+ <string name="download_running" msgid="4656462962155580641">"ක්‍රියාවේ පවතී"</string>
+ <string name="download_success" msgid="7006048006543495236">"සම්පුර්ණයි"</string>
+ <string name="download_error" msgid="8081329546008568251">"අසාර්ථකයි"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"බාගත නොහැකි විය"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"ඔබට ගොනු පසුව බාගැනීමට උත්සාහ කිරීමට අවශ්‍යද නැතිනම් එය පෝලිමෙන් මැකීමට අවශ්‍යද?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"ගොනුව පේළියෙහි තිබේ"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"අනාගත බාගැනීම් සඳහා මෙම ගොනුව පෙළගස්වා ඇත එබැවින් එය තවම ලබාගත නොහැක."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"බාගත් ගොනුව සොයා ගත නොහැක."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"බාගැනීම අවසන් කළ නොහැක. බාහිර බාගැනීම් ආචයනයේ අවශ්‍ය තරම් ඉඩක් නොමැත."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"බාගැනීම අවසන් කළ නොහැක. අභ්‍යන්තර බාගැනීම් ආචයනයේ අවශ්‍ය තරම් ඉඩක් නොමැත."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"බාගැනීමට බාධා ඇතිවූ අතර එය යළි ආරම්භ කළ නොහැක."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"බාගත නොහැක. ගමනාන්තයේ ගොනුව දැනටමත් ඇත."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"බාගත නොහැක. බාහිර මාධ්‍ය නොමැත."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"ගොනුව විවෘත කළ නොහැකි විය"</string>
+ <string name="remove_download" msgid="6372920256257247857">"ඉවත් කරන්න"</string>
+ <string name="delete_download" msgid="76629022653866471">"මකන්න"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"තබාගැනීම"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"අවලංගු කරන්න"</string>
+ <string name="retry_download" msgid="7617100787922717912">"නැවත උත්සාහ කරන්න"</string>
+ <string name="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-sk/strings.xml b/ui/res/values-sk/strings.xml
index e3d3cd14..5e19134f 100644
--- a/ui/res/values-sk/strings.xml
+++ b/ui/res/values-sk/strings.xml
@@ -16,10 +16,10 @@
<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">"Prevzatia"</string>
- <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Prevzatia – zoradené podľa dátumu"</string>
- <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Prevzatia – zoradené podľa veľkosti"</string>
- <string name="no_downloads" msgid="1029667411186146836">"Žiadne preberania"</string>
+ <string name="app_label" msgid="3070921713463294774">"Stiahnuté"</string>
+ <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Stiahnutia – zoradené podľa dátumu"</string>
+ <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Stiahnutia – zoradené podľa veľkosti"</string>
+ <string name="no_downloads" msgid="1029667411186146836">"Žiadne sťahovania"</string>
<string name="missing_title" msgid="830115697868833773">"&lt;Neznáme&gt;"</string>
<string name="button_sort_by_size" msgid="7331549713691146251">"Zoradiť podľa veľkosti"</string>
<string name="button_sort_by_date" msgid="8800842892684101528">"Zoradiť podľa dátumu"</string>
@@ -27,16 +27,16 @@
<string name="download_running" msgid="4656462962155580641">"Prebieha"</string>
<string name="download_success" msgid="7006048006543495236">"Dokončené"</string>
<string name="download_error" msgid="8081329546008568251">"Neúspešné"</string>
- <string name="dialog_title_not_available" msgid="5746317632356158515">"Nepodarilo sa prevziať"</string>
- <string name="dialog_failed_body" msgid="587545111677064427">"Chcete tento súbor skúsiť znova prevziať neskôr, alebo ho chcete zo zoznamu odstrániť?"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"Nepodarilo sa stiahnuť"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"Chcete tento súbor skúsiť znova stiahnuť neskôr, alebo ho chcete zo zoznamu odstrániť?"</string>
<string name="dialog_title_queued_body" msgid="6760681913815015219">"Súbor v poradí"</string>
- <string name="dialog_queued_body" msgid="708552801635572720">"Súbor zatiaľ nie je k dispozícii, pretože je v poradí na budúce prevzatie."</string>
- <string name="dialog_file_missing_body" msgid="3223012612774276284">"Prevzatý súbor sa nepodarilo nájsť."</string>
- <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Preberanie nie je možné dokončiť. V externom úložisku nie je dostatok miesta."</string>
- <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Preberanie nie je možné dokončiť. V internom úložisku na prevzaté súbory nie je dostatok miesta."</string>
- <string name="dialog_cannot_resume" msgid="8664509751358983543">"Preberanie bolo prerušené a nie je možné v ňom pokračovať."</string>
- <string name="dialog_file_already_exists" msgid="8308563940663449590">"Nepodarilo sa prevziať. Cieľový súbor už existuje."</string>
- <string name="dialog_media_not_found" msgid="4468088418758018765">"Nepodarilo sa prevziať. Externé médium nie je k dispozícii."</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"Súbor zatiaľ nie je k dispozícii, pretože je v poradí na budúce stiahnutie."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"Stiahnutý súbor sa nepodarilo nájsť."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Sťahovanie nie je možné dokončiť. V externom úložisku nie je dostatok miesta."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Sťahovanie nie je možné dokončiť. V internom úložisku na stiahnuté súbory nie je dostatok miesta."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"Sťahovanie bolo prerušené a nie je možné v ňom pokračovať."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"Nepodarilo sa stiahnuť. Cieľový súbor už existuje."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"Nepodarilo sa stiahnuť. Externé médium nie je k dispozícii."</string>
<string name="download_no_application_title" msgid="7024782176657362251">"Súbor nie je možné otvoriť"</string>
<string name="remove_download" msgid="6372920256257247857">"Odstrániť"</string>
<string name="delete_download" msgid="76629022653866471">"Odstrániť"</string>
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">"&lt;அறியப்படாதது&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"அளவின்படி வரிசைப்படுத்து"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"தேதிப்படி வரிசைப்படுத்து"</string>
+ <string name="download_queued" msgid="104973307780629904">"வரிசைப்படுத்தப்பட்டது"</string>
+ <string name="download_running" msgid="4656462962155580641">"செயலிலுள்ளது"</string>
+ <string name="download_success" msgid="7006048006543495236">"முடிந்தது"</string>
+ <string name="download_error" msgid="8081329546008568251">"தோல்வி"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"பதிவிறக்க முடியவில்லை"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"கோப்பைப் பின்னர் பதிவிறக்க முயற்சிக்கவா அல்லது வரிசையிலிருந்து நீக்க விரும்புகிறீர்களா?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"வரிசையில் உள்ள கோப்பு"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"இந்தக் கோப்பு எதிர்கால பதிவிறக்கத்திற்கு வரிசைப்படுத்தப்பட்டது, அதனால், இதுவரை இது கிடைக்கவில்லை."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"பதிவிறக்கிய கோப்பைக் கண்டறிய முடியவில்லை."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"பதிவிறக்கத்தை முடிக்க முடியவில்லை. வெளிப்புறச் சேமிப்பிடத்தில் போதுமான இடம் இல்லை."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"பதிவிறக்கத்தை முடிக்க முடியவில்லை. அகப் பதிவிறக்க சேமிப்பிடத்தில் போதுமான இடம் இல்லை."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"பதிவிறக்கம் குறுக்கிடப்பட்டது, மேலும் மீண்டும் தொடங்க முடியாது."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"பதிவிறக்க முடியவில்லை. இலக்குக் கோப்பு ஏற்கனவே உள்ளது."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"பதிவிறக்க முடியவில்லை. வெளிப்புற மீடியா கிடைக்கவில்லை."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"கோப்பைத் திறக்க முடியவில்லை"</string>
+ <string name="remove_download" msgid="6372920256257247857">"அகற்று"</string>
+ <string name="delete_download" msgid="76629022653866471">"நீக்கு"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"வைத்திரு"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"ரத்துசெய்"</string>
+ <string name="retry_download" msgid="7617100787922717912">"மீண்டும் முயற்சிசெய்க"</string>
+ <string name="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">"&lt;తెలియదు&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"పరిమాణం ద్వారా క్రమబద్ధీకరించు"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"తేదీ ద్వారా క్రమబద్ధీకరించు"</string>
+ <string name="download_queued" msgid="104973307780629904">"క్రమవరుసలో ఉంచబడింది"</string>
+ <string name="download_running" msgid="4656462962155580641">"ప్రోగ్రెస్‌లో ఉంది"</string>
+ <string name="download_success" msgid="7006048006543495236">"పూర్తయింది"</string>
+ <string name="download_error" msgid="8081329546008568251">"విఫలమైంది"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"డౌన్‌లోడ్ చేయడం సాధ్యపడలేదు"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"మీరు ఫైల్‌ను తర్వాత డౌన్‌లోడ్ చేయడానికి మళ్లీ ప్రయత్నించాలనుకుంటున్నారా లేదా దీన్ని క్రమవరుస నుండి తొలగించాలనుకుంటున్నారా?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"ఫైల్ క్రమవరుసలో ఉంది"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"ఈ ఫైల్ భవిష్యత్తు డౌన్‌లోడ్ కోసం క్రమవరుసలో ఉంచబడింది అందువలన ఇంకా అందుబాటులో లేదు."</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"డౌన్‌లోడ్ చేయబడిన ఫైల్‌ను కనుగొనడం సాధ్యపడదు."</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"డౌన్‌లోడ్‌ను పూర్తి చేయడం సాధ్యపడదు. బాహ్య నిల్వలో తగినంత స్థలం లేదు."</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"డౌన్‌లోడ్‌ను పూర్తి చేయడం సాధ్యపడదు. అంతర్గత డౌన్‌లోడ్ నిల్వలో తగినంత స్థలం లేదు."</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"డౌన్‌లోడ్‌కు అంతరాయం ఏర్పడింది మరియు పునఃప్రారంభించడం సాధ్యపడదు."</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"డౌన్‌లోడ్ చేయడం సాధ్యపడదు. గమ్యస్థాన ఫైల్ ఇప్పటికే ఉంది."</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"డౌన్‌లోడ్ చేయడం సాధ్యపడదు. బాహ్య మీడియా అందుబాటులో లేదు."</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"ఫైల్‌ను తెరవడం సాధ్యపడదు"</string>
+ <string name="remove_download" msgid="6372920256257247857">"తీసివేయి"</string>
+ <string name="delete_download" msgid="76629022653866471">"తొలగించు"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"ఉంచు"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"రద్దు చేయి"</string>
+ <string name="retry_download" msgid="7617100787922717912">"మళ్లీ ప్రయత్నించు"</string>
+ <string name="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-th/strings.xml b/ui/res/values-th/strings.xml
index fd4f16f9..176d6495 100644
--- a/ui/res/values-th/strings.xml
+++ b/ui/res/values-th/strings.xml
@@ -28,7 +28,7 @@
<string name="download_success" msgid="7006048006543495236">"เสร็จสมบูรณ์"</string>
<string name="download_error" msgid="8081329546008568251">"ไม่สำเร็จ"</string>
<string name="dialog_title_not_available" msgid="5746317632356158515">"ไม่สามารถดาวน์โหลดได้"</string>
- <string name="dialog_failed_body" msgid="587545111677064427">"คุณต้องการลองดาวน์โหลดไฟล์อีกครั้งในภายหลังหรือลบไฟล์ออกจากคิว"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"คุณต้องการลองดาวน์โหลดไฟล์อีกครั้งในภายหลังหรือนำออกไฟล์ออกจากคิว"</string>
<string name="dialog_title_queued_body" msgid="6760681913815015219">"ไฟล์ในคิว"</string>
<string name="dialog_queued_body" msgid="708552801635572720">"ไฟล์นี้ได้รับการจัดคิวให้ดาวน์โหลดในอนาคต ดังนั้นจึงยังไม่สามารถใช้ได้"</string>
<string name="dialog_file_missing_body" msgid="3223012612774276284">"ไม่พบไฟล์ที่ดาวน์โหลด"</string>
@@ -38,13 +38,13 @@
<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="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>
+ <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">"‏‎&gt;‎نامعلوم‎&amp;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">"&lt;Noma’lum&gt;"</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-zh-rHK/strings.xml b/ui/res/values-zh-rHK/strings.xml
new file mode 100644
index 00000000..c8cd5777
--- /dev/null
+++ b/ui/res/values-zh-rHK/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">"&lt;未知&gt;"</string>
+ <string name="button_sort_by_size" msgid="7331549713691146251">"依大小排序"</string>
+ <string name="button_sort_by_date" msgid="8800842892684101528">"依日期排序"</string>
+ <string name="download_queued" msgid="104973307780629904">"已加入下載佇列"</string>
+ <string name="download_running" msgid="4656462962155580641">"進行中"</string>
+ <string name="download_success" msgid="7006048006543495236">"完成"</string>
+ <string name="download_error" msgid="8081329546008568251">"失敗"</string>
+ <string name="dialog_title_not_available" msgid="5746317632356158515">"無法下載"</string>
+ <string name="dialog_failed_body" msgid="587545111677064427">"您要稍後再重試下載檔案,或是從下載佇列中刪除檔案?"</string>
+ <string name="dialog_title_queued_body" msgid="6760681913815015219">"佇列中的檔案"</string>
+ <string name="dialog_queued_body" msgid="708552801635572720">"檔案已排入之後要下載的佇列中,因此目前尚無法取得。"</string>
+ <string name="dialog_file_missing_body" msgid="3223012612774276284">"找不到已下載的檔案。"</string>
+ <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"無法完成下載,外部儲存空間不足。"</string>
+ <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"無法完成下載,內部下載儲存空間不足。"</string>
+ <string name="dialog_cannot_resume" msgid="8664509751358983543">"下載中斷,無法恢復。"</string>
+ <string name="dialog_file_already_exists" msgid="8308563940663449590">"無法下載,目標位置已有相同檔案。"</string>
+ <string name="dialog_media_not_found" msgid="4468088418758018765">"無法下載,外部媒體無法使用。"</string>
+ <string name="download_no_application_title" msgid="7024782176657362251">"無法開啟檔案"</string>
+ <string name="remove_download" msgid="6372920256257247857">"移除"</string>
+ <string name="delete_download" msgid="76629022653866471">"刪除"</string>
+ <string name="keep_queued_download" msgid="5144882786014818569">"保留"</string>
+ <string name="cancel_running_download" msgid="5232704030969221112">"取消"</string>
+ <string name="retry_download" msgid="7617100787922717912">"重試"</string>
+ <string name="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/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;
- }
}