Merge "Merge Android 14 QPR2 to AOSP main" into main
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 354b90a..5195673 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -26,7 +26,7 @@
     <string name="permdesc_downloadCompletedIntent" msgid="3384693829639860032">"ಪೂರ್ಣಗೊಂಡಿರುವ ಡೌನ್‌ಲೋಡ್‌ಗಳ ಕುರಿತು ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌‌ಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ. ದುರುದ್ದೇಶಪೂರಿತ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಡೌನ್‌ಲೋಡ್ ಮಾಡುವ ಇತರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಗೊಂದಲವುಂಟು ಮಾಡಲೋಸುಗ ಇದನ್ನು ಬಳಸಿಕೊಳ್ಳಬಹುದು."</string>
     <string name="permlab_downloadCacheNonPurgeable" msgid="4538031250425141333">"ಡೌನ್‌ಲೋಡ್‌ ಕ್ಯಾಷ್‌ನಲ್ಲಿ ಸ್ಥಳವನ್ನು ಮೀಸಲಿರಿಸಿ"</string>
     <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"ಡೌನ್‌ಲೊಡ್‌ ನಿರ್ವಾಹಕಕ್ಕೆ ಹೆಚ್ಚಿನ ಸ್ಥಳಾವಕಾಶದ ಅಗತ್ಯವಿರುವ ಸಂದರ್ಭದಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಳಿಸಲಾಗದಿರುವ ಫೈಲ್‌ಗಳನ್ನು  ಡೌನ್‌ಲೋಡ್‌ ಕ್ಯಾಷ್‌ಗೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್‌‌ಗೆ ಅನುಮತಿ ನೀಡಲಾಗುತ್ತದೆ."</string>
-    <string name="permlab_downloadWithoutNotification" msgid="4877101864770265405">"ಅಧಿಸೂಚನೆ ಇಲ್ಲದೆಯೇ ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್‌‌ ಮಾಡಿ"</string>
+    <string name="permlab_downloadWithoutNotification" msgid="4877101864770265405">"ನೋಟಿಫಿಕೇಶನ್ ಇಲ್ಲದೆಯೇ ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್‌‌ ಮಾಡಿ"</string>
     <string name="permdesc_downloadWithoutNotification" msgid="7699189763226483523">"ಯಾವುದೇ ಅಧಿಸೂಚನೆಯನ್ನು ಬಳಕೆದಾರರಿಗೆ ತೋರಿಸದೇ ಡೌನ್‌ಲೋಡ್‌ ನಿರ್ವಾಹಕದ ಮೂಲಕ ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್‌‌ಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ."</string>
     <string name="permlab_accessAllDownloads" msgid="8227356876527248611">"ಎಲ್ಲ ಸಿಸ್ಟಂನ ಡೌನ್‌ಲೋಡ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ"</string>
     <string name="permdesc_accessAllDownloads" msgid="7541731738152145079">"ಸಿಸ್ಟಂನಲ್ಲಿ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ ಮೂಲಕ ಆರಂಭಿಸಲಾದ ಎಲ್ಲ ಡೌನ್‌ಲೋಡ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಮತ್ತು ಮಾರ್ಪಡಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌‌ಗೆ ಅನುಮತಿ ನೀಡಲಾಗುತ್ತದೆ."</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index abd76a6..146381f 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -25,7 +25,7 @@
     <string name="permlab_downloadCompletedIntent" msgid="2674407390116052956">"ഡൗൺലോഡ് അറിയിപ്പുകൾ അയയ്‌ക്കുക"</string>
     <string name="permdesc_downloadCompletedIntent" msgid="3384693829639860032">"പൂർത്തിയാക്കിയ ഡൗൺലോഡുകളെക്കുറിച്ച് അറിയിപ്പുകൾ അയയ്‌ക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ഫയലുകൾ ഡൗൺലോഡുചെയ്യുന്ന മറ്റ് അപ്ലിക്കേഷനുകളെ ആശയക്കുഴപ്പത്തിലാക്കാൻ ക്ഷുദ്രകരമായ അപ്ലിക്കേഷനുകൾ ഇതുപയോഗിച്ചേക്കാം."</string>
     <string name="permlab_downloadCacheNonPurgeable" msgid="4538031250425141333">"ഡൗൺലോഡ് കാഷെയിൽ ഇടം സംഭരിക്കുക"</string>
