Merge changes Id59f345b,I82224b01 into rvc-dev

* changes:
  Allow audio files to be inserted into Audiobooks/
  Add missing default dirs to MediaProvider
diff --git a/apex/framework/java/android/provider/MediaStore.java b/apex/framework/java/android/provider/MediaStore.java
index 5a16a9c..62fb282 100644
--- a/apex/framework/java/android/provider/MediaStore.java
+++ b/apex/framework/java/android/provider/MediaStore.java
@@ -2721,7 +2721,7 @@
         /**
          * Audio playlist metadata columns.
          */
-        public interface PlaylistsColumns {
+        public interface PlaylistsColumns extends MediaColumns {
             /**
              * The name of the playlist
              */
diff --git a/jni/FuseDaemon.cpp b/jni/FuseDaemon.cpp
index 42fdd05..aa647d5 100644
--- a/jni/FuseDaemon.cpp
+++ b/jni/FuseDaemon.cpp
@@ -841,25 +841,30 @@
         return;
     }
 
-    if (ri->isRedactionNeeded() || is_file_locked(fd, path)) {
-        // We don't want to use the FUSE VFS cache in two cases:
-        // 1. When redaction is needed because app A with EXIF access might access
-        // a region that should have been redacted for app B without EXIF access, but app B on
-        // a subsequent read, will be able to see the EXIF data because the read request for that
-        // region will be served from cache and not get to the FUSE daemon
-        // 2. When the file has a read or write lock on it. This means that the MediaProvider has
-        // given an fd to the lower file system to an app. There are two cases where using the cache
-        // in this case can be a problem:
-        // a. Writing to a FUSE fd with caching enabled will use the write-back cache and a
-        // subsequent read from the lower fs fd will not see the write.
-        // b. Reading from a FUSE fd with caching enabled may not see the latest writes using the
-        // lower fs fd because those writes did not go through the FUSE layer and reads from FUSE
-        // after that write may be served from cache
-        fi->direct_io = true;
-    }
+    handle* h = nullptr;
+    {
+        std::lock_guard<std::recursive_mutex> guard(fuse->lock);
 
-    handle* h = new handle(path, fd, ri.release(), /*owner_uid*/ -1, !fi->direct_io);
-    node->AddHandle(h);
+        if (ri->isRedactionNeeded() || is_file_locked(fd, path)) {
+            // We don't want to use the FUSE VFS cache in two cases:
+            // 1. When redaction is needed because app A with EXIF access might access
+            // a region that should have been redacted for app B without EXIF access, but app B on
+            // a subsequent read, will be able to see the EXIF data because the read request for
+            // that region will be served from cache and not get to the FUSE daemon
+            // 2. When the file has a read or write lock on it. This means that the MediaProvider
+            // has given an fd to the lower file system to an app. There are two cases where using
+            // the cache in this case can be a problem:
+            // a. Writing to a FUSE fd with caching enabled will use the write-back cache and a
+            // subsequent read from the lower fs fd will not see the write.
+            // b. Reading from a FUSE fd with caching enabled may not see the latest writes using
+            // the lower fs fd because those writes did not go through the FUSE layer and reads from
+            // FUSE after that write may be served from cache
+            fi->direct_io = true;
+        }
+
+        h = new handle(path, fd, ri.release(), /*owner_uid*/ -1, !fi->direct_io);
+        node->AddHandle(h);
+    }
 
     fi->fh = ptr_to_id(h);
     fi->keep_cache = 1;
@@ -1468,6 +1473,7 @@
     bool use_fuse = false;
 
     if (active.load(std::memory_order_acquire)) {
+        std::lock_guard<std::recursive_mutex> guard(fuse->lock);
         const node* node = node::LookupAbsolutePath(fuse->root, path);
         if (node && node->HasCachedHandle()) {
             use_fuse = true;
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 86b3ec8..f917ced 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -38,14 +38,10 @@
       <item quantity="other">و<xliff:g id="COUNT_1">^1</xliff:g> عنصر إضافي</item>
       <item quantity="one">وعنصر إضافي واحد (<xliff:g id="COUNT_0">^1</xliff:g>)</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"هل تريد محو ذاكرة التخزين المؤقت للتطبيقات باستخدام <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>؟"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"يريد <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> محو بعض الملفات المؤقتة. قد تؤدي الموافقة إلى زيادة استهلاك شحن البطارية أو البيانات."</string>
+    <string name="allow" msgid="8885707816848569619">"سماح"</string>
+    <string name="deny" msgid="6040983710442068936">"رفض"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="zero">هل تريد السماح لتطبيق <xliff:g id="APP_NAME_1">^1</xliff:g> بتغيير<xliff:g id="COUNT">^2</xliff:g> ملف صوت؟</item>
       <item quantity="two">هل تريد السماح لتطبيق <xliff:g id="APP_NAME_1">^1</xliff:g> بتغيير ملفَي صوت (<xliff:g id="COUNT">^2</xliff:g>)؟</item>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 7141216..402423b 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">আৰু <xliff:g id="COUNT_1">^1</xliff:g> টা অতিৰিক্ত বস্তু</item>
       <item quantity="other">আৰু <xliff:g id="COUNT_1">^1</xliff:g> টা অতিৰিক্ত বস্তু</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>ৰ জৰিয়তে এপ্‌ কেশ্ব মচিবনে?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>এ কিছুমান অস্থায়ী ফাইল মচিব বিচাৰিছে। গ্ৰহণ কৰিলে বেটাৰী অথবা ডেটাৰ ব্যৱহাৰ বেছি হ’ব পাৰে।"</string>
+    <string name="allow" msgid="8885707816848569619">"অনুমতি দিয়ক"</string>
+    <string name="deny" msgid="6040983710442068936">"অস্বীকাৰ কৰক"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one"><xliff:g id="APP_NAME_1">^1</xliff:g>ক <xliff:g id="COUNT">^2</xliff:g> টা অডিঅ’ ফাইল সলনি কৰিবলৈ দিবনে?</item>
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g>ক <xliff:g id="COUNT">^2</xliff:g> টা অডিঅ’ ফাইল সলনি কৰিবলৈ দিবনে?</item>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 9956d93..af8a8dc 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Üstəgəl <xliff:g id="COUNT_1">^1</xliff:g> əlavə element</item>
       <item quantity="one">Üstəgəl <xliff:g id="COUNT_0">^1</xliff:g> əlavə element</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ilə tətbiqin keşi silinsin?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> bəzi müvəqqəti faylları silmək istəyir. Qəbul etməklə, batareya və ya data istifadəsi artırıla bilər."</string>
+    <string name="allow" msgid="8885707816848569619">"İcazə verin"</string>
+    <string name="deny" msgid="6040983710442068936">"Rədd edin"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> <xliff:g id="COUNT">^2</xliff:g> audio faylı dəyişsin?</item>
       <item quantity="one"><xliff:g id="APP_NAME_0">^1</xliff:g> bu audio faylını dəyişsin?</item>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index dcc2212..7bfd24e 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -36,14 +36,10 @@
       <item quantity="many">Плюс <xliff:g id="COUNT_1">^1</xliff:g> дадатковых элементаў</item>
       <item quantity="other">Плюс <xliff:g id="COUNT_1">^1</xliff:g> дадатковага элемента</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Ачысціць кэш з дапамогай праграмы \"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>\"?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> запытвае дазвол на выдаленне некаторых часовых файлаў. Наяўнасць такога дазволу можа павялічыць спажыванне зараду акумулятара і выкарыстанне трафіка."</string>
+    <string name="allow" msgid="8885707816848569619">"Дазволіць"</string>
+    <string name="deny" msgid="6040983710442068936">"Адмовіць"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Дазволіць праграме \"<xliff:g id="APP_NAME_1">^1</xliff:g>\" змяніць <xliff:g id="COUNT">^2</xliff:g> аўдыяфайл?</item>
       <item quantity="few">Дазволіць праграме \"<xliff:g id="APP_NAME_1">^1</xliff:g>\" змяніць <xliff:g id="COUNT">^2</xliff:g> аўдыяфайлы?</item>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index c3a5fdd..cbd90d4 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">И още <xliff:g id="COUNT_1">^1</xliff:g> допълнителни елемента</item>
       <item quantity="one">И още <xliff:g id="COUNT_0">^1</xliff:g> допълнителен елемент</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Да се изчисти ли кешът на приложенията посредством <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> иска да изчисти някои временни файлове. Ако приемете, може да се увеличи използването на батерия или данни."</string>
+    <string name="allow" msgid="8885707816848569619">"Разрешаване"</string>
+    <string name="deny" msgid="6040983710442068936">"Отказ"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Разрешавате ли на <xliff:g id="APP_NAME_1">^1</xliff:g> да промени <xliff:g id="COUNT">^2</xliff:g> аудиофайла?</item>
       <item quantity="one">Разрешавате ли на <xliff:g id="APP_NAME_0">^1</xliff:g> да промени този аудиофайл?</item>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index b30a06e..d45d910 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">এছাড়াও <xliff:g id="COUNT_1">^1</xliff:g>টি অতিরিক্ত আইটেম</item>
       <item quantity="other">এছাড়াও <xliff:g id="COUNT_1">^1</xliff:g>টি অতিরিক্ত আইটেম</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>-এর সাহায্যে অ্যাপ ক্যাশে মুছতে চান?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> কিছু অস্থায়ী ফাইলকে সরাতে চায়। সম্মতি দিলে ব্যাটারি আরও বেশি সময় চলতে পারে ও ব্যবহার করার জন্য আরও বেশি স্টোরেজ উপলভ্য হতে পারে।"</string>
+    <string name="allow" msgid="8885707816848569619">"অনুমতি দিন"</string>
+    <string name="deny" msgid="6040983710442068936">"বাতিল করুন"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one"><xliff:g id="APP_NAME_1">^1</xliff:g> অ্যাপটিকে <xliff:g id="COUNT">^2</xliff:g>টি অডিও ফাইল পরিবর্তন করার অনুমতি দিতে চান?</item>
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> অ্যাপটিকে <xliff:g id="COUNT">^2</xliff:g>টি অডিও ফাইল পরিবর্তন করার অনুমতি দিতে চান?</item>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index f4c6e06..7cfbb26 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -35,14 +35,10 @@
       <item quantity="few">Još <xliff:g id="COUNT_1">^1</xliff:g> dodatne stavke</item>
       <item quantity="other">Još <xliff:g id="COUNT_1">^1</xliff:g> dodatnih stavki</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Obrisati keš memoriju aplikacije pomoću aplikacije <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"Aplikacija <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> želi obrisati neke privremene fajlove. Ako prihvatite, može doći do povećane potrošnje baterije ili prijenosa podataka."</string>
+    <string name="allow" msgid="8885707816848569619">"Dozvoli"</string>
+    <string name="deny" msgid="6040983710442068936">"Odbij"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Dozvoliti da <xliff:g id="APP_NAME_1">^1</xliff:g> promijeni <xliff:g id="COUNT">^2</xliff:g> audio fajl?</item>
       <item quantity="few">Dozvoliti da <xliff:g id="APP_NAME_1">^1</xliff:g> promijeni <xliff:g id="COUNT">^2</xliff:g> audio fajla?</item>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index bd86598..a6642b6 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other"><xliff:g id="COUNT_1">^1</xliff:g> elements addicionals més</item>
       <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> element addicional més</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Vols esborrar la memòria cau de l\'aplicació amb <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vol esborrar alguns fitxers temporals. Si ho acceptes, pot incrementar l\'ús de la bateria i de les dades."</string>
+    <string name="allow" msgid="8885707816848569619">"Permet"</string>
+    <string name="deny" msgid="6040983710442068936">"Denega"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Vols permetre que <xliff:g id="APP_NAME_1">^1</xliff:g> modifiqui <xliff:g id="COUNT">^2</xliff:g> fitxers d\'àudio?</item>
       <item quantity="one">Vols permetre que <xliff:g id="APP_NAME_0">^1</xliff:g> modifiqui aquest fitxer d\'àudio?</item>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 6cff580..af96748 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -36,14 +36,10 @@
       <item quantity="other">Plus <xliff:g id="COUNT_1">^1</xliff:g> dalších položek</item>
       <item quantity="one">Plus <xliff:g id="COUNT_0">^1</xliff:g> další položka</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Vymazat mezipaměť aplikace pomocí aplikace <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"Aplikace <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> chce vymazat nějaké dočasné soubory. Souhlas může vést ke zvýšené spotřebě baterie nebo dat."</string>
+    <string name="allow" msgid="8885707816848569619">"Povolit"</string>
+    <string name="deny" msgid="6040983710442068936">"Zakázat"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="few">Nechat aplikaci <xliff:g id="APP_NAME_1">^1</xliff:g> změnit <xliff:g id="COUNT">^2</xliff:g> zvukové soubory?</item>
       <item quantity="many">Nechat aplikaci <xliff:g id="APP_NAME_1">^1</xliff:g> změnit <xliff:g id="COUNT">^2</xliff:g> zvukového souboru?</item>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index ad185d7..e0f8850 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">Plus <xliff:g id="COUNT_1">^1</xliff:g> andet element</item>
       <item quantity="other">Plus <xliff:g id="COUNT_1">^1</xliff:g> andre elementer</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Vil du rydde appcachen med <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vil gerne rydde nogle midlertidige filer. Hvis du accepterer, kan det øge batteri- og dataforbruget."</string>
+    <string name="allow" msgid="8885707816848569619">"Tillad"</string>
+    <string name="deny" msgid="6040983710442068936">"Afvis"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Vil du give <xliff:g id="APP_NAME_1">^1</xliff:g> tilladelse til at ændre <xliff:g id="COUNT">^2</xliff:g> lydfil?</item>
       <item quantity="other">Vil du give <xliff:g id="APP_NAME_1">^1</xliff:g> tilladelse til at ændre <xliff:g id="COUNT">^2</xliff:g> lydfiler?</item>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 7f23dcb..b8ca8bd 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other"><xliff:g id="COUNT_1">^1</xliff:g> weitere Elemente</item>
       <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> weiteres Element</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"App-Cache mit der App \"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>\" leeren?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"Die App \"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>\" möchte einige temporäre Dateien löschen. Wenn du das zulässt, kann dadurch die Akku- oder Datennutzung steigen."</string>
+    <string name="allow" msgid="8885707816848569619">"Zulassen"</string>
+    <string name="deny" msgid="6040983710442068936">"Ablehnen"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="COUNT">^2</xliff:g> Audiodateien von <xliff:g id="APP_NAME_1">^1</xliff:g> ändern lassen?</item>
       <item quantity="one">Diese Audiodatei von <xliff:g id="APP_NAME_0">^1</xliff:g> ändern lassen?</item>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index c00e7c9..a309fce 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Συν <xliff:g id="COUNT_1">^1</xliff:g> επιπλέον στοιχεία</item>
       <item quantity="one">Συν <xliff:g id="COUNT_0">^1</xliff:g> επιπλέον στοιχείο</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Διαγραφή κρυφής μνήμης εφαρμογής με την εφαρμογή <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>;"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"Η εφαρμογή <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> θέλει να διαγράψει ορισμένα προσωρινά αρχεία. Η αποδοχή μπορεί να αυξήσει τη χρήση μπαταρίας και δεδομένων."</string>
+    <string name="allow" msgid="8885707816848569619">"Να επιτρέπεται"</string>
+    <string name="deny" msgid="6040983710442068936">"Απόρριψη"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Να επιτραπεί στην εφαρμογή <xliff:g id="APP_NAME_1">^1</xliff:g> η αλλαγή <xliff:g id="COUNT">^2</xliff:g> αρχείων ήχου;</item>
       <item quantity="one">Να επιτραπεί στην εφαρμογή <xliff:g id="APP_NAME_0">^1</xliff:g> η αλλαγή αυτού του αρχείου ήχου;</item>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 71d8652..d0e9fc9 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other"><xliff:g id="COUNT_1">^1</xliff:g> elementos adicionales</item>
       <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> elemento adicional</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"¿Deseas borrar la memoria caché de las apps con <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> quiere borrar algunos archivos temporales. Aceptar la acción podría incrementar el uso de la batería y los datos."</string>
+    <string name="allow" msgid="8885707816848569619">"Permitir"</string>
+    <string name="deny" msgid="6040983710442068936">"Rechazar"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">¿Quieres permitir que <xliff:g id="APP_NAME_1">^1</xliff:g> cambie <xliff:g id="COUNT">^2</xliff:g> archivos de audio?</item>
       <item quantity="one">¿Quieres permitir que <xliff:g id="APP_NAME_0">^1</xliff:g> cambie este archivo de audio?</item>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index b559c23..6b867c6 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Y <xliff:g id="COUNT_1">^1</xliff:g> elementos más</item>
       <item quantity="one">Y <xliff:g id="COUNT_0">^1</xliff:g> elemento más</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"¿Quieres borrar la caché de las aplicaciones con <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> quiere borrar algunos archivos temporales. Si aceptas, puede que aumente el uso de la batería o de los datos."</string>
+    <string name="allow" msgid="8885707816848569619">"Permitir"</string>
+    <string name="deny" msgid="6040983710442068936">"Denegar"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">¿Quieres permitir que <xliff:g id="APP_NAME_1">^1</xliff:g> cambie <xliff:g id="COUNT">^2</xliff:g> archivos de audio?</item>
       <item quantity="one">¿Quieres permitir que <xliff:g id="APP_NAME_0">^1</xliff:g> cambie este archivo de audio?</item>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 4c1921e..454e7b8 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Veel <xliff:g id="COUNT_1">^1</xliff:g> lisaüksust</item>
       <item quantity="one">Veel <xliff:g id="COUNT_0">^1</xliff:g> lisaüksus</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Kas tühjendada rakenduse vahemälu rakendusega <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> soovib kustutada mõned ajutised failid. Nõustumisel võib suureneda aku- või andmesidekasutus."</string>
+    <string name="allow" msgid="8885707816848569619">"Luba"</string>
+    <string name="deny" msgid="6040983710442068936">"Keela"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Kas lubada rakendusel <xliff:g id="APP_NAME_1">^1</xliff:g> <xliff:g id="COUNT">^2</xliff:g> helifaili muuta?</item>
       <item quantity="one">Kas lubada rakendusel <xliff:g id="APP_NAME_0">^1</xliff:g> seda helifaili muuta?</item>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 5f08bcd..3d65a68 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Eta beste <xliff:g id="COUNT_1">^1</xliff:g> elementu</item>
       <item quantity="one">Eta beste <xliff:g id="COUNT_0">^1</xliff:g> elementu</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> bidez aplikazioaren cachea garbitu nahi duzu?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> aplikazioak aldi baterako fitxategi batzuk ezabatu nahi ditu. Onartzen baduzu, baliteke bateria edo datu gehiago kontsumitzea."</string>
+    <string name="allow" msgid="8885707816848569619">"Baimendu"</string>
+    <string name="deny" msgid="6040983710442068936">"Ukatu"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="COUNT">^2</xliff:g> audio-fitxategi aldatzen utzi nahi diozu <xliff:g id="APP_NAME_1">^1</xliff:g> aplikazioari?</item>
       <item quantity="one">Audio-fitxategi hau aldatzen utzi nahi diozu <xliff:g id="APP_NAME_0">^1</xliff:g> aplikazioari?</item>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index d002a45..bde7489 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">به‌علاوه <xliff:g id="COUNT_1">^1</xliff:g> مورد دیگر</item>
       <item quantity="other">به‌علاوه <xliff:g id="COUNT_1">^1</xliff:g> مورد دیگر</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"حافظه پنهان برنامه با <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> پاک شود؟"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> می‌خواهد برخی از فایل‌های موقت را پاک کند. اگر بپذیرید ممکن است میزان مصرف باتری یا داده افزایش یابد."</string>
+    <string name="allow" msgid="8885707816848569619">"اجازه دادن"</string>
+    <string name="deny" msgid="6040983710442068936">"رد کردن"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">به <xliff:g id="APP_NAME_1">^1</xliff:g> اجازه می‌دهید <xliff:g id="COUNT">^2</xliff:g> فایل صوتی را تغییر دهد؟</item>
       <item quantity="other">به <xliff:g id="APP_NAME_1">^1</xliff:g> اجازه می‌دهید <xliff:g id="COUNT">^2</xliff:g> فایل صوتی را تغییر دهد؟</item>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 2d2a2bc..2eb58da 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Ja <xliff:g id="COUNT_1">^1</xliff:g> muuta asiaa</item>
       <item quantity="one">Ja <xliff:g id="COUNT_0">^1</xliff:g> muu asia</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Tyhjennetäänkö sovelluksen välimuisti sovelluksella <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> haluaa poistaa joitain väliaikaisia tiedostoja. Hyväksyminen voi lisätä akun tai datan käyttöä."</string>
+    <string name="allow" msgid="8885707816848569619">"Salli"</string>
+    <string name="deny" msgid="6040983710442068936">"Estä"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Saako <xliff:g id="APP_NAME_1">^1</xliff:g> muokata <xliff:g id="COUNT">^2</xliff:g> audiotiedostoa?</item>
       <item quantity="one">Saako <xliff:g id="APP_NAME_0">^1</xliff:g> muokata tätä audiotiedostoa?</item>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index e056c0c..c4e38d0 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">Plus <xliff:g id="COUNT_1">^1</xliff:g> élément supplémentaire</item>
       <item quantity="other">Plus <xliff:g id="COUNT_1">^1</xliff:g> éléments supplémentaires</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Vider le cache des applications avec <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> aimerait supprimer certains fichiers temporaires. Cette action peut augmenter l\'utilisation de la pile ou des données."</string>
+    <string name="allow" msgid="8885707816848569619">"Autoriser"</string>
+    <string name="deny" msgid="6040983710442068936">"Refuser"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Autoriser <xliff:g id="APP_NAME_1">^1</xliff:g> à modifier <xliff:g id="COUNT">^2</xliff:g> fichier audio?</item>
       <item quantity="other">Autoriser <xliff:g id="APP_NAME_1">^1</xliff:g> à modifier <xliff:g id="COUNT">^2</xliff:g> fichiers audio?</item>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index a60a92d..6c4543a 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">Plus <xliff:g id="COUNT_1">^1</xliff:g> autre élément</item>
       <item quantity="other">Plus <xliff:g id="COUNT_1">^1</xliff:g> autres éléments</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Vider le cache des applications avec <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> souhaite supprimer quelques fichiers temporaires. Cette action peut augmenter l\'utilisation de la batterie ou des données."</string>
+    <string name="allow" msgid="8885707816848569619">"Autoriser"</string>
+    <string name="deny" msgid="6040983710442068936">"Refuser"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Autoriser <xliff:g id="APP_NAME_1">^1</xliff:g> à modifier <xliff:g id="COUNT">^2</xliff:g> fichier audio ?</item>
       <item quantity="other">Autoriser <xliff:g id="APP_NAME_1">^1</xliff:g> à modifier <xliff:g id="COUNT">^2</xliff:g> fichiers audio ?</item>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 8020588..d2e46bc 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">E <xliff:g id="COUNT_1">^1</xliff:g> elementos adicionais</item>
       <item quantity="one">E <xliff:g id="COUNT_0">^1</xliff:g> elemento adicional</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Queres borrar a memoria caché das aplicacións con <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> quere borrar algúns ficheiros temporais. Se aceptas, pode aumentar o uso da batería ou dos datos."</string>
+    <string name="allow" msgid="8885707816848569619">"Permitir"</string>
+    <string name="deny" msgid="6040983710442068936">"Denegar"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Queres permitir que <xliff:g id="APP_NAME_1">^1</xliff:g> cambie <xliff:g id="COUNT">^2</xliff:g> ficheiros de audio?</item>
       <item quantity="one">Queres permitir que <xliff:g id="APP_NAME_0">^1</xliff:g> cambie este ficheiro de audio?</item>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index a48e282..2144e44 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">ઉપરાંત <xliff:g id="COUNT_1">^1</xliff:g> વધારાની આઇટમ</item>
       <item quantity="other">ઉપરાંત <xliff:g id="COUNT_1">^1</xliff:g> વધારાની આઇટમ</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>નો ઉપયોગ કરીને ઍપ કૅશ મેમરીને સાફ કરીએ?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> કેટલીક અસ્થાયી ફાઇલોને સાફ કરવા માગે છે. સ્વીકારવાથી બૅટરી અથવા ડેટા વપરાશ વધી શકે છે."</string>
+    <string name="allow" msgid="8885707816848569619">"મંજૂરી આપો"</string>
+    <string name="deny" msgid="6040983710442068936">"નકારો"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one"><xliff:g id="APP_NAME_1">^1</xliff:g>ને <xliff:g id="COUNT">^2</xliff:g> ઑડિયો ફાઇલમાં ફેરફાર કરવાની મંજૂરી આપીએ?</item>
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g>ને <xliff:g id="COUNT">^2</xliff:g> ઑડિયો ફાઇલમાં ફેરફાર કરવાની મંજૂરી આપીએ?</item>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 341bf54..a0865b7 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">अन्य <xliff:g id="COUNT_1">^1</xliff:g> आइटम</item>
       <item quantity="other">अन्य <xliff:g id="COUNT_1">^1</xliff:g> आइटम</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> की मदद से ऐप्लिकेशन की कैश मेमोरी मिटाना चाहते हैं?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> कुछ समय तक रहने वाली फ़ाइलों को हटाना चाहता है. इसकी अनुमति देने से, बैटरी और डेटा का इस्तेमाल बढ़ सकता है."</string>
+    <string name="allow" msgid="8885707816848569619">"अनुमति दें"</string>
+    <string name="deny" msgid="6040983710442068936">"अनुमति न दें"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one"><xliff:g id="APP_NAME_1">^1</xliff:g> को <xliff:g id="COUNT">^2</xliff:g> ऑडियो फ़ाइलों को बदलने की अनुमति दें?</item>
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> को <xliff:g id="COUNT">^2</xliff:g> ऑडियो फ़ाइलों को बदलने की अनुमति दें?</item>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 317839d..0d91ecc 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -35,14 +35,10 @@
       <item quantity="few">Plus sljedeći broj dodatnih stavki: <xliff:g id="COUNT_1">^1</xliff:g></item>
       <item quantity="other">Plus sljedeći broj dodatnih stavki: <xliff:g id="COUNT_1">^1</xliff:g></item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Izbrisati predmemoriju aplikacija pomoću aplikacije <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> želi izbrisati neke privremene datoteke. Ako prihvatite, potrošnja baterije ili podatkovni promet mogu se pojačati."</string>
+    <string name="allow" msgid="8885707816848569619">"Dopusti"</string>
+    <string name="deny" msgid="6040983710442068936">"Odbij"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Dopustiti aplikaciji <xliff:g id="APP_NAME_1">^1</xliff:g> promjenu sljedećeg broja audiodatoteka: <xliff:g id="COUNT">^2</xliff:g>?</item>
       <item quantity="few">Dopustiti aplikaciji <xliff:g id="APP_NAME_1">^1</xliff:g> promjenu sljedećeg broja audiodatoteka: <xliff:g id="COUNT">^2</xliff:g>?</item>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 45a2082..50ca465 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">És további <xliff:g id="COUNT_1">^1</xliff:g> elem</item>
       <item quantity="one">És további <xliff:g id="COUNT_0">^1</xliff:g> elem</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Törli az alkalmazás-gyorsítótárat a következő alkalmazással: <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"A(z) <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> szeretne törölni néhány ideiglenes fájlt. Ha jóváhagyja, megnőhet az akkumulátor- vagy az adathasználat."</string>
+    <string name="allow" msgid="8885707816848569619">"Engedélyezés"</string>
+    <string name="deny" msgid="6040983710442068936">"Tiltás"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Engedélyezi a(z) <xliff:g id="APP_NAME_1">^1</xliff:g> alkalmazás számára ennek a(z) <xliff:g id="COUNT">^2</xliff:g> hangfájlnak a módosítását?</item>
       <item quantity="one">Engedélyezi a(z) <xliff:g id="APP_NAME_0">^1</xliff:g> alkalmazás számára ennek a hangfájlnak a módosítását?</item>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 6cc2148..9754cf7 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -34,7 +34,7 @@
       <item quantity="one">Ու ևս <xliff:g id="COUNT_1">^1</xliff:g> լրացուցիչ տարր</item>
       <item quantity="other">Ու ևս <xliff:g id="COUNT_1">^1</xliff:g> լրացուցիչ տարր</item>
     </plurals>
-    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Մաքրե՞լ հավելվածի քեշը <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> հավելվածի օգնությամբ"</string>
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Ջնջե՞լ հավելվածի քեշը <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> հավելվածի օգնությամբ"</string>
     <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> հավելվածին անհրաժեշտ է մաքրել որոշ ժամանակավոր ֆայլեր։ Թույլատրելու դեպքում մարտկոցի կամ բջջային ինտերնետի ծախսը կարող է մեծանալ։"</string>
     <string name="allow" msgid="8885707816848569619">"Թույլատրել"</string>
     <string name="deny" msgid="6040983710442068936">"Մերժել"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 2ac0b25..232b3b8 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">Auk <xliff:g id="COUNT_1">^1</xliff:g> atriðis til viðbótar</item>
       <item quantity="other">Auk <xliff:g id="COUNT_1">^1</xliff:g> atriða til viðbótar</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Viltu hreinsa skyndiminni forrita með <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vill fá að hreinsa sumar tímabundnar skrár. Ef þú samþykkir þetta gæti rafhlöðu- eða gagnanotkun aukist."</string>
+    <string name="allow" msgid="8885707816848569619">"Leyfa"</string>
+    <string name="deny" msgid="6040983710442068936">"Hafna"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Leyfa <xliff:g id="APP_NAME_1">^1</xliff:g> að breyta <xliff:g id="COUNT">^2</xliff:g> hljóðskrá?</item>
       <item quantity="other">Leyfa <xliff:g id="APP_NAME_1">^1</xliff:g> að breyta <xliff:g id="COUNT">^2</xliff:g> hljóðskrám?</item>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index bb9f68b..edd6cd7 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Più altri <xliff:g id="COUNT_1">^1</xliff:g> elementi</item>
       <item quantity="one">Più <xliff:g id="COUNT_0">^1</xliff:g> altro elemento</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Svuotare la cache dell\'app con <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vorrebbe cancellare alcuni file temporanei. Se accetti, l\'utilizzo dei dati o della batteria potrebbe migliorare."</string>
+    <string name="allow" msgid="8885707816848569619">"Consenti"</string>
+    <string name="deny" msgid="6040983710442068936">"Rifiuta"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Vuoi consentire all\'app <xliff:g id="APP_NAME_1">^1</xliff:g> di modificare <xliff:g id="COUNT">^2</xliff:g> file audio?</item>
       <item quantity="one">Vuoi consentire all\'app <xliff:g id="APP_NAME_0">^1</xliff:g> di modificare questo file audio?</item>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index f1ce7cf..57fe015 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -36,14 +36,10 @@
       <item quantity="other">ועוד <xliff:g id="COUNT_1">^1</xliff:g> פריטים נוספים</item>
       <item quantity="one">ועוד פריט אחד נוסף (<xliff:g id="COUNT_0">^1</xliff:g>)</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"לנקות את מטמון האפליקציה עם <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"קיבלת בקשה מהאפליקציה <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> לניקוי של חלק מהקבצים הזמניים. מתן אישור עשוי להגדיל את השימוש בסוללה או בנתונים."</string>
+    <string name="allow" msgid="8885707816848569619">"אישור"</string>
+    <string name="deny" msgid="6040983710442068936">"דחייה"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="two">לאפשר לאפליקציה <xliff:g id="APP_NAME_1">^1</xliff:g> לשנות <xliff:g id="COUNT">^2</xliff:g> קובצי אודיו?</item>
       <item quantity="many">לאפשר לאפליקציה <xliff:g id="APP_NAME_1">^1</xliff:g> לשנות <xliff:g id="COUNT">^2</xliff:g> קובצי אודיו?</item>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index c74d862..a0b648a 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">და კიდევ <xliff:g id="COUNT_1">^1</xliff:g> დამატებითი ერთეული</item>
       <item quantity="one">და კიდევ <xliff:g id="COUNT_0">^1</xliff:g> დამატებითი ერთეული</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"გასუფთავდეს აპების ქეში <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>-ით?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>-ს სურს, გაასუფთაოს დროებითი ფაილები. დათანხმებამ შეიძლება ბატარეისა და მობილური ინტერნეტის მოხმარება გაზარდოს."</string>
+    <string name="allow" msgid="8885707816848569619">"დაშვება"</string>
+    <string name="deny" msgid="6040983710442068936">"უარყოფა"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">აძლევთ უფლებას <xliff:g id="APP_NAME_1">^1</xliff:g>-ს, შეცვალოს <xliff:g id="COUNT">^2</xliff:g> აუდიოფაილი?</item>
       <item quantity="one">აძლევთ უფლებას <xliff:g id="APP_NAME_0">^1</xliff:g>-ს, შეცვალოს ეს აუდიოფაილი?</item>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index dae5bbc..265eedc 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Тағы <xliff:g id="COUNT_1">^1</xliff:g> элемент</item>
       <item quantity="one">Тағы <xliff:g id="COUNT_0">^1</xliff:g> элемент</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> арқылы қолданба кэші өшірілсін бе?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> кейбір уақытша файлдарды өшіргісі келеді. Бұл — батарея зарядын немесе дерек трафигін пайдалану шығынын арттырады."</string>
+    <string name="allow" msgid="8885707816848569619">"Рұқсат ету"</string>
+    <string name="deny" msgid="6040983710442068936">"Тыйым салу"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> қолданбасына <xliff:g id="COUNT">^2</xliff:g> аудиофайлды өзгертуге рұқсат етесіз бе?</item>
       <item quantity="one"><xliff:g id="APP_NAME_0">^1</xliff:g> қолданбасына осы аудиофайлды өзгертуге рұқсат етесіз бе?</item>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 336e0a2..0aadb5d 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">បូករួម​ទាំង​ធាតុ <xliff:g id="COUNT_1">^1</xliff:g> បន្ថែម​ទៀត</item>
       <item quantity="one">បូករួម​ទាំង​ធាតុ <xliff:g id="COUNT_0">^1</xliff:g> បន្ថែម​ទៀត</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"សម្អាត​ឃ្លាំងផ្ទុកទិន្នន័យ​កម្មវិធី​ដោយប្រើ <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ឬ?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ចង់​សម្អាត​ឯកសារ​បណ្ដោះអាសន្ន​មួយចំនួន។ ការយល់ព្រម​អាចនឹង​បង្កើន​ការប្រើប្រាស់​ទិន្នន័យ ឬ​ថ្ម។"</string>
+    <string name="allow" msgid="8885707816848569619">"អនុញ្ញាត"</string>
+    <string name="deny" msgid="6040983710442068936">"បដិសេធ"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">អនុញ្ញាត​ឱ្យ <xliff:g id="APP_NAME_1">^1</xliff:g> ប្ដូរ​ឯកសារ​សំឡេង <xliff:g id="COUNT">^2</xliff:g> ឬ​?</item>
       <item quantity="one">អនុញ្ញាត​ឱ្យ <xliff:g id="APP_NAME_0">^1</xliff:g> ប្ដូរ​ឯកសារ​សំឡេង​នេះ​ឬ​?</item>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 570d8ee..1d9c146 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">ಜೊತೆಗೆ <xliff:g id="COUNT_1">^1</xliff:g> ಹೆಚ್ಚುವರಿ ಐಟಂಗಳು</item>
       <item quantity="other">ಜೊತೆಗೆ <xliff:g id="COUNT_1">^1</xliff:g> ಹೆಚ್ಚುವರಿ ಐಟಂಗಳು</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ನೊಂದಿಗೆ ಅಪ್ಲಿಕೇಶನ್‌ ಕ್ಯಾಷ್ ಅನ್ನು ತೆರವುಗೊಳಿಸುವುದೇ?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"ಕೆಲವು ತಾತ್ಕಾಲಿಕ ಫೈಲ್‌ಗಳನ್ನು ತೆರವುಗೊಳಿಸಲು <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ಬಯಸುತ್ತಿದೆ. ಸಮ್ಮತಿಸುವುದರಿಂದ ಬ್ಯಾಟರಿ ಅಥವಾ ಡೇಟಾ ಬಳಕೆಯನ್ನು ಹೆಚ್ಚಿಸಬಹುದು."</string>
+    <string name="allow" msgid="8885707816848569619">"ಅನುಮತಿಸಿ"</string>
+    <string name="deny" msgid="6040983710442068936">"ನಿರಾಕರಿಸಿ"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">ಈ <xliff:g id="COUNT">^2</xliff:g> ಆಡಿಯೋ ಫೈಲ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು <xliff:g id="APP_NAME_1">^1</xliff:g> ಗೆ ಅನುಮತಿಸುವುದೇ?</item>
       <item quantity="other">ಈ <xliff:g id="COUNT">^2</xliff:g> ಆಡಿಯೋ ಫೈಲ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು <xliff:g id="APP_NAME_1">^1</xliff:g> ಗೆ ಅನುಮತಿಸುವುದೇ?</item>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 1618e26..2baf6bc 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">그 외 항목 <xliff:g id="COUNT_1">^1</xliff:g>개</item>
       <item quantity="one">그 외 항목 <xliff:g id="COUNT_0">^1</xliff:g>개</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>에서 앱 캐시를 삭제하도록 허용할까요?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>에서 일부 임시 파일을 삭제하려고 합니다. 허용하면 배터리 또는 데이터 사용량이 증가할 수 있습니다."</string>
+    <string name="allow" msgid="8885707816848569619">"허용"</string>
+    <string name="deny" msgid="6040983710442068936">"거부"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g>에서 오디오 파일 <xliff:g id="COUNT">^2</xliff:g>개를 변경하도록 허용하시겠습니까?</item>
       <item quantity="one"><xliff:g id="APP_NAME_0">^1</xliff:g>에서 이 오디오 파일을 변경하도록 허용하시겠습니까?</item>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 246240a..d943c8d 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Дагы <xliff:g id="COUNT_1">^1</xliff:g> нерсе</item>
       <item quantity="one">Дагы <xliff:g id="COUNT_0">^1</xliff:g> нерсе</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> колдонмонун кэшин тазаласынбы?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> айрым убактылуу файлдарды өчүргөнү жатат. Кабыл алынса, батарея тез отуруп же Интернет трафиги көп сарпталышы мүмкүн."</string>
+    <string name="allow" msgid="8885707816848569619">"Уруксат берүү"</string>
+    <string name="deny" msgid="6040983710442068936">"Тыюу салуу"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> бул <xliff:g id="COUNT">^2</xliff:g> аудио файлды өзгөртсүнбү?</item>
       <item quantity="one"><xliff:g id="APP_NAME_0">^1</xliff:g> бул аудио файлды өзгөртсүнбү?</item>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index e9694e7..d2e3763 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -35,14 +35,10 @@
       <item quantity="one">Un vēl <xliff:g id="COUNT_1">^1</xliff:g> vienums</item>
       <item quantity="other">Un vēl <xliff:g id="COUNT_1">^1</xliff:g> vienumi</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Vai notīrīt lietotnes <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> kešatmiņu?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"Lietotne <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vēlas iegūt atļauju notīrīt dažus pagaidu failus. Piešķirot šo atļauju, var tikt palielināts akumulatora vai datu lietojums."</string>
+    <string name="allow" msgid="8885707816848569619">"Atļaut"</string>
+    <string name="deny" msgid="6040983710442068936">"Neatļaut"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="zero">Vai atļaujat lietotnei <xliff:g id="APP_NAME_1">^1</xliff:g> mainīt <xliff:g id="COUNT">^2</xliff:g> audio failus?</item>
       <item quantity="one">Vai atļaujat lietotnei <xliff:g id="APP_NAME_1">^1</xliff:g> mainīt <xliff:g id="COUNT">^2</xliff:g> audio failu?</item>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 37f5858..c5c541e 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other"><xliff:g id="COUNT_1">^1</xliff:g> അധിക ഇനങ്ങൾ കൂടി</item>
       <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> അധിക ഇനം കൂടി</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ഉപയോഗിച്ച് ആപ്പ് കാഷെ മായ്ക്കണോ?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> എന്നതിന് കുറച്ച് താൽക്കാലിക ഫയലുകൾ മായ്ക്കണമെന്നുണ്ട്. സ്വീകരിക്കുന്നത്, ബാറ്ററിയുടെയോ ഡാറ്റയുടെയോ ഉപയോഗിക്കാനുള്ള സമയം വർദ്ധിപ്പിച്ചേക്കാം."</string>
+    <string name="allow" msgid="8885707816848569619">"അനുവദിക്കൂ"</string>
+    <string name="deny" msgid="6040983710442068936">"നിരസിക്കുക"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="COUNT">^2</xliff:g> ഓഡിയോ ഫയലുകൾ മാറ്റാൻ <xliff:g id="APP_NAME_1">^1</xliff:g> എന്നതിനെ അനുവദിക്കണോ?</item>
       <item quantity="one">ഈ ഓഡിയോ ഫയൽ മാറ്റാൻ <xliff:g id="APP_NAME_0">^1</xliff:g> എന്നതിനെ അനുവദിക്കണോ?</item>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 12062c7..19bedfb 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Нэмээд нэмэлт <xliff:g id="COUNT_1">^1</xliff:g> зүйл</item>
       <item quantity="one">Нэмээд нэмэлт <xliff:g id="COUNT_0">^1</xliff:g> зүйл</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>-н тусламжтай аппын завсрын санах ойг арилгах уу?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> зарим түр хугацааны файлыг арилгахыг хүсэж байна. Зөвшөөрснөөр батарей эсвэл дата хэрэглээг өсгөж болзошгүй."</string>
+    <string name="allow" msgid="8885707816848569619">"Зөвшөөрөх"</string>
+    <string name="deny" msgid="6040983710442068936">"Татгалзах"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g>-д <xliff:g id="COUNT">^2</xliff:g> аудио файл өөрчлөхийг зөвшөөрөх үү?</item>
       <item quantity="one"><xliff:g id="APP_NAME_0">^1</xliff:g>-д энэ аудио файлыг өөрчлөхийг зөвшөөрөх үү?</item>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index a2b8fab..d8da282 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">आणखी <xliff:g id="COUNT_1">^1</xliff:g> अतिरिक्त आयटम</item>
       <item quantity="one">आणखी <xliff:g id="COUNT_0">^1</xliff:g> अतिरिक्त आयटम</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> वापरून ॲप कॅशे साफ करायचे आहे का?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ला काही तात्पुरत्या फाइल साफ करायच्या आहेत. स्वीकारल्यामुळे बॅटरी किंवा डेटा कदाचित वापर वाढू शकतो."</string>
+    <string name="allow" msgid="8885707816848569619">"अनुमती द्या"</string>
+    <string name="deny" msgid="6040983710442068936">"नकार द्या"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> ला <xliff:g id="COUNT">^2</xliff:g> ऑडिओ फाइल बदलण्याची परवानगी द्यायची आहे का?</item>
       <item quantity="one"><xliff:g id="APP_NAME_0">^1</xliff:g> ला ही ऑडिओ फाइल बदलण्याची परवानगी द्यायची आहे का?</item>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index f1cbbf9..3064842 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Serta <xliff:g id="COUNT_1">^1</xliff:g> item tambahan</item>
       <item quantity="one">Serta <xliff:g id="COUNT_0">^1</xliff:g> item tambahan</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Kosongkan cache apl dengan <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> mahu mengosongkan beberapa fail sementara. Penerimaan mungkin meningkatkan penggunaan bateri atau data."</string>
+    <string name="allow" msgid="8885707816848569619">"Benarkan"</string>
+    <string name="deny" msgid="6040983710442068936">"Tolak"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Benarkan <xliff:g id="APP_NAME_1">^1</xliff:g> menukar <xliff:g id="COUNT">^2</xliff:g> fail audio?</item>
       <item quantity="one">Benarkan <xliff:g id="APP_NAME_0">^1</xliff:g> menukar fail audio ini?</item>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 5c9aeb6..3b6dfd6 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">ထပ်ပေါင်းအရာ <xliff:g id="COUNT_1">^1</xliff:g> ခု အပါအဝင်</item>
       <item quantity="one">ထပ်ပေါင်းအရာ <xliff:g id="COUNT_0">^1</xliff:g> ခု အပါအဝင်</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> အတွက် အက်ပ်ကက်ရှ်များကို ရှင်းထုတ်မလား။"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> သည် ယာယီဖိုင်များမှ အချို့ကို ရှင်းထုတ်လိုသည်။ လက်ခံပါက ဘက်ထရီ သို့မဟုတ် ဒေတာအသုံးပြုမှု တိုးကောင်းတိုးနိုင်သည်။"</string>
+    <string name="allow" msgid="8885707816848569619">"ခွင့်ပြုရန်"</string>
+    <string name="deny" msgid="6040983710442068936">"ပယ်ရန်"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> အား အသံဖိုင် <xliff:g id="COUNT">^2</xliff:g> ခုကို ပြောင်းလဲခွင့်ပြုမလား။</item>
       <item quantity="one"><xliff:g id="APP_NAME_0">^1</xliff:g> အား ဤအသံဖိုင်ကို ပြောင်းလဲခွင့်ပြုမလား။</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index be052c1..cfaee01 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Pluss <xliff:g id="COUNT_1">^1</xliff:g> elementer til</item>
       <item quantity="one">Pluss <xliff:g id="COUNT_0">^1</xliff:g> element til</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Vil du tømme appbufferen med <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vil slette noen midlertidige filer. Hvis du aksepterer, kan batteri- eller databruken økes."</string>
+    <string name="allow" msgid="8885707816848569619">"Tillat"</string>
+    <string name="deny" msgid="6040983710442068936">"Avvis"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Vil du la <xliff:g id="APP_NAME_1">^1</xliff:g> endre <xliff:g id="COUNT">^2</xliff:g> lydfiler?</item>
       <item quantity="one">Vil du la <xliff:g id="APP_NAME_0">^1</xliff:g> endre denne lydfilen?</item>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 8e17b57..c88a1c9 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">थप <xliff:g id="COUNT_1">^1</xliff:g> वटा अतिरिक्त वस्तु</item>
       <item quantity="one">थप <xliff:g id="COUNT_0">^1</xliff:g> अतिरिक्त वस्तु</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> को सहायताले अनुप्रयोगको क्यास मेटाउने हो?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> केही अस्थायी फाइलहरू मेटाउन चाहन्छ। अनुमति दिनुले ब्याट्री वा डेटाको खपत बढ्न सक्छ।"</string>
+    <string name="allow" msgid="8885707816848569619">"अनुमति दिनुहोस्"</string>
+    <string name="deny" msgid="6040983710442068936">"अस्वीकार गर्नुहोस्"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> लाई <xliff:g id="COUNT">^2</xliff:g> वटा अडियो फाइल परिवर्तन गर्न दिने हो?</item>
       <item quantity="one"><xliff:g id="APP_NAME_0">^1</xliff:g> लाई यो अडियो फाइल परिवर्तन गर्न दिने हो?</item>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index a43dc1a..ea8c070 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">ଅଧିକ <xliff:g id="COUNT_1">^1</xliff:g>ଟି ଅତିରିକ୍ତ ଆଇଟମ୍</item>
       <item quantity="one">ଅଧିକ <xliff:g id="COUNT_0">^1</xliff:g>ଟି ଅତିରିକ୍ତ ଆଇଟମ୍</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ସହ ଆପ୍ କେଚ୍ ଖାଲି କରିବେ?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> କିଛି ଅସ୍ଥାୟୀ ଫାଇଲ୍ ଖାଲି କରିବାକୁ ଚାହୁଁଛି। ସ୍ୱୀକାର କରିବା ଦ୍ୱାରା ବ୍ୟାଟେରୀ ବା ଡାଟା ବ୍ୟବହାର ବଢ଼ିପାରେ।"</string>
+    <string name="allow" msgid="8885707816848569619">"ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="deny" msgid="6040983710442068936">"ପ୍ରତ୍ୟାଖ୍ୟାନ କରନ୍ତୁ"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="COUNT">^2</xliff:g>ଟି ଅଡିଓ ଫାଇଲ୍‌କୁ ବଦଳେଇବା ପାଇଁ <xliff:g id="APP_NAME_1">^1</xliff:g>କୁ ଅନୁମତି ଦେବେ?</item>
       <item quantity="one">ଏହି ଅଡିଓ ଫାଇଲ୍‌କୁ ବଦଳେଇବା ପାଇଁ <xliff:g id="APP_NAME_0">^1</xliff:g>କୁ ଅନୁମତି ଦେବେ?</item>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 23a36f6..accd11b 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">ਇਸ ਤੋਂ ਇਲਾਵਾ <xliff:g id="COUNT_1">^1</xliff:g> ਵਾਧੂ ਆਈਟਮ</item>
       <item quantity="other">ਇਸ ਤੋਂ ਇਲਾਵਾ <xliff:g id="COUNT_1">^1</xliff:g> ਵਾਧੂ ਆਈਟਮਾਂ</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"ਕੀ <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ਨਾਲ ਐਪ ਕੈਸ਼ੇ ਕਲੀਅਰ ਕਰਨਾ ਹੈ?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ਕੁਝ ਅਸਥਾਈ ਫ਼ਾਈਲਾਂ ਕਲੀਅਰ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ। ਸਵੀਕਾਰ ਕਰਨ ਨਾਲ ਬੈਟਰੀ ਜਾਂ ਡਾਟੇ ਦੀ ਵਰਤੋਂ ਵਧ ਸਕਦੀ ਹੈ।"</string>
+    <string name="allow" msgid="8885707816848569619">"ਆਗਿਆ ਦਿਓ"</string>
+    <string name="deny" msgid="6040983710442068936">"ਮਨ੍ਹਾ ਕਰੋ"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">ਕੀ <xliff:g id="APP_NAME_1">^1</xliff:g> ਨੂੰ <xliff:g id="COUNT">^2</xliff:g> ਆਡੀਓ ਫ਼ਾਈਲ ਨੂੰ ਬਦਲਣ ਦੇਣਾ ਹੈ?</item>
       <item quantity="other">ਕੀ <xliff:g id="APP_NAME_1">^1</xliff:g> ਨੂੰ <xliff:g id="COUNT">^2</xliff:g> ਆਡੀਓ ਫ਼ਾਈਲਾਂ ਨੂੰ ਬਦਲਣ ਦੇਣਾ ਹੈ?</item>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index ceda3c2..9993149 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -36,14 +36,10 @@
       <item quantity="other">I <xliff:g id="COUNT_1">^1</xliff:g> dodatkowego elementu</item>
       <item quantity="one">I <xliff:g id="COUNT_0">^1</xliff:g> dodatkowy element</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Zezwolić aplikacji <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> na wyczyszczenie pamięci podręcznej aplikacji?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"Aplikacja <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> chce usunąć niektóre pliki tymczasowe. Udzielenie zgody może zwiększyć wykorzystanie baterii lub danych."</string>
+    <string name="allow" msgid="8885707816848569619">"Zezwól"</string>
+    <string name="deny" msgid="6040983710442068936">"Odmów"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="few">Zezwolić aplikacji <xliff:g id="APP_NAME_1">^1</xliff:g> na zmienianie <xliff:g id="COUNT">^2</xliff:g> plików audio?</item>
       <item quantity="many">Zezwolić aplikacji <xliff:g id="APP_NAME_1">^1</xliff:g> na zmienianie <xliff:g id="COUNT">^2</xliff:g> plików audio?</item>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index efc6c0b..895ed93 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">Mais <xliff:g id="COUNT_1">^1</xliff:g> item extra</item>
       <item quantity="other">Mais <xliff:g id="COUNT_1">^1</xliff:g> itens extras</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Apagar cache de apps com <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"O app <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> quer apagar alguns arquivos temporários. Se você aceitar, o uso de dados ou da bateria poderá aumentar."</string>
+    <string name="allow" msgid="8885707816848569619">"Permitir"</string>
+    <string name="deny" msgid="6040983710442068936">"Negar"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Permitir que o app <xliff:g id="APP_NAME_1">^1</xliff:g> mude <xliff:g id="COUNT">^2</xliff:g> arquivo de áudio?</item>
       <item quantity="other">Permitir que o app <xliff:g id="APP_NAME_1">^1</xliff:g> mude <xliff:g id="COUNT">^2</xliff:g> arquivos de áudio?</item>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 9bedb45..58c1a82 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">E <xliff:g id="COUNT_1">^1</xliff:g> itens adicionais</item>
       <item quantity="one">E <xliff:g id="COUNT_0">^1</xliff:g> item adicional</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Pretende limpar a cache da app com a app <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"A app <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> pretende limpar alguns ficheiros temporários. Se aceitar, pode aumentar a utilização da bateria ou dos dados."</string>
+    <string name="allow" msgid="8885707816848569619">"Permitir"</string>
+    <string name="deny" msgid="6040983710442068936">"Recusar"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Pretende permitir que a aplicação <xliff:g id="APP_NAME_1">^1</xliff:g> altere <xliff:g id="COUNT">^2</xliff:g> ficheiros de áudio?</item>
       <item quantity="one">Pretende permitir que a aplicação <xliff:g id="APP_NAME_0">^1</xliff:g> altere este ficheiro de áudio?</item>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index efc6c0b..895ed93 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">Mais <xliff:g id="COUNT_1">^1</xliff:g> item extra</item>
       <item quantity="other">Mais <xliff:g id="COUNT_1">^1</xliff:g> itens extras</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Apagar cache de apps com <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"O app <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> quer apagar alguns arquivos temporários. Se você aceitar, o uso de dados ou da bateria poderá aumentar."</string>
+    <string name="allow" msgid="8885707816848569619">"Permitir"</string>
+    <string name="deny" msgid="6040983710442068936">"Negar"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Permitir que o app <xliff:g id="APP_NAME_1">^1</xliff:g> mude <xliff:g id="COUNT">^2</xliff:g> arquivo de áudio?</item>
       <item quantity="other">Permitir que o app <xliff:g id="APP_NAME_1">^1</xliff:g> mude <xliff:g id="COUNT">^2</xliff:g> arquivos de áudio?</item>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 0c3fc33..e96baf6 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -35,14 +35,10 @@
       <item quantity="other">Și încă <xliff:g id="COUNT_1">^1</xliff:g> de elemente</item>
       <item quantity="one">Și încă <xliff:g id="COUNT_0">^1</xliff:g> element</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Goliți memoria cache a aplicației cu <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vrea să șteargă fișiere temporare. Acceptarea poate spori utilizarea bateriei sau a datelor."</string>
+    <string name="allow" msgid="8885707816848569619">"Permiteți"</string>
+    <string name="deny" msgid="6040983710442068936">"Refuzați"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="few">Lăsați <xliff:g id="APP_NAME_1">^1</xliff:g> să modifice <xliff:g id="COUNT">^2</xliff:g> fișiere audio?</item>
       <item quantity="other">Lăsați <xliff:g id="APP_NAME_1">^1</xliff:g> să modifice <xliff:g id="COUNT">^2</xliff:g> de fișiere audio?</item>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 6dfd99e..c8bd51e 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -36,14 +36,10 @@
       <item quantity="many">и ещё <xliff:g id="COUNT_1">^1</xliff:g> объектов</item>
       <item quantity="other">и ещё <xliff:g id="COUNT_1">^1</xliff:g> объекта</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Очистить кеш приложения \"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>\"?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"Приложение \"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>\" запрашивает разрешение на удаление временных файлов. Это может увеличить расход заряда батареи или объем трафика."</string>
+    <string name="allow" msgid="8885707816848569619">"Разрешить"</string>
+    <string name="deny" msgid="6040983710442068936">"Запретить"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Разрешить приложению \"<xliff:g id="APP_NAME_1">^1</xliff:g>\" изменить <xliff:g id="COUNT">^2</xliff:g> аудиофайл?</item>
       <item quantity="few">Разрешить приложению \"<xliff:g id="APP_NAME_1">^1</xliff:g>\" изменить <xliff:g id="COUNT">^2</xliff:g> аудиофайла?</item>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index f526e25..7c9082e 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">සහ අමතර අයිතම <xliff:g id="COUNT_1">^1</xliff:g></item>
       <item quantity="other">සහ අමතර අයිතම <xliff:g id="COUNT_1">^1</xliff:g></item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> සමග යෙදුම් කෑෂ් හිස් කරන්නද?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> සමහර තාවකාලික ගොනු හිස් කිරීමට කැමතියි. පිළිගැනීම බැටරිය හෝ දත්ත භාවිතය වැඩි කළ හැකිය."</string>
+    <string name="allow" msgid="8885707816848569619">"ඉඩ දෙන්න"</string>
+    <string name="deny" msgid="6040983710442068936">"ප්‍රතික්ෂේප කරන්න"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one"><xliff:g id="APP_NAME_1">^1</xliff:g>ට ඕඩියෝ ගොනු <xliff:g id="COUNT">^2</xliff:g> වෙනස් කිරීමට ඉඩ දෙන්නද?</item>
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g>ට ඕඩියෝ ගොනු <xliff:g id="COUNT">^2</xliff:g> වෙනස් කිරීමට ඉඩ දෙන්නද?</item>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index a00d747..b3c86d3 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -36,14 +36,10 @@
       <item quantity="other">A <xliff:g id="COUNT_1">^1</xliff:g> ďalších položiek</item>
       <item quantity="one">A <xliff:g id="COUNT_0">^1</xliff:g> ďalšia položka</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Chcete vymazať vyrovnávaciu pamäť aplikácie s povolením <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> chce vymazať niekoľko dočasných súborov. Prijatím môžete zvýšiť spotrebu batérie alebo dát."</string>
+    <string name="allow" msgid="8885707816848569619">"Povoliť"</string>
+    <string name="deny" msgid="6040983710442068936">"Zamietnuť"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="few">Chcete povoliť aplikácii <xliff:g id="APP_NAME_1">^1</xliff:g> zmeniť <xliff:g id="COUNT">^2</xliff:g> zvukové súbory?</item>
       <item quantity="many">Let <xliff:g id="APP_NAME_1">^1</xliff:g> change <xliff:g id="COUNT">^2</xliff:g> audio files?</item>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index b53576a..03724f5 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -36,14 +36,10 @@
       <item quantity="few">In še <xliff:g id="COUNT_1">^1</xliff:g> dodatni elementi</item>
       <item quantity="other">In še <xliff:g id="COUNT_1">^1</xliff:g> dodatnih elementov</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Želite izbrisati predpomnilnik aplikacij z aplikacijo <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"Aplikacija <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> želi izbrisati nekaj začasnih datotek. Če to sprejmete, se bo poraba energije baterije ali prenosa podatkov morda povečala."</string>
+    <string name="allow" msgid="8885707816848569619">"Dovoli"</string>
+    <string name="deny" msgid="6040983710442068936">"Zavrni"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Želite dovoliti, da aplikacija <xliff:g id="APP_NAME_1">^1</xliff:g> spremeni <xliff:g id="COUNT">^2</xliff:g> zvočno datoteko?</item>
       <item quantity="two">Želite dovoliti, da aplikacija <xliff:g id="APP_NAME_1">^1</xliff:g> spremeni <xliff:g id="COUNT">^2</xliff:g> zvočni datoteki?</item>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index a284613..c15e456 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Dhe <xliff:g id="COUNT_1">^1</xliff:g> artikuj të tjerë</item>
       <item quantity="one">Dhe <xliff:g id="COUNT_0">^1</xliff:g> artikull tjetër</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Të pastrohet memoria specifike e aplikacionit me <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> dëshiron të pastrojë disa skedarë të përkohshëm. Pranimi mund të rrisë përdorimin e baterisë ose të të dhënave."</string>
+    <string name="allow" msgid="8885707816848569619">"Lejo"</string>
+    <string name="deny" msgid="6040983710442068936">"Refuzo"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Të lejohet që <xliff:g id="APP_NAME_1">^1</xliff:g> t\'i ndryshojë <xliff:g id="COUNT">^2</xliff:g> skedarë audio?</item>
       <item quantity="one">Të lejohet që <xliff:g id="APP_NAME_0">^1</xliff:g> ta ndryshojë këtë skedar audio?</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 4fe1978..fd8f51e 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">och <xliff:g id="COUNT_1">^1</xliff:g> objekt till</item>
       <item quantity="one">och <xliff:g id="COUNT_0">^1</xliff:g> objekt till</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Vill du rensa appens cacheminne med <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vill ta bort några tillfälliga filer. Batteri- eller dataförbrukningen kan öka om du tillåter detta."</string>
+    <string name="allow" msgid="8885707816848569619">"Tillåt"</string>
+    <string name="deny" msgid="6040983710442068936">"Neka"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Vill du tillåta att <xliff:g id="APP_NAME_1">^1</xliff:g> ändrar <xliff:g id="COUNT">^2</xliff:g> ljudfilerna?</item>
       <item quantity="one">Vill du tillåta att <xliff:g id="APP_NAME_0">^1</xliff:g> ändrar ljudfilen?</item>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 3966ef8..f4d3346 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">దానితో పాటు, <xliff:g id="COUNT_1">^1</xliff:g> అదనపు అంశాలు</item>
       <item quantity="one">దానితో పాటు, <xliff:g id="COUNT_0">^1</xliff:g> అదనపు అంశం</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>తో యాప్ కాష్‌ను క్లియర్ చేయాలా?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"కొన్ని తాత్కాలిక ఫైల్స్‌ను క్లియర్ చేయడానికి <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> అనుమతి కోరుతోంది. అనుమతించడం వలన బ్యాటరీ, డేటా వినియోగం పెరగవచ్చు."</string>
+    <string name="allow" msgid="8885707816848569619">"అనుమతించు"</string>
+    <string name="deny" msgid="6040983710442068936">"నిరాకరించు"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> <xliff:g id="COUNT">^2</xliff:g> ఆడియో ఫైల్‌లను మార్చడానికి అనుమతిస్తారా?</item>
       <item quantity="one"><xliff:g id="APP_NAME_0">^1</xliff:g> ఈ ఆడియో ఫైల్‌ను మార్చడానికి అనుమతిస్తారా?</item>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 098ce0a..dde0e9a 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">และอีก <xliff:g id="COUNT_1">^1</xliff:g> รายการ</item>
       <item quantity="one">และอีก <xliff:g id="COUNT_0">^1</xliff:g> รายการ</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"ล้างแคชของแอปด้วย <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ไหม"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ต้องการล้างไฟล์ชั่วคราวบางไฟล์ การยอมรับอาจทำให้มีการใช้แบตเตอรี่หรืออินเทอร์เน็ตเพิ่มขึ้น"</string>
+    <string name="allow" msgid="8885707816848569619">"อนุญาต"</string>
+    <string name="deny" msgid="6040983710442068936">"ปฏิเสธ"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">ให้ <xliff:g id="APP_NAME_1">^1</xliff:g> เปลี่ยนแปลงไฟล์เสียง <xliff:g id="COUNT">^2</xliff:g> ไฟล์ไหม</item>
       <item quantity="one">ให้ <xliff:g id="APP_NAME_0">^1</xliff:g> เปลี่ยนแปลงไฟล์เสียงนี้ไหม</item>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index b00baa6..afefdc0 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">At <xliff:g id="COUNT_1">^1</xliff:g> pang item</item>
       <item quantity="other">At <xliff:g id="COUNT_1">^1</xliff:g> pang item</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"I-clear ang cache ng app gamit ang <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"Gustong mag-clear ng <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ng ilang pansamantalang file. Baka tumaas ang paggamit sa baterya o data kapag tinanggap ito."</string>
+    <string name="allow" msgid="8885707816848569619">"Payagan"</string>
+    <string name="deny" msgid="6040983710442068936">"Tanggihan"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Payagan ang <xliff:g id="APP_NAME_1">^1</xliff:g> na baguhin ang <xliff:g id="COUNT">^2</xliff:g> audio file?</item>
       <item quantity="other">Payagan ang <xliff:g id="APP_NAME_1">^1</xliff:g> na baguhin ang <xliff:g id="COUNT">^2</xliff:g> na audio file?</item>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 5d70cc4..d44e784 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Ayrıca <xliff:g id="COUNT_1">^1</xliff:g> ek öğe</item>
       <item quantity="one">Ayrıca <xliff:g id="COUNT_0">^1</xliff:g> ek öğe</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ile uygulama önbelleği temizlensin mi?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> bazı geçici dosyaları temizlemek istiyor. Bunu kabul etmek pil veya veri kullanımını artırabilir."</string>
+    <string name="allow" msgid="8885707816848569619">"İzin ver"</string>
+    <string name="deny" msgid="6040983710442068936">"Reddet"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> uygulaması <xliff:g id="COUNT">^2</xliff:g> ses dosyasını değiştirsin mi?</item>
       <item quantity="one"><xliff:g id="APP_NAME_0">^1</xliff:g> uygulaması bu ses dosyasını değiştirsin mi?</item>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 7504e5e..7cb47f8 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -36,14 +36,10 @@
       <item quantity="many">Ще <xliff:g id="COUNT_1">^1</xliff:g> додаткових елементів</item>
       <item quantity="other">Ще <xliff:g id="COUNT_1">^1</xliff:g> додаткового елемента</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Очистити кеш за допомогою додатка <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"Додаток <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> хоче видалити деякі тимчасові файли. Це може підвищити використання заряду акумулятора або даних."</string>
+    <string name="allow" msgid="8885707816848569619">"Дозволити"</string>
+    <string name="deny" msgid="6040983710442068936">"Відмовити"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Дозволити додатку <xliff:g id="APP_NAME_1">^1</xliff:g> змінити <xliff:g id="COUNT">^2</xliff:g> аудіофайл?</item>
       <item quantity="few">Дозволити додатку <xliff:g id="APP_NAME_1">^1</xliff:g> змінити <xliff:g id="COUNT">^2</xliff:g> аудіофайли?</item>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 55d528d..2afd006 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">مزید <xliff:g id="COUNT_1">^1</xliff:g> اضافی آئٹمز</item>
       <item quantity="one">مزید <xliff:g id="COUNT_0">^1</xliff:g> اضافی آئٹم</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> سے ایپ کی کیش صاف کریں؟"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> کچھ عارضی فائلز کو صاف کرنا چاہتا ہے۔ قبول کرنے سے بیٹری یا ڈیٹا کا استعمال بڑھ سکتا ہے۔"</string>
+    <string name="allow" msgid="8885707816848569619">"اجازت دیں"</string>
+    <string name="deny" msgid="6040983710442068936">"مسترد کریں"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> کے <xliff:g id="COUNT">^2</xliff:g> آڈیو فائلز کو تبدیل کرنے دیں؟</item>
       <item quantity="one"><xliff:g id="APP_NAME_0">^1</xliff:g> کے اس آڈیو فائل کو تبدیل کرنے دیں؟</item>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index fd605b8..8fb5478 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -36,7 +36,7 @@
     </plurals>
     <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Ilova keshi <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> orqali tozalansinmi?"</string>
     <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ayrim vaqtincha fayllarni tozalamoqchi. Ruxsat berilsa, batareya yoki trafik sarfi tejaladi."</string>
-    <string name="allow" msgid="8885707816848569619">"Ruxsat berish"</string>
+    <string name="allow" msgid="8885707816848569619">"Ruxsat"</string>
     <string name="deny" msgid="6040983710442068936">"Rad etish"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other"><xliff:g id="APP_NAME_1">^1</xliff:g> <xliff:g id="COUNT">^2</xliff:g> ta audio faylni oʻzgartirsinmi?</item>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index b0c1524..205761f 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">Và <xliff:g id="COUNT_1">^1</xliff:g> mục khác</item>
       <item quantity="one">Và <xliff:g id="COUNT_0">^1</xliff:g> mục khác</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Xóa bộ nhớ đệm của ứng dụng bằng <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> muốn xóa một số tệp tạm thời. Việc chấp nhận có thể làm tăng mức sử dụng pin hoặc dữ liệu."</string>
+    <string name="allow" msgid="8885707816848569619">"Cho phép"</string>
+    <string name="deny" msgid="6040983710442068936">"Từ chối"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">Cho phép <xliff:g id="APP_NAME_1">^1</xliff:g> thay đổi <xliff:g id="COUNT">^2</xliff:g> tệp âm thanh?</item>
       <item quantity="one">Cho phép <xliff:g id="APP_NAME_0">^1</xliff:g> thay đổi tệp âm thanh này?</item>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 80e824a..a5b94c2 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="other">还有 <xliff:g id="COUNT_1">^1</xliff:g> 项</item>
       <item quantity="one">还有 <xliff:g id="COUNT_0">^1</xliff:g> 项</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"要使用<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>清除应用缓存吗?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>请求清除一些临时文件。接受请求可能会增加电量或流量消耗。"</string>
+    <string name="allow" msgid="8885707816848569619">"允许"</string>
+    <string name="deny" msgid="6040983710442068936">"拒绝"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="other">要允许<xliff:g id="APP_NAME_1">^1</xliff:g>更改这 <xliff:g id="COUNT">^2</xliff:g> 个音频文件吗?</item>
       <item quantity="one">要允许<xliff:g id="APP_NAME_0">^1</xliff:g>更改这个音频文件吗?</item>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index e7ebb87..b1c4085 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -34,14 +34,10 @@
       <item quantity="one">Kanye no-<xliff:g id="COUNT_1">^1</xliff:g> izinto ezingeziwe</item>
       <item quantity="other">Kanye no-<xliff:g id="COUNT_1">^1</xliff:g> izinto ezingeziwe</item>
     </plurals>
-    <!-- no translation found for cache_clearing_dialog_title (543177167845854283) -->
-    <skip />
-    <!-- no translation found for cache_clearing_dialog_text (425995541409682360) -->
-    <skip />
-    <!-- no translation found for allow (8885707816848569619) -->
-    <skip />
-    <!-- no translation found for deny (6040983710442068936) -->
-    <skip />
+    <string name="cache_clearing_dialog_title" msgid="543177167845854283">"Sula inqolobane yohlelo lokusebenza nge-<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>?"</string>
+    <string name="cache_clearing_dialog_text" msgid="425995541409682360">"I-<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ingathanda ukusula amanye amafayela esikhashana. Ukwamukela kungenyusa ukusetshenziswa kwebhethri noma kwedatha."</string>
+    <string name="allow" msgid="8885707816848569619">"Vumela"</string>
+    <string name="deny" msgid="6040983710442068936">"Nqaba"</string>
     <plurals name="permission_write_audio" formatted="false" msgid="3539998638571517689">
       <item quantity="one">Vumela i-<xliff:g id="APP_NAME_1">^1</xliff:g> ukushintsha amafayela omsindo angu-<xliff:g id="COUNT">^2</xliff:g>?</item>
       <item quantity="other">Vumela i-<xliff:g id="APP_NAME_1">^1</xliff:g> ukushintsha amafayela omsindo angu-<xliff:g id="COUNT">^2</xliff:g>?</item>
diff --git a/src/com/android/providers/media/DatabaseHelper.java b/src/com/android/providers/media/DatabaseHelper.java
index e95bc83..29360c5 100644
--- a/src/com/android/providers/media/DatabaseHelper.java
+++ b/src/com/android/providers/media/DatabaseHelper.java
@@ -700,9 +700,9 @@
         }
 
         if (!internal) {
-            db.execSQL("CREATE VIEW audio_playlists AS SELECT _id,_data,name,date_added,"
-                    + "date_modified,owner_package_name,_hash,is_pending,date_expires,is_trashed,"
-                    + "volume_name FROM files WHERE media_type=4");
+            db.execSQL("CREATE VIEW audio_playlists AS SELECT "
+                    + String.join(",", getProjectionMap(Audio.Playlists.class).keySet())
+                    + " FROM files WHERE media_type=4");
         }
 
         db.execSQL("CREATE VIEW searchhelpertitle AS SELECT * FROM audio ORDER BY title_key");
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
index 9dcc738..c29e344 100644
--- a/src/com/android/providers/media/MediaProvider.java
+++ b/src/com/android/providers/media/MediaProvider.java
@@ -244,6 +244,15 @@
     private static final String DIRECTORY_MEDIA = "media";
 
     /**
+     * Specify what default directories the caller gets full access to. By default, the caller
+     * shouldn't get full access to any default dirs.
+     * But for example, we do an exception for System Gallery apps and allow them full access to:
+     * DCIM, Pictures, Movies.
+     */
+    private static final String INCLUDED_DEFAULT_DIRECTORIES =
+            "android:included-default-directories";
+
+    /**
      * Set of {@link Cursor} columns that refer to raw filesystem paths.
      */
     private static final ArrayMap<String, Object> sDataColumns = new ArrayMap<>();
@@ -1087,9 +1096,10 @@
      * A list with ["/"] is returned if the path is not indexed by MediaProvider database or
      * calling package is a legacy app and has appropriate storage permissions for the given path.
      * In both scenarios file names should be obtained from lower file system.
-     * A list with empty string[""] is returned if the package requesting legacy behavior doesn't
-     * have storage permissions for the given path.
-     * Directory names are always obtained from lower file system.
+     * A list with empty string[""] is returned if the calling package doesn't have access to the
+     * given path.
+     *
+     * <p>Directory names are always obtained from lower file system.
      *
      * Called from JNI in jni/MediaProviderWrapper.cpp
      */
@@ -1098,22 +1108,25 @@
         final LocalCallingIdentity token = clearLocalCallingIdentity(
                 LocalCallingIdentity.fromExternal(getContext(), uid));
         try {
-            if (shouldBypassFuseRestrictions(/*forWrite*/ false, path)) {
-                return new String[] {"/"};
-            }
-
-            // Allow legacy app without storage permissions to list files only in its external
-            // media directory.
-            if (isCallingPackageRequestingLegacy()) {
-                final String appSpecificDir = extractPathOwnerPackageName(path);
-                if ((appSpecificDir != null &&
-                        isCallingIdentitySharedPackageName(appSpecificDir))) {
+            final String appSpecificDir = extractPathOwnerPackageName(path);
+            // Apps are allowed to list files only in their own external directory.
+            if (appSpecificDir != null) {
+                if (isCallingIdentitySharedPackageName(appSpecificDir)) {
                     return new String[] {"/"};
                 } else {
                     return new String[] {""};
                 }
             }
 
+            if (shouldBypassFuseRestrictions(/*forWrite*/ false, path)) {
+                return new String[] {"/"};
+            }
+            // Legacy apps that made is this far don't have the right storage permission and hence
+            // are not allowed to access anything other than their external app directory
+            if (isCallingPackageRequestingLegacy()) {
+                return new String[] {""};
+            }
+
             // Get relative path for the contents of given directory.
             String relativePath = extractRelativePathForDirectory(path);
 
@@ -1171,15 +1184,21 @@
                 mimeType.startsWith(supportedPrimaryMimeType));
     }
 
+    private boolean updateDatabaseForFuseRename(@NonNull DatabaseHelper helper,
+            @NonNull String oldPath, @NonNull String newPath, @NonNull ContentValues values) {
+        return updateDatabaseForFuseRename(helper, oldPath, newPath, values, Bundle.EMPTY);
+    }
+
     /**
      * Updates database entry for given {@code path} with {@code values}
      */
     private boolean updateDatabaseForFuseRename(@NonNull DatabaseHelper helper,
-            @NonNull String oldPath, @NonNull String newPath, @NonNull ContentValues values) {
+            @NonNull String oldPath, @NonNull String newPath, @NonNull ContentValues values,
+            @NonNull Bundle qbExtras) {
         final Uri uriOldPath = Files.getContentUriForPath(oldPath);
         boolean allowHidden = isCallingPackageAllowedHidden();
         final SQLiteQueryBuilder qbForUpdate = getQueryBuilder(TYPE_UPDATE,
-                matchUri(uriOldPath, allowHidden), uriOldPath, Bundle.EMPTY, null);
+                matchUri(uriOldPath, allowHidden), uriOldPath, qbExtras, null);
         final String selection = MediaColumns.DATA + " =? ";
         int count = 0;
         boolean retryUpdateWithReplace = false;
@@ -1199,7 +1218,7 @@
             // write permission for newPath, delete existing database entry and retry update.
             final Uri uriNewPath = Files.getContentUriForPath(oldPath);
             final SQLiteQueryBuilder qbForDelete = getQueryBuilder(TYPE_DELETE,
-                    matchUri(uriNewPath, allowHidden), uriNewPath, Bundle.EMPTY, null);
+                    matchUri(uriNewPath, allowHidden), uriNewPath, qbExtras, null);
             if (qbForDelete.delete(helper, selection, new String[] {newPath}) == 1) {
                 Log.i(TAG, "Retrying database update after deleting conflicting entry");
                 count = qbForUpdate.update(helper, values, selection, new String[]{oldPath});
@@ -1233,6 +1252,19 @@
         return values;
     }
 
+    private ArrayList<String> getIncludedDefaultDirectories() {
+        final ArrayList<String> includedDefaultDirs = new ArrayList<>();
+        if (checkCallingPermissionVideo(/*forWrite*/ true, null)) {
+            includedDefaultDirs.add(DIRECTORY_DCIM);
+            includedDefaultDirs.add(DIRECTORY_PICTURES);
+            includedDefaultDirs.add(DIRECTORY_MOVIES);
+        } else if (checkCallingPermissionImages(/*forWrite*/ true, null)) {
+            includedDefaultDirs.add(DIRECTORY_DCIM);
+            includedDefaultDirs.add(DIRECTORY_PICTURES);
+        }
+        return includedDefaultDirs;
+    }
+
     /**
      * Gets all files in the given {@code path} and subdirectories of the given {@code path}.
      */
@@ -1264,6 +1296,20 @@
      */
     private ArrayList<String> getWritableFilesForRenameDirectory(String oldPath, String newPath)
             throws IllegalArgumentException {
+        // Try a simple check to see if the caller has full access to the given collections first
+        // before falling back to performing a query to probe for access.
+        final String oldRelativePath = extractRelativePathForDirectory(oldPath);
+        final String newRelativePath = extractRelativePathForDirectory(newPath);
+        boolean hasFullAccessToOldPath = false;
+        boolean hasFullAccessToNewPath = false;
+        for (String defaultDir : getIncludedDefaultDirectories()) {
+            if (oldRelativePath.startsWith(defaultDir)) hasFullAccessToOldPath = true;
+            if (newRelativePath.startsWith(defaultDir)) hasFullAccessToNewPath = true;
+        }
+        if (hasFullAccessToNewPath && hasFullAccessToOldPath) {
+            return getAllFilesForRenameDirectory(oldPath);
+        }
+
         final int countAllFilesInDirectory;
         final String selection = MediaColumns.RELATIVE_PATH + " REGEXP '^" +
                 extractRelativePathForDirectory(oldPath) + "/?.*' and mime_type not like 'null'";
@@ -1370,11 +1416,14 @@
 
         helper.beginTransaction();
         try {
+            final Bundle qbExtras = new Bundle();
+            qbExtras.putStringArrayList(INCLUDED_DEFAULT_DIRECTORIES,
+                    getIncludedDefaultDirectories());
             for (String filePath : fileList) {
                 final String newFilePath = newPath + "/" + filePath;
                 final String mimeType = MimeUtils.resolveMimeType(new File(newFilePath));
                 if(!updateDatabaseForFuseRename(helper, oldPath + "/" + filePath, newFilePath,
-                        getContentValuesForFuseRename(newFilePath, mimeType, mimeType))) {
+                        getContentValuesForFuseRename(newFilePath, mimeType, mimeType), qbExtras)) {
                     Log.e(TAG, "Calling package doesn't have write permission to rename file.");
                     return OsConstants.EPERM;
                 }
@@ -1492,19 +1541,11 @@
         final LocalCallingIdentity token = clearLocalCallingIdentity(
                 LocalCallingIdentity.fromExternal(getContext(), uid));
         try {
-            if (shouldBypassFuseRestrictions(/*forWrite*/ true, oldPath)
-                    && shouldBypassFuseRestrictions(/*forWrite*/ true, newPath)) {
-                return renameUncheckedForFuse(oldPath, newPath);
-            }
+            final String oldPathPackageName = extractPathOwnerPackageName(oldPath);
+            final String newPathPackageName = extractPathOwnerPackageName(newPath);
 
-            // Allow legacy app without storage permission to rename files only in its external
-            // media directory. External files & obb directories are bind mounted and don't go
-            // through FUSE.
-            if (isCallingPackageRequestingLegacy()) {
-                final String oldPathPackageName = extractPathOwnerPackageName(oldPath);
-                final String newPathPackageName = extractPathOwnerPackageName(newPath);
-                if (oldPathPackageName != null && newPathPackageName != null &&
-                        isCallingIdentitySharedPackageName(oldPathPackageName) &&
+            if (oldPathPackageName != null && newPathPackageName != null) {
+                if (isCallingIdentitySharedPackageName(oldPathPackageName) &&
                         isCallingIdentitySharedPackageName(newPathPackageName)) {
                     return renameInLowerFs(oldPath, newPath);
                 } else {
@@ -1512,6 +1553,16 @@
                 }
             }
 
+            if (shouldBypassFuseRestrictions(/*forWrite*/ true, oldPath)
+                    && shouldBypassFuseRestrictions(/*forWrite*/ true, newPath)) {
+                return renameUncheckedForFuse(oldPath, newPath);
+            }
+            // Legacy apps that made is this far don't have the right storage permission and hence
+            // are not allowed to access anything other than their external app directory
+            if (isCallingPackageRequestingLegacy()) {
+                return OsConstants.EACCES;
+            }
+
             final String[] oldRelativePath = sanitizePath(extractRelativePath(oldPath));
             final String[] newRelativePath = sanitizePath(extractRelativePath(newPath));
             if (oldRelativePath.length == 0 || newRelativePath.length == 0) {
@@ -3041,13 +3092,17 @@
         }
         final String sharedPackages = getSharedPackages(callingPackage);
         final boolean allowGlobal = checkCallingPermissionGlobal(uri, forWrite);
-        final boolean allowLegacy = checkCallingPermissionLegacyWrite(uri, forWrite, callingPackage);
+        final boolean allowLegacy =
+                forWrite ? isCallingPackageLegacyWrite() : isCallingPackageLegacyRead();
         final boolean allowLegacyRead = allowLegacy && !forWrite;
 
         int matchPending = extras.getInt(QUERY_ARG_MATCH_PENDING, MATCH_DEFAULT);
         int matchTrashed = extras.getInt(QUERY_ARG_MATCH_TRASHED, MATCH_DEFAULT);
         int matchFavorite = extras.getInt(QUERY_ARG_MATCH_FAVORITE, MATCH_DEFAULT);
 
+        final ArrayList<String> includedDefaultDirs = extras.getStringArrayList(
+                INCLUDED_DEFAULT_DIRECTORIES);
+
         // Handle callers using legacy arguments
         if (MediaStore.getIncludePending(uri)) matchPending = MATCH_INCLUDE;
 
@@ -3457,6 +3512,11 @@
                                 FileColumns.MEDIA_TYPE_IMAGE));
                         options.add("media_type=0 AND mime_type LIKE 'image/%'");
                     }
+                    if (includedDefaultDirs != null) {
+                        for (String defaultDir : includedDefaultDirs) {
+                            options.add(FileColumns.RELATIVE_PATH + " LIKE '" + defaultDir + "/%'");
+                        }
+                    }
                 }
                 if (options.size() > 0) {
                     appendWhereStandalone(qb, TextUtils.join(" OR ", options));
@@ -5263,12 +5323,6 @@
 
         long[] res = new long[0];
         try {
-            if (!isRedactionNeeded()
-                    || shouldBypassFuseRestrictions(/*forWrite*/ false, path)) {
-                return res;
-            }
-
-
             // Returns null if the path doesn't correspond to an app specific directory
             final String appSpecificDir = extractPathOwnerPackageName(path);
 
@@ -5278,6 +5332,11 @@
                 }
             }
 
+            if (!isRedactionNeeded()
+                    || shouldBypassFuseRestrictions(/*forWrite*/ false, path)) {
+                return res;
+            }
+
             path = getAbsoluteSanitizedPath(path);
             if (path == null) {
                 throw new IOException("Invalid path " + path);
@@ -5391,10 +5450,6 @@
         final LocalCallingIdentity token =
                 clearLocalCallingIdentity(LocalCallingIdentity.fromExternal(getContext(), uid));
         try {
-            if (shouldBypassFuseRestrictions(forWrite, path)) {
-                return 0;
-            }
-
             // Returns null if the path doesn't correspond to an app specific directory
             final String appSpecificDir = extractPathOwnerPackageName(path);
 
@@ -5407,6 +5462,9 @@
                 }
             }
 
+            if (shouldBypassFuseRestrictions(forWrite, path)) {
+                return 0;
+            }
             // Legacy apps that made is this far don't have the right storage permission and hence
             // are not allowed to access anything other than their external app directory
             if (isCallingPackageRequestingLegacy()) {
@@ -5577,10 +5635,6 @@
         final LocalCallingIdentity token =
                 clearLocalCallingIdentity(LocalCallingIdentity.fromExternal(getContext(), uid));
         try {
-            if (shouldBypassFuseRestrictions(/*forWrite*/ true, path)) {
-                return 0;
-            }
-
             // Returns null if the path doesn't correspond to an app specific directory
             final String appSpecificDir = extractPathOwnerPackageName(path);
 
@@ -5594,7 +5648,11 @@
                 }
             }
 
-            // Legacy apps that made it this far don't have the required permissions
+            if (shouldBypassFuseRestrictions(/*forWrite*/ true, path)) {
+                return 0;
+            }
+            // Legacy apps that made is this far don't have the right storage permission and hence
+            // are not allowed to access anything other than their external app directory
             if (isCallingPackageRequestingLegacy()) {
                 return OsConstants.EPERM;
             }
@@ -5659,12 +5717,6 @@
         final LocalCallingIdentity token =
                 clearLocalCallingIdentity(LocalCallingIdentity.fromExternal(getContext(), uid));
         try {
-            if (shouldBypassFuseRestrictions(/*forWrite*/ true, path)) {
-                // TODO(b/145737191) Legacy apps don't expect FuseDaemon to update database.
-                // Inserting/deleting the database entry might break app functionality.
-                return deleteFileUnchecked(path);
-            }
-
             // Check if app is deleting a file under an app specific directory
             final String appSpecificDir = extractPathOwnerPackageName(path);
 
@@ -5678,6 +5730,11 @@
                 }
             }
 
+            if (shouldBypassFuseRestrictions(/*forWrite*/ true, path)) {
+                // TODO(b/145737191) Legacy apps don't expect FuseDaemon to update database.
+                // Inserting/deleting the database entry might break app functionality.
+                return deleteFileUnchecked(path);
+            }
             // Legacy apps that made is this far don't have the right storage permission and hence
             // are not allowed to access anything other than their external app directory
             if (isCallingPackageRequestingLegacy()) {
@@ -5735,10 +5792,6 @@
         final LocalCallingIdentity token =
                 clearLocalCallingIdentity(LocalCallingIdentity.fromExternal(getContext(), uid));
         try {
-            if (shouldBypassFuseRestrictions(/*forWrite*/ true, path)) {
-                return 0;
-            }
-
             // Returns null if the path doesn't correspond to an app specific directory
             final String appSpecificDir = extractPathOwnerPackageName(path);
 
@@ -5752,6 +5805,9 @@
                 }
             }
 
+            if (shouldBypassFuseRestrictions(/*forWrite*/ true, path)) {
+                return 0;
+            }
             // Legacy apps that made is this far don't have the right storage permission and hence
             // are not allowed to access anything other than their external app directory
             if (isCallingPackageRequestingLegacy()) {
@@ -5795,10 +5851,6 @@
         final LocalCallingIdentity token =
                 clearLocalCallingIdentity(LocalCallingIdentity.fromExternal(getContext(), uid));
         try {
-            if (shouldBypassFuseRestrictions(/*forWrite*/ false, path)) {
-                return 0;
-            }
-
             // Returns null if the path doesn't correspond to an app specific directory
             final String appSpecificDir = extractPathOwnerPackageName(path);
 
@@ -5815,6 +5867,9 @@
                 }
             }
 
+            if (shouldBypassFuseRestrictions(/*forWrite*/ false, path)) {
+                return 0;
+            }
             // Legacy apps that made is this far don't have the right storage permission and hence
             // are not allowed to access anything other than their external app directory
             if (isCallingPackageRequestingLegacy()) {
@@ -5864,11 +5919,6 @@
         return false;
     }
 
-    private boolean checkCallingPermissionLegacyWrite(Uri uri, boolean forWrite,
-            String callingPackage) {
-        return mCallingIdentity.get().hasPermission(PERMISSION_IS_LEGACY_WRITE);
-    }
-
     @Deprecated
     private boolean checkCallingPermissionAudio(boolean forWrite, String callingPackage) {
         if (forWrite) {
diff --git a/src/com/android/providers/media/fuse/ExternalStorageServiceImpl.java b/src/com/android/providers/media/fuse/ExternalStorageServiceImpl.java
index 4ce2d2b..3fd1b4f 100644
--- a/src/com/android/providers/media/fuse/ExternalStorageServiceImpl.java
+++ b/src/com/android/providers/media/fuse/ExternalStorageServiceImpl.java
@@ -28,6 +28,7 @@
 
 import com.android.providers.media.MediaProvider;
 
+import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -42,8 +43,8 @@
 
     @Override
     public void onStartSession(String sessionId, /* @SessionFlag */ int flag,
-            @NonNull ParcelFileDescriptor deviceFd, @NonNull String upperFileSystemPath,
-            @NonNull String lowerFileSystemPath) {
+            @NonNull ParcelFileDescriptor deviceFd, @NonNull File upperFileSystemPath,
+            @NonNull File lowerFileSystemPath) {
         MediaProvider mediaProvider = getMediaProvider();
 
         synchronized (sLock) {
@@ -55,7 +56,7 @@
                 // REMOUNT_MODE_PASS_THROUGH which guarantees that all /storage paths are bind
                 // mounts of the lower filesystem.
                 FuseDaemon daemon = new FuseDaemon(mediaProvider, this, deviceFd, sessionId,
-                        upperFileSystemPath);
+                        upperFileSystemPath.getPath());
                 daemon.start();
                 sFuseDaemons.put(sessionId, daemon);
             }
diff --git a/tests/jni/FuseDaemonTest/host/src/com/android/tests/fused/host/FuseDaemonHostTest.java b/tests/jni/FuseDaemonTest/host/src/com/android/tests/fused/host/FuseDaemonHostTest.java
index a4ab22b..10b063a 100644
--- a/tests/jni/FuseDaemonTest/host/src/com/android/tests/fused/host/FuseDaemonHostTest.java
+++ b/tests/jni/FuseDaemonTest/host/src/com/android/tests/fused/host/FuseDaemonHostTest.java
@@ -49,14 +49,13 @@
 
     @Before
     public void setup() throws Exception {
-        executeShellCommand("mkdir /sdcard/Android/data/com.android.shell");
-        executeShellCommand("mkdir /sdcard/Android/data/com.android.shell/files");
+        executeShellCommand("mkdir /sdcard/Android/data/com.android.shell -m 2770");
+        executeShellCommand("mkdir /sdcard/Android/data/com.android.shell/files -m 2770");
     }
 
     @After
     public void tearDown() throws Exception {
         executeShellCommand("rm -r /sdcard/Android/data/com.android.shell");
-        executeShellCommand("rm -r /sdcard/Android/data/com.android.shell/files");
     }
 
     @Test
@@ -249,4 +248,9 @@
     public void testQueryOtherAppsFiles() throws Exception {
         runDeviceTest("testQueryOtherAppsFiles");
     }
+
+    @Test
+    public void testSystemGalleryCanRenameImageAndVideoDirs() throws Exception {
+        runDeviceTest("testSystemGalleryCanRenameImageAndVideoDirs");
+    }
 }
diff --git a/tests/jni/FuseDaemonTest/src/com/android/tests/fused/FilePathAccessTest.java b/tests/jni/FuseDaemonTest/src/com/android/tests/fused/FilePathAccessTest.java
index 6911a95..a6c8ef7 100644
--- a/tests/jni/FuseDaemonTest/src/com/android/tests/fused/FilePathAccessTest.java
+++ b/tests/jni/FuseDaemonTest/src/com/android/tests/fused/FilePathAccessTest.java
@@ -1481,6 +1481,57 @@
         }
     }
 
+    /**
+     * Test that System Gallery app can rename any directory under the default directories
+     * designated for images and videos, even if they contain other apps' contents that
+     * System Gallery doesn't have read access to.
+     */
+    @Test
+    public void testSystemGalleryCanRenameImageAndVideoDirs() throws Exception {
+        final File dirInDcim = new File(DCIM_DIR, TEST_DIRECTORY_NAME);
+        final File dirInPictures = new File(PICTURES_DIR, TEST_DIRECTORY_NAME);
+        final File dirInPodcasts = new File(PODCASTS_DIR, TEST_DIRECTORY_NAME);
+        final File otherAppImageFile1 = new File(dirInDcim, "other_" + IMAGE_FILE_NAME);
+        final File otherAppVideoFile1 = new File(dirInDcim, "other_" + VIDEO_FILE_NAME);
+        final File otherAppPdfFile1 = new File(dirInDcim, "other_" + NONMEDIA_FILE_NAME);
+        final File otherAppImageFile2 = new File(dirInPictures, "other_" + IMAGE_FILE_NAME);
+        final File otherAppVideoFile2 = new File(dirInPictures, "other_" + VIDEO_FILE_NAME);
+        final File otherAppPdfFile2 = new File(dirInPictures, "other_" + NONMEDIA_FILE_NAME);
+        try {
+            assertThat(dirInDcim.mkdir()).isTrue();
+
+            executeShellCommand("touch " + otherAppPdfFile1);
+
+            installApp(TEST_APP_A, true);
+            allowAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
+
+            assertCreateFilesAs(TEST_APP_A, otherAppImageFile1, otherAppVideoFile1);
+
+            // System gallery privileges don't go beyond DCIM, Movies and Pictures boundaries.
+            assertCantRenameDirectory(dirInDcim, dirInPodcasts, /*oldFilesList*/null);
+
+            // Rename should succeed, but System Gallery still can't access that PDF file!
+            assertCanRenameDirectory(dirInDcim, dirInPictures,
+                    new File[] {otherAppImageFile1, otherAppVideoFile1},
+                    new File[] {otherAppImageFile2, otherAppVideoFile2});
+            assertThat(getFileRowIdFromDatabase(otherAppPdfFile1)).isEqualTo(-1);
+            assertThat(getFileRowIdFromDatabase(otherAppPdfFile2)).isEqualTo(-1);
+        } finally {
+            executeShellCommand("rm " + otherAppPdfFile1);
+            executeShellCommand("rm " + otherAppPdfFile2);
+            otherAppImageFile1.delete();
+            otherAppImageFile2.delete();
+            otherAppVideoFile1.delete();
+            otherAppVideoFile2.delete();
+            otherAppPdfFile1.delete();
+            otherAppPdfFile2.delete();
+            dirInDcim.delete();
+            dirInPictures.delete();
+            uninstallAppNoThrow(TEST_APP_A);
+            denyAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
+        }
+    }
+
     private static void assertCantQueryFile(File file) {
         assertThat(getFileUri(file)).isNull();
     }