Merge Android 12

Bug: 202323961
Merged-In: I407dc43fc27a6804ffbf1b0433fcd3a0734db6a3
Change-Id: I7a64c4290fe2a47269744661fcce860ed8d07a97
diff --git a/Android.bp b/Android.bp
index 25402bf..106ed1e 100644
--- a/Android.bp
+++ b/Android.bp
@@ -34,6 +34,7 @@
 
 android_app {
     name: "DownloadProvider",
+    defaults: ["platform_app_defaults"],
 
     manifest: "AndroidManifest.xml",
 
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 75a81bf..af2995e 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifi_recommended_body" msgid="8710820743211704403">"Ovim preuzimanjem od <xliff:g id="SIZE">%1$s </xliff:g> možete da skratite vek trajanja baterije i/ili preterano koristite mobilnu vezu za prenos podataka, što može da dovede do troškova kod mobilnog operatera shodno tarifnom paketu.\n\n Dodirnite <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> da biste započeli ovo preuzimanje kada se ponovo povežete sa WiFi mrežom."</string>
     <string name="button_queue_for_wifi" msgid="6650185573566994738">"Red"</string>
     <string name="button_cancel_download" msgid="4135046775536601831">"Otkaži"</string>
-    <string name="button_start_now" msgid="3817100969365441730">"Započni"</string>
+    <string name="button_start_now" msgid="3817100969365441730">"Započni odmah"</string>
     <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
       <item quantity="one">Preuzima se <xliff:g id="NUMBER">%d</xliff:g> datoteka</item>
       <item quantity="few">Preuzimaju se <xliff:g id="NUMBER">%d</xliff:g> datoteke</item>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index d6907f7..4cf0e88 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifi_recommended_body" msgid="8710820743211704403">"यस <xliff:g id="SIZE">%1$s </xliff:g> डाउनलोडलाई सुरु गर्दा तपाईंको ब्याट्रिको काल छोट्टिन सक्छ र/वा तपाईंको मोबाइल डेटा जडानको अधिकतम प्रयोग भई तपाईंको डेटा योजना अनुसार मोबाइल अपरेटरले थप शुल्क लिन सक्छ। \n\n छुनुहोस् <xliff:g id="QUEUE_TEXT">%2$s</xliff:g>तल यस डाउनलोडलाई सुरु गर्न अर्को पटक तपाईं Wi-Fi सन्जालमा जडित हुने बेला।"</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>
+    <string name="button_start_now" msgid="3817100969365441730">"अहिले सुरु गर्नुहोस्"</string>
     <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
       <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> फाइलहरू डाउनलोड हुँदैछन्</item>
       <item quantity="one">१ फाइल डाउनलोड हुँदैछ</item>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 4470f93..3121473 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -40,7 +40,7 @@
     <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 ଆଗାମୀ ଥର ଯେତେବେଳେ ଆପଣ ୱାଇ-ଫାଇ ନେଟୱର୍କ ସହିତ ଯୋଡ଼ିହେବେ, ଏହି ଡାଉନଲୋଡ୍‌ ଆରମ୍ଭ କରିବା ପାଇଁ <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_cancel_download" msgid="4135046775536601831">"ବାତିଲ୍‍"</string>
     <string name="button_start_now" msgid="3817100969365441730">"ବର୍ତ୍ତମାନ ଆରମ୍ଭ କରନ୍ତୁ"</string>
     <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
       <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g>ଟି ଫାଇଲ୍‌ ଡାଉନଲୋଡ୍‌ ହେଉଛି</item>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 6a259cb..38e41b3 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifi_recommended_body" msgid="8710820743211704403">"Овим преузимањем од <xliff:g id="SIZE">%1$s </xliff:g> можете да скратите век трајања батерије и/или претерано користите мобилну везу за пренос података, што може да доведе до трошкова код мобилног оператера сходно тарифном пакету.\n\n Додирните <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> да бисте започели ово преузимање када се поново повежете са WiFi мрежом."</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>
+    <string name="button_start_now" msgid="3817100969365441730">"Започни одмах"</string>
     <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
       <item quantity="one">Преузима се <xliff:g id="NUMBER">%d</xliff:g> датотека</item>
       <item quantity="few">Преузимају се <xliff:g id="NUMBER">%d</xliff:g> датотеке</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index e8fc369..1aa5f1c 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -33,12 +33,12 @@
     <string name="download_unknown_title" msgid="1017800350818840396">"&lt;Okänd&gt;"</string>
     <string name="notification_download_complete" msgid="466652037490092787">"Nedladdningen har slutförts."</string>
     <string name="notification_download_failed" msgid="3932167763860605874">"Det gick inte att ladda ned."</string>
-    <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"Nedladdningen kräver wifi."</string>
+    <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"Nedladdningen kräver Wi-Fi."</string>
     <string name="notification_paused_in_background" msgid="6393408819031041778">"Pausad i bakgrunden."</string>
     <string name="wifi_required_title" msgid="7266700488421122218">"Nedladdningen är för stor för operatörsnätverket"</string>
-    <string name="wifi_required_body" msgid="4005023496578941958">"Du måste använda wifi om du vill slutföra nedladdningen på <xliff:g id="SIZE">%1$s </xliff:g>. \n \n Tryck på <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> om du vill påbörja nedladdningen nästa gång du är ansluten till ett wifi-nätverk."</string>
+    <string name="wifi_required_body" msgid="4005023496578941958">"Du måste använda Wi-Fi om du vill slutföra nedladdningen på <xliff:g id="SIZE">%1$s </xliff:g>. \n \n Tryck på <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> om du vill påbörja nedladdningen nästa gång du är ansluten till ett Wi-Fi-nätverk."</string>
     <string name="wifi_recommended_title" msgid="6488158053932133804">"Vill du ställa den i kö för nedladdning senare?"</string>
-    <string name="wifi_recommended_body" msgid="8710820743211704403">"Om du laddar ned <xliff:g id="SIZE">%1$s </xliff:g> kan det leda till att batteritiden minskar eller att dataanslutningen överbelastas. Det kan i sin tur innebära att operatören tar ut högre avgifter, beroende på abonnemang.\n\n Tryck på <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> om du vill starta nedladdningen nästa gång mobilen är ansluten till ett wifi-nätverk."</string>
+    <string name="wifi_recommended_body" msgid="8710820743211704403">"Om du laddar ned <xliff:g id="SIZE">%1$s </xliff:g> kan det leda till att batteritiden minskar eller att dataanslutningen överbelastas. Det kan i sin tur innebära att operatören tar ut högre avgifter, beroende på abonnemang.\n\n Tryck på <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> om du vill starta nedladdningen nästa gång mobilen är ansluten till ett Wi-Fi-nätverk."</string>
     <string name="button_queue_for_wifi" msgid="6650185573566994738">"Kö"</string>
     <string name="button_cancel_download" msgid="4135046775536601831">"Avbryt"</string>
     <string name="button_start_now" msgid="3817100969365441730">"Starta nu"</string>
diff --git a/src/com/android/providers/downloads/DownloadNotifier.java b/src/com/android/providers/downloads/DownloadNotifier.java
index d38aa75..224aee4 100644
--- a/src/com/android/providers/downloads/DownloadNotifier.java
+++ b/src/com/android/providers/downloads/DownloadNotifier.java
@@ -233,7 +233,8 @@
                 intent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS,
                         downloadIds);
                 builder.setContentIntent(PendingIntent.getBroadcast(mContext,
-                        0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
+                        0, intent,
+                        PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE));
                 if (type == TYPE_ACTIVE) {
                     builder.setOngoing(true);
                 }