-    <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"ഡൗൺലോഡ് കാഷെയിലേക്ക് ഫയലുകൾ ഡൗണ്‍ലോഡ് ചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു, ഡൗൺലോഡ് മാനേജർക്ക് കൂടുതൽ ഇടം ആവശ്യമായി വരുമ്പോൾ ഇത് സ്വമേധയാ ഇല്ലാതാകില്ല."</string>
+    <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"ഡൗൺലോഡ് കാഷെയിലേക്ക് ഫയലുകൾ ഡൗണ്‍ലോഡ് ചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു, ഡൗൺലോഡ് മാനേജർക്ക് കൂടുതൽ ഇടം ആവശ്യമായി വരുമ്പോൾ ഇത് സ്വയമേവ ഇല്ലാതാകില്ല."</string>
     <string name="permlab_downloadWithoutNotification" msgid="4877101864770265405">"അറിയിപ്പില്ലാതെ ഫയലുകൾ ഡൗൺലോഡുചെയ്യുക"</string>
     <string name="permdesc_downloadWithoutNotification" msgid="7699189763226483523">"ഉപയോക്താവിന് അറിയിപ്പൊന്നും ദൃശ്യമാക്കാതെ തന്നെ ഡൗൺലോഡ് മാനേജർ മുഖേന ഫയലുകൾ ഡൗണ്‍ലോഡ് ചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
     <string name="permlab_accessAllDownloads" msgid="8227356876527248611">"എല്ലാ സിസ്റ്റം ഡൗൺലോഡുകളും ആക്‌സസ്സുചെയ്യുക"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index b78cb62..1ba4c77 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -38,7 +38,7 @@
     <string name="wifi_required_title" msgid="7266700488421122218">"ఆపరేటర్ నెట్‌వర్క్‌‌కు డౌన్‌లోడ్ చాలా పెద్దదిగా ఉంది"</string>
     <string name="wifi_required_body" msgid="4005023496578941958">"మీరు ఈ <xliff:g id="SIZE">%1$s </xliff:g> డౌన్‌లోడ్‌ను పూర్తి చేయడానికి తప్పనిసరిగా Wi-Fiని ఉపయోగించాలి. \n\nమీరు Wi-Fi నెట్‌వర్క్‌కు కనెక్ట్ చేసిన తదుపరి సారి ఈ డౌన్‌లోడ్‌ను ప్రారంభించడానికి <xliff:g id="QUEUE_TEXT">%2$s </xliff:g>ని తాకండి."</string>
     <string name="wifi_recommended_title" msgid="6488158053932133804">"తర్వాత డౌన్‌లోడ్ చేయడం కోసం క్యూలో ఉంచాలా?"</string>
-    <string name="wifi_recommended_body" msgid="8710820743211704403">"ఇప్పుడు ఈ <xliff:g id="SIZE">%1$s </xliff:g> డౌన్‌లోడ్‌ను ప్రారంభించడం వలన మీ బ్యాటరీ జీవితకాలం తగ్గవచ్చు మరియు/లేదా మీ మొబైల్ డేటా కనెక్షన్ అత్యధికంగా వినియోగించబడవచ్చు, దీని వలన మీ డేటా ప్లాన్ ఆధారంగా మీ మొబైల్ ఆపరేటర్ ఛార్జీలు విధించవచ్చు.\n\n మీరు Wi-Fi నెట్‌వర్క్‌కు కనెక్ట్ చేసిన తరువాత ఈ డౌన్‌లోడ్‌ను ప్రారంభించడానికి <xliff:g id="QUEUE_TEXT">%2$s</xliff:g>ని తాకండి."</string>
+    <string name="wifi_recommended_body" msgid="8710820743211704403">"ఇప్పుడు ఈ <xliff:g id="SIZE">%1$s </xliff:g> డౌన్‌లోడ్‌ను ప్రారంభించడం వలన మీ బ్యాటరీ జీవితకాలం తగ్గవచ్చు మరియు/లేదా మీ మొబైల్ డేటా కనెక్షన్ అత్యధికంగా వినియోగించబడవచ్చు, దీని వలన మీ డేటా ప్లాన్ ఆధారంగా మీ మొబైల్ ఆపరేటర్ ఛార్జీలు విధించవచ్చు.\n\n మీరు Wi-Fi నెట్‌వర్క్‌కు కనెక్ట్ చేసిన తర్వాత ఈ డౌన్‌లోడ్‌ను ప్రారంభించడానికి <xliff:g id="QUEUE_TEXT">%2$s</xliff:g>ని తాకండి."</string>
     <string name="button_queue_for_wifi" msgid="6650185573566994738">"క్యూలో ఉంచు"</string>
     <string name="button_cancel_download" msgid="4135046775536601831">"రద్దు చేయండి"</string>
     <string name="button_start_now" msgid="3817100969365441730">"ఇప్పుడే ప్రారంభించండి"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 3a6ab96..b1b732d 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -36,9 +36,9 @@
     <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"這個檔案較大,需要 Wi-Fi 才能下載。"</string>
     <string name="notification_paused_in_background" msgid="6393408819031041778">"已在背景中暫停。"</string>
     <string name="wifi_required_title" msgid="7266700488421122218">"檔案過大,無法透過網絡供應商的網絡下載"</string>
-    <string name="wifi_required_body" msgid="4005023496578941958">"您必須使用 Wi-Fi,才能完成下載這個 <xliff:g id="SIZE">%1$s </xliff:g> 的檔案。\n\n請在下次連接 Wi-Fi 網絡時,再輕觸 [<xliff:g id="QUEUE_TEXT">%2$s </xliff:g>] 開始下載。"</string>
+    <string name="wifi_required_body" msgid="4005023496578941958">"你必須使用 Wi-Fi,才能完成下載這個 <xliff:g id="SIZE">%1$s </xliff:g> 的檔案。\n\n請在下次連接 Wi-Fi 網絡時,再輕觸 [<xliff:g id="QUEUE_TEXT">%2$s </xliff:g>] 開始下載。"</string>
     <string name="wifi_recommended_title" msgid="6488158053932133804">"加入佇列供稍後下載?"</string>
-    <string name="wifi_recommended_body" msgid="8710820743211704403">"現在下載這個 <xliff:g id="SIZE">%1$s </xliff:g> 的檔案,可能會縮短電池的壽命,並 (或) 超出流動數據連線的用量上限,導致流動網絡供應商根據數據計劃向您收費。\n\n請在下次連接 Wi-Fi 網絡時,再輕觸 [<xliff:g id="QUEUE_TEXT">%2$s</xliff:g>] 開始下載。"</string>
+    <string name="wifi_recommended_body" msgid="8710820743211704403">"現在下載這個 <xliff:g id="SIZE">%1$s </xliff:g> 的檔案,可能會縮短電池的壽命,並 (或) 超出流動數據連線的用量上限,導致流動網絡供應商根據數據計劃向你收費。\n\n請在下次連接 Wi-Fi 網絡時,再輕觸 [<xliff:g id="QUEUE_TEXT">%2$s</xliff:g>] 開始下載。"</string>
     <string name="button_queue_for_wifi" msgid="6650185573566994738">"加入下載佇列"</string>
     <string name="button_cancel_download" msgid="4135046775536601831">"取消"</string>
     <string name="button_start_now" msgid="3817100969365441730">"立即開始"</string>
diff --git a/src/com/android/providers/downloads/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java
index 421c261..f5ba1e5 100644
--- a/src/com/android/providers/downloads/DownloadStorageProvider.java
+++ b/src/com/android/providers/downloads/DownloadStorageProvider.java
@@ -307,39 +307,26 @@
     }
 
     @Override