@@ -250,7 +251,8 @@
                     android.R.drawable.ic_menu_close_clear_cancel,
                     res.getString(R.string.button_cancel_download),
                     PendingIntent.getBroadcast(mContext,
-                            0, cancelIntent, PendingIntent.FLAG_UPDATE_CURRENT));
+                            0, cancelIntent,
+                            PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE));
 
             } else if (type == TYPE_COMPLETE) {
                 cursor.moveToPosition(cluster.get(0));
@@ -274,12 +276,14 @@
                 intent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS,
                         getDownloadIds(cursor, cluster));
                 builder.setContentIntent(PendingIntent.getBroadcast(mContext,
-                        0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
+                        0, intent,
+                        PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE));
 
                 final Intent hideIntent = new Intent(Constants.ACTION_HIDE,
                         uri, mContext, DownloadReceiver.class);
                 hideIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
-                builder.setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, hideIntent, 0));
+                builder.setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, hideIntent,
+                            PendingIntent.FLAG_IMMUTABLE));
             }
 
             // Calculate and show progress
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java
index ed596be..a9e0237 100644
--- a/src/com/android/providers/downloads/DownloadProvider.java
+++ b/src/com/android/providers/downloads/DownloadProvider.java
@@ -942,6 +942,13 @@
                 }
                 return mediaStoreUri;
             }
+        } catch (IllegalArgumentException ignored) {
+            // Insert or update MediaStore failed. At this point we can't do
+            // much here. If the file belongs to MediaStore collection, it will
+            // get added to MediaStore collection during next scan, and we will
+            // obtain the uri to the file in the next MediaStore#scanFile
+            // initiated by us
+            Log.w(Constants.TAG, "Couldn't update MediaStore for " + filePath, ignored);
         } catch (RemoteException e) {
             // Should not happen
         }
@@ -1810,7 +1817,7 @@
                         final ContentValues values = new ContentValues();
                         values.put(Downloads.Impl.COLUMN_TOTAL_BYTES, file.length());
                         values.put(Downloads.Impl.COLUMN_LAST_MODIFICATION,
-                                System.currentTimeMillis());
+                                mSystemFacade.currentTimeMillis());
                         update(uri, values, null, null);
 
                         if (shouldScan) {
diff --git a/src/com/android/providers/downloads/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java
index b6f70e3..421c261 100644
--- a/src/com/android/providers/downloads/DownloadStorageProvider.java
+++ b/src/com/android/providers/downloads/DownloadStorageProvider.java
@@ -18,7 +18,7 @@
 
 import static com.android.providers.downloads.MediaStoreDownloadsHelper.getDocIdForMediaStoreDownload;
 import static com.android.providers.downloads.MediaStoreDownloadsHelper.getMediaStoreIdString;
-import static com.android.providers.downloads.MediaStoreDownloadsHelper.getMediaStoreUri;
+import static com.android.providers.downloads.MediaStoreDownloadsHelper.getMediaStoreUriForQuery;
 import static com.android.providers.downloads.MediaStoreDownloadsHelper.isMediaStoreDownload;
 import static com.android.providers.downloads.MediaStoreDownloadsHelper.isMediaStoreDownloadDir;
 
@@ -28,7 +28,6 @@
 import android.app.DownloadManager.Query;
 import android.content.ContentResolver;
 import android.content.ContentUris;
-import android.content.ContentValues;
 import android.content.Context;
 import android.content.UriPermission;
 import android.database.Cursor;
@@ -282,7 +281,7 @@
             if (DOC_ID_ROOT.equals(docId)) {
                 includeDefaultDocument(result);
             } else if (isMediaStoreDownload(docId)) {
-                cursor = getContext().getContentResolver().query(getMediaStoreUri(docId),
+                cursor = getContext().getContentResolver().query(getMediaStoreUriForQuery(docId),
                         null, null, null);
                 copyNotificationUri(result, cursor);
                 if (cursor.moveToFirst()) {
@@ -514,7 +513,7 @@
             final ContentResolver resolver = getContext().getContentResolver();
             final Uri contentUri;
             if (isMediaStoreDownload(docId)) {
-                contentUri = getMediaStoreUri(docId);
+                contentUri = getMediaStoreUriForQuery(docId);
             } else {
                 final long id = Long.parseLong(docId);
                 contentUri = mDm.getDownloadUri(id);
@@ -538,7 +537,7 @@
             final ContentResolver resolver = getContext().getContentResolver();
             final Uri contentUri;
             if (isMediaStoreDownload(docId)) {
-                contentUri = getMediaStoreUri(docId);
+                contentUri = getMediaStoreUriForQuery(docId);
             } else {
                 final long id = Long.parseLong(docId);
                 contentUri = mDm.getDownloadUri(id);
@@ -808,7 +807,7 @@
     }
 
     private File getFileForMediaStoreDownload(String docId) {
-        final Uri mediaStoreUri = getMediaStoreUri(docId);
+        final Uri mediaStoreUri = getMediaStoreUriForQuery(docId);
         final long token = Binder.clearCallingIdentity();
         try (Cursor cursor = queryForSingleItem(mediaStoreUri,
                 new String[] { DownloadColumns.DATA }, null, null, null)) {
diff --git a/src/com/android/providers/downloads/MediaStoreDownloadsHelper.java b/src/com/android/providers/downloads/MediaStoreDownloadsHelper.java
index c4f347c..9c86d53 100644
--- a/src/com/android/providers/downloads/MediaStoreDownloadsHelper.java
+++ b/src/com/android/providers/downloads/MediaStoreDownloadsHelper.java
@@ -47,8 +47,18 @@
         return docId != null && docId.startsWith(MEDIASTORE_DOWNLOAD_DIR_PREFIX);
     }
 
-    public static Uri getMediaStoreUri(String docId) {
-        return ContentUris.withAppendedId(MediaStore.Downloads.EXTERNAL_CONTENT_URI,
-                getMediaStoreId(docId));
+    /**
+     * The returned uri always appends external volume {@link MediaStore#VOLUME_EXTERNAL}.
+     * It doesn't consider the item is located on second volume. It can't be used to update
+     * or insert.
+     * @param docId the doc id
+     * @return external uri for query
+     */
+    public static Uri getMediaStoreUriForQuery(String docId) {
+        return getMediaStoreUri(MediaStore.VOLUME_EXTERNAL, docId);
+    }
+
+    public static Uri getMediaStoreUri(String volume, String docId) {
+        return MediaStore.Downloads.getContentUri(volume, getMediaStoreId(docId));
     }
 }
diff --git a/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java b/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java
index 8605625..4afe3b7 100644
--- a/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java
+++ b/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java
@@ -208,6 +208,7 @@
         setupService();
         Helpers.setSystemFacade(mSystemFacade);
 
+        cleanUpDownloads();
         mSystemFacade.setUp();
         assertDatabaseEmpty(); // ensure we're not messing with real data
         assertDatabaseSecureAgainstBadSelection();
diff --git a/tests/src/com/android/providers/downloads/FakeSystemFacade.java b/tests/src/com/android/providers/downloads/FakeSystemFacade.java
index 11bb693..fadcd36 100644
--- a/tests/src/com/android/providers/downloads/FakeSystemFacade.java
+++ b/tests/src/com/android/providers/downloads/FakeSystemFacade.java
@@ -97,10 +97,10 @@
         if (mActiveNetworkType == null) {
             return null;
         } else {
-            final NetworkCapabilities caps = new NetworkCapabilities();
-            caps.setCapability(NET_CAPABILITY_NOT_METERED, !mIsMetered);
-            caps.setCapability(NET_CAPABILITY_NOT_ROAMING, !mIsRoaming);
-            return caps;
+            final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder();
+            if (!mIsMetered) builder.addCapability(NET_CAPABILITY_NOT_METERED);
+            if (!mIsRoaming) builder.addCapability(NET_CAPABILITY_NOT_ROAMING);
+            return builder.build();
         }
     }
 
diff --git a/ui/res/values-b+sr+Latn/strings.xml b/ui/res/values-b+sr+Latn/strings.xml
index 2f83c97..7722211 100644
--- a/ui/res/values-b+sr+Latn/strings.xml
+++ b/ui/res/values-b+sr+Latn/strings.xml
@@ -43,7 +43,7 @@
     <string name="keep_queued_download" msgid="6905870466259272973">"Zadrži"</string>
     <string name="cancel_running_download" msgid="8586888328847044473">"Otkaži"</string>
     <string name="retry_download" msgid="6957856437473044831">"Probaj ponovo"</string>
-    <string name="start_now_download" msgid="1518778561803897734">"Započni"</string>
+    <string name="start_now_download" msgid="1518778561803897734">"Započni odmah"</string>
     <string name="deselect_all" msgid="4673983454506880405">"Opozovi sve izbore"</string>
     <string name="select_all" msgid="7469093306474000460">"Izaberi sve"</string>
     <string name="selected_count" msgid="5876842902167894010">"Izabrano je <xliff:g id="NUMBER">%1$d</xliff:g> od <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
diff --git a/ui/res/values-ne/strings.xml b/ui/res/values-ne/strings.xml
index 21c01cd..0df4d5a 100644
--- a/ui/res/values-ne/strings.xml
+++ b/ui/res/values-ne/strings.xml
@@ -43,7 +43,7 @@
     <string name="keep_queued_download" msgid="6905870466259272973">"राख्नुहोस्"</string>
     <string name="cancel_running_download" msgid="8586888328847044473">"रद्द गर्नुहोस्"</string>
     <string name="retry_download" msgid="6957856437473044831">"पुनःप्रयास गर्नुहोस्"</string>
-    <string name="start_now_download" msgid="1518778561803897734">"अहिले न"</string>
+    <string name="start_now_download" msgid="1518778561803897734">"अहिले सुरु गर्नुहोस्"</string>
     <string name="deselect_all" msgid="4673983454506880405">"सबै अचयन गर्नुहोस्"</string>
     <string name="select_all" msgid="7469093306474000460">"सबै चयन गर्नुहोस्"</string>
     <string name="selected_count" msgid="5876842902167894010">"छानिएको <xliff:g id="TOTAL">%2$d</xliff:g> को <xliff:g id="NUMBER">%1$d</xliff:g> बाट"</string>
diff --git a/ui/res/values-or/strings.xml b/ui/res/values-or/strings.xml
index fc75304..62079ee 100644
--- a/ui/res/values-or/strings.xml
+++ b/ui/res/values-or/strings.xml
@@ -41,7 +41,7 @@
     <string name="remove_download" msgid="244394809285977300">"କାଢ଼ିଦିଅନ୍ତୁ"</string>
     <string name="delete_download" msgid="1861638125603383676">"ଡିଲିଟ୍‌ କରନ୍ତୁ"</string>
     <string name="keep_queued_download" msgid="6905870466259272973">"Keep"</string>
-    <string name="cancel_running_download" msgid="8586888328847044473">"ବାତିଲ୍ କରନ୍ତୁ"</string>
+    <string name="cancel_running_download" msgid="8586888328847044473">"ବାତିଲ୍‍"</string>
     <string name="retry_download" msgid="6957856437473044831">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
     <string name="start_now_download" msgid="1518778561803897734">"ବର୍ତ୍ତମାନ ଆରମ୍ଭ କରନ୍ତୁ"</string>
     <string name="deselect_all" msgid="4673983454506880405">"କିଛି ବି ଚୟନ କରନ୍ତୁ ନାହିଁ"</string>
diff --git a/ui/res/values-sr/strings.xml b/ui/res/values-sr/strings.xml
index 2892c79..801ebd2 100644
--- a/ui/res/values-sr/strings.xml
+++ b/ui/res/values-sr/strings.xml
@@ -43,7 +43,7 @@
     <string name="keep_queued_download" msgid="6905870466259272973">"Задржи"</string>
     <string name="cancel_running_download" msgid="8586888328847044473">"Откажи"</string>
     <string name="retry_download" msgid="6957856437473044831">"Пробај поново"</string>
-    <string name="start_now_download" msgid="1518778561803897734">"Започни"</string>
+    <string name="start_now_download" msgid="1518778561803897734">"Започни одмах"</string>
     <string name="deselect_all" msgid="4673983454506880405">"Опозови све изборе"</string>
     <string name="select_all" msgid="7469093306474000460">"Изабери све"</string>
     <string name="selected_count" msgid="5876842902167894010">"Изабрано је <xliff:g id="NUMBER">%1$d</xliff:g> од <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
diff --git a/ui/res/values-te/strings.xml b/ui/res/values-te/strings.xml
index 8fb2c86..b6afeb1 100644
--- a/ui/res/values-te/strings.xml
+++ b/ui/res/values-te/strings.xml
@@ -47,5 +47,5 @@
     <string name="deselect_all" msgid="4673983454506880405">"అన్నింటి ఎంపికను తీసివేయి"</string>
     <string name="select_all" msgid="7469093306474000460">"అన్నీ ఎంచుకోండి"</string>
     <string name="selected_count" msgid="5876842902167894010">"<xliff:g id="TOTAL">%2$d</xliff:g>లో <xliff:g id="NUMBER">%1$d</xliff:g> ఎంచుకోబడ్డాయి"</string>
-    <string name="download_share_dialog" msgid="5212760257251501969">"వీటి ద్వారా షేర్ చేయండి"</string>
+    <string name="download_share_dialog" msgid="5212760257251501969">"వీటి ద్వారా భాగస్వామ్యం చేయండి"</string>
 </resources>