-    public Cursor queryChildDocuments(String parentDocId, String[] projection, String sortOrder)
-            throws FileNotFoundException {
-        return queryChildDocuments(parentDocId, projection, sortOrder, false);
-    }
-
-    @Override
-    public Cursor queryChildDocumentsForManage(
-            String parentDocId, String[] projection, String sortOrder)
-            throws FileNotFoundException {
-        return queryChildDocuments(parentDocId, projection, sortOrder, true);
-    }
-
-    private Cursor queryChildDocuments(String parentDocId, String[] projection,
-            String sortOrder, boolean manage) throws FileNotFoundException {
-
+    protected Cursor queryChildDocuments(String documentId, String[] projection, String sortOrder,
+            boolean includeHidden) throws FileNotFoundException {
         // Delegate to real provider
         final long token = Binder.clearCallingIdentity();
         Cursor cursor = null;
         try {
-            if (RawDocumentsHelper.isRawDocId(parentDocId)) {
-                return super.queryChildDocuments(parentDocId, projection, sortOrder);
+            if (RawDocumentsHelper.isRawDocId(documentId)) {
+                return super.queryChildDocuments(documentId, projection, sortOrder, includeHidden);
             }
 
             final DownloadsCursor result = new DownloadsCursor(projection,
                     getContext().getContentResolver());
             final ArrayList<Uri> notificationUris = new ArrayList<>();
-            if (isMediaStoreDownloadDir(parentDocId)) {
+            if (isMediaStoreDownloadDir(documentId)) {
                 includeDownloadsFromMediaStore(result, null /* queryArgs */,
                         null /* filePaths */, notificationUris,
-                        getMediaStoreIdString(parentDocId), NO_LIMIT, manage);
+                        getMediaStoreIdString(documentId), NO_LIMIT, includeHidden);
             } else {
-                assert (DOC_ID_ROOT.equals(parentDocId));
-                if (manage) {
+                assert (DOC_ID_ROOT.equals(documentId));
+                if (includeHidden) {
                     cursor = mDm.query(
                             new DownloadManager.Query().setOnlyIncludeVisibleInDownloadsUi(true));
                 } else {
@@ -354,7 +341,7 @@
                 notificationUris.add(cursor.getNotificationUri());
                 includeDownloadsFromMediaStore(result, null /* queryArgs */,
                         filePaths, notificationUris,
-                        null /* parentId */, NO_LIMIT, manage);
+                        null /* parentId */, NO_LIMIT, includeHidden);
                 includeFilesFromSharedStorage(result, filePaths, null);
             }
             result.setNotificationUris(getContext().getContentResolver(), notificationUris);
@@ -476,12 +463,11 @@
         return result;
     }
 
-    private void includeSearchFilesFromSharedStorage(DownloadsCursor result,
-            String[] projection, Set<String> filePaths,
-            Bundle queryArgs) throws FileNotFoundException {
+    private void includeSearchFilesFromSharedStorage(DownloadsCursor result, String[] projection,
+            Set<String> filePaths, Bundle queryArgs) throws FileNotFoundException {
         final File downloadDir = getPublicDownloadsDirectory();
         try (Cursor rawFilesCursor = super.querySearchDocuments(downloadDir,
-                projection, filePaths, queryArgs)) {
+                projection, /* exclusion */ filePaths, queryArgs)) {
 
             final boolean shouldExcludeMedia = queryArgs.getBoolean(
                     DocumentsContract.QUERY_ARG_EXCLUDE_MEDIA, false /* defaultValue */);
diff --git a/ui/res/values-gu/strings.xml b/ui/res/values-gu/strings.xml
index 47391c1..86b6e8d 100644
--- a/ui/res/values-gu/strings.xml
+++ b/ui/res/values-gu/strings.xml
@@ -39,7 +39,7 @@
     <string name="dialog_media_not_found" msgid="7376030905821161865">"ડાઉનલોડ કરી શકાતું નથી. બાહ્ય મીડિયા ઉપલબ્ધ નથી."</string>
     <string name="download_no_application_title" msgid="1209223807604231431">"ફાઇલ ખોલી શકાતી નથી"</string>
     <string name="remove_download" msgid="244394809285977300">"કાઢી નાખો"</string>
-    <string name="delete_download" msgid="1861638125603383676">"કાઢી નાખો"</string>
+    <string name="delete_download" msgid="1861638125603383676">"ડિલીટ કરો"</string>
     <string name="keep_queued_download" msgid="6905870466259272973">"રાખો"</string>
     <string name="cancel_running_download" msgid="8586888328847044473">"રદ કરો"</string>
     <string name="retry_download" msgid="6957856437473044831">"ફરી પ્રયાસ કરો"</string>
diff --git a/ui/res/values-or/strings.xml b/ui/res/values-or/strings.xml
index e89215c..7a962de 100644
--- a/ui/res/values-or/strings.xml
+++ b/ui/res/values-or/strings.xml
@@ -19,7 +19,7 @@
     <string name="app_label" msgid="4847371117203587513">"ଡାଉନଲୋଡ୍‌"</string>
     <string name="download_title_sorted_by_date" msgid="6033509257480233878">"ଡାଉନଲୋଡ୍‌ - ତାରିଖ ଅନୁସାରେ କ୍ରମବଦ୍ଧ"</string>
     <string name="download_title_sorted_by_size" msgid="2575551670173644253">"ଡାଉନଲୋଡ୍‌ - ଆକାର ଅନୁସାରେ କ୍ରମବଦ୍ଧ"</string>
-    <string name="no_downloads" msgid="1654764193290918538">"କୌଣସି ଡାଉନଲୋଡ୍‌ ନାହିଁ।"</string>
+    <string name="no_downloads" msgid="1654764193290918538">"କୌଣସି ଡାଉନଲୋଡ ହୋଇନାହିଁ।"</string>
     <string name="missing_title" msgid="3827247802608803753">"&lt;ଅଜଣା&gt;"</string>
     <string name="button_sort_by_size" msgid="7952187121189086395">"ଆକାର ଅନୁସାରେ କ୍ରମବଦ୍ଧ କରନ୍ତୁ"</string>
     <string name="button_sort_by_date" msgid="2064919145709585942">"ତାରିଖ ଅନୁସାରେ କ୍ରମବଦ୍ଧ କରନ୍ତୁ"</string>
diff --git a/ui/res/values-sq/strings.xml b/ui/res/values-sq/strings.xml
index ae07522..7b024bb 100644
--- a/ui/res/values-sq/strings.xml
+++ b/ui/res/values-sq/strings.xml
@@ -47,5 +47,5 @@
     <string name="deselect_all" msgid="4673983454506880405">"Hiq përzgjedhjen nga të gjitha"</string>
     <string name="select_all" msgid="7469093306474000460">"Përzgjidhi të gjitha"</string>
     <string name="selected_count" msgid="5876842902167894010">"U zgjodhën <xliff:g id="NUMBER">%1$d</xliff:g> nga gjithsej <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
-    <string name="download_share_dialog" msgid="5212760257251501969">"Shpërndaj nëpërmjet"</string>
+    <string name="download_share_dialog" msgid="5212760257251501969">"Ndaj nëpërmjet"</string>
 </resources>
diff --git a/ui/res/values-zh-rHK/strings.xml b/ui/res/values-zh-rHK/strings.xml
index 4d869ae..67cdb27 100644
--- a/ui/res/values-zh-rHK/strings.xml
+++ b/ui/res/values-zh-rHK/strings.xml
@@ -28,7 +28,7 @@
     <string name="download_success" msgid="3895973294927323747">"完成"</string>
     <string name="download_error" msgid="6652902885480887230">"失敗"</string>
     <string name="dialog_title_not_available" msgid="7793272183758002416">"無法下載"</string>
-    <string name="dialog_failed_body" msgid="4538779125597383173">"您要稍後再重試下載檔案,或是從下載佇列中刪除檔案?"</string>
+    <string name="dialog_failed_body" msgid="4538779125597383173">"你要稍後再重試下載檔案,或是從下載佇列中刪除檔案?"</string>
     <string name="dialog_title_queued_body" msgid="7481231558376227012">"佇列中的檔案"</string>
     <string name="dialog_queued_body" msgid="2374398802707010234">"檔案已排入之後要下載的佇列中,因此目前尚無法取得。"</string>
     <string name="dialog_file_missing_body" msgid="7896653198405160564">"找不到已下載的檔案。"</string>