Merge "Import translations. DO NOT MERGE ANYWHERE" into sc-dev
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index b52b2e4..8b75911 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -221,7 +221,7 @@
     <item msgid="2362840341195111674">"Deixar o sistema decidir"</item>
   </string-array>
   <string-array name="app_ops_categories">
-    <item msgid="528483497841471005">"Local"</item>
+    <item msgid="528483497841471005">"Localização"</item>
     <item msgid="7786376598377098070">"Pessoal"</item>
     <item msgid="7707692387382449990">"Mensagens"</item>
     <item msgid="2235402926760712958">"Mídia"</item>
@@ -295,9 +295,9 @@
     <item msgid="2553974920157061225">"volume da acessibilidade"</item>
   </string-array>
   <string-array name="app_ops_labels">
-    <item msgid="7780927354556651567">"Local"</item>
-    <item msgid="364182753727575631">"Local"</item>
-    <item msgid="5728662879095632194">"Local"</item>
+    <item msgid="7780927354556651567">"Localização"</item>
+    <item msgid="364182753727575631">"Localização"</item>
+    <item msgid="5728662879095632194">"Localização"</item>
     <item msgid="4104617224667554750">"Vibração"</item>
     <item msgid="1623646715189708947">"Ler contatos"</item>
     <item msgid="5060760609109972207">"Modificar contatos"</item>
@@ -305,9 +305,9 @@
     <item msgid="2348589304974534308">"Modificar registro de chamadas"</item>
     <item msgid="4089146706115315300">"Ler agenda"</item>
     <item msgid="1305780729690198918">"Modificar agenda"</item>
-    <item msgid="3461096740171440592">"Local"</item>
+    <item msgid="3461096740171440592">"Localização"</item>
     <item msgid="6657539556093198883">"Postar notificação"</item>
-    <item msgid="8112680908829570200">"Local"</item>
+    <item msgid="8112680908829570200">"Localização"</item>
     <item msgid="5019327268152480733">"Chamar telefone"</item>
     <item msgid="8001855901083066554">"Ler SMS/MMS"</item>
     <item msgid="187744670643011148">"Escrever SMS/MMS"</item>
@@ -336,8 +336,8 @@
     <item msgid="8608084169623998854">"Volume da notificação"</item>
     <item msgid="7948784184567841794">"Volume do Bluetooth"</item>
     <item msgid="1148968792599973150">"Permanecer ativo"</item>
-    <item msgid="8482874682804856549">"Local"</item>
-    <item msgid="5186169827582545242">"Local"</item>
+    <item msgid="8482874682804856549">"Localização"</item>
+    <item msgid="5186169827582545242">"Localização"</item>
     <item msgid="6122293931012635638">"Obter estatísticas de uso"</item>
     <item msgid="2526677383312751932">"Ativar/desativar o som do microfone"</item>
     <item msgid="4000577305179914546">"Mostrar notificação toast"</item>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index b52b2e4..8b75911 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -221,7 +221,7 @@
     <item msgid="2362840341195111674">"Deixar o sistema decidir"</item>
   </string-array>
   <string-array name="app_ops_categories">
-    <item msgid="528483497841471005">"Local"</item>
+    <item msgid="528483497841471005">"Localização"</item>
     <item msgid="7786376598377098070">"Pessoal"</item>
     <item msgid="7707692387382449990">"Mensagens"</item>
     <item msgid="2235402926760712958">"Mídia"</item>
@@ -295,9 +295,9 @@
     <item msgid="2553974920157061225">"volume da acessibilidade"</item>
   </string-array>
   <string-array name="app_ops_labels">
-    <item msgid="7780927354556651567">"Local"</item>
-    <item msgid="364182753727575631">"Local"</item>
-    <item msgid="5728662879095632194">"Local"</item>
+    <item msgid="7780927354556651567">"Localização"</item>
+    <item msgid="364182753727575631">"Localização"</item>
+    <item msgid="5728662879095632194">"Localização"</item>
     <item msgid="4104617224667554750">"Vibração"</item>
     <item msgid="1623646715189708947">"Ler contatos"</item>
     <item msgid="5060760609109972207">"Modificar contatos"</item>
@@ -305,9 +305,9 @@
     <item msgid="2348589304974534308">"Modificar registro de chamadas"</item>
     <item msgid="4089146706115315300">"Ler agenda"</item>
     <item msgid="1305780729690198918">"Modificar agenda"</item>
-    <item msgid="3461096740171440592">"Local"</item>
+    <item msgid="3461096740171440592">"Localização"</item>
     <item msgid="6657539556093198883">"Postar notificação"</item>
-    <item msgid="8112680908829570200">"Local"</item>
+    <item msgid="8112680908829570200">"Localização"</item>
     <item msgid="5019327268152480733">"Chamar telefone"</item>
     <item msgid="8001855901083066554">"Ler SMS/MMS"</item>
     <item msgid="187744670643011148">"Escrever SMS/MMS"</item>
@@ -336,8 +336,8 @@
     <item msgid="8608084169623998854">"Volume da notificação"</item>
     <item msgid="7948784184567841794">"Volume do Bluetooth"</item>
     <item msgid="1148968792599973150">"Permanecer ativo"</item>
-    <item msgid="8482874682804856549">"Local"</item>
-    <item msgid="5186169827582545242">"Local"</item>
+    <item msgid="8482874682804856549">"Localização"</item>
+    <item msgid="5186169827582545242">"Localização"</item>
     <item msgid="6122293931012635638">"Obter estatísticas de uso"</item>
     <item msgid="2526677383312751932">"Ativar/desativar o som do microfone"</item>
     <item msgid="4000577305179914546">"Mostrar notificação toast"</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 26b6506..0d88aae 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1211,7 +1211,7 @@
     <!-- Text shown in fingerprint enroll when we didn't observe progress for a few seconds. [CHAR LIMIT=100] -->
     <string name="security_settings_fingerprint_enroll_lift_touch_again">Lift finger, then touch sensor again</string>
     <!-- Text shown during fingerprint enrollment to indicate bad sensor calibration. [CHAR LIMIT=100] -->
-    <string name="security_settings_fingerprint_bad_calibration">Device repaired improperly. Fingerprint disabled.</string>
+    <string name="security_settings_fingerprint_bad_calibration">Can\u2019t use fingerprint sensor. Visit a repair provider</string>
 
     <!-- Text shown when "Add fingerprint" button is disabled -->
     <string name="fingerprint_add_max">You can add up to <xliff:g id="count" example="5">%d</xliff:g> fingerprints</string>
@@ -4393,6 +4393,25 @@
     <!-- Header on first screen of choose work profile pattern flow [CHAR LIMIT=40] -->
     <string name="lockpassword_choose_your_profile_pattern_header">Set a work pattern</string>
 
+    <!-- Header on first screen of choose device password flow [CHAR LIMIT=NONE] -->
+    <string name="lockpassword_choose_password_description" product="phone">For added security, set a password to unlock the phone</string>
+    <!-- Header on first screen of choose device PIN flow [CHAR LIMIT=NONE] -->
+    <string name="lockpassword_choose_pin_description" product="phone">For added security, set a PIN to unlock the phone</string>
+    <!-- Header on first screen of choose device pattern flow [CHAR LIMIT=NONE] -->
+    <string name="lockpattern_choose_pattern_description" product="phone">For added security, set a pattern to unlock the phone</string>
+    <!-- Header on first screen of choose device password flow [CHAR LIMIT=NONE] -->
+    <string name="lockpassword_choose_password_description" product="tablet">For added security, set a password to unlock the tablet</string>
+    <!-- Header on first screen of choose device PIN flow [CHAR LIMIT=NONE] -->
+    <string name="lockpassword_choose_pin_description" product="tablet">For added security, set a PIN to unlock the tablet</string>
+    <!-- Header on first screen of choose device pattern flow [CHAR LIMIT=NONE] -->
+    <string name="lockpattern_choose_pattern_description" product="tablet">For added security, set a pattern to unlock the tablet</string>
+    <!-- Header on first screen of choose device password flow [CHAR LIMIT=NONE] -->
+    <string name="lockpassword_choose_password_description" product="default">For added security, set a password to unlock the device</string>
+    <!-- Header on first screen of choose device PIN flow [CHAR LIMIT=NONE] -->
+    <string name="lockpassword_choose_pin_description" product="default">For added security, set a PIN to unlock the device</string>
+    <!-- Header on first screen of choose device pattern flow [CHAR LIMIT=NONE] -->
+    <string name="lockpattern_choose_pattern_description" product="default">For added security, set a pattern to unlock the device</string>
+
     <!-- Header on first screen of choose password/PIN as backup for fingerprint flow. If this string cannot be translated in under 40 characters, please translate "Set fingerprint backup" [CHAR LIMIT=40] -->
     <string name="lockpassword_choose_your_password_header_for_fingerprint">To use fingerprint, set password</string>
     <!-- Header on first screen of choose pattern as backup for fingerprint flow. If this string cannot be translated in under 40 characters, please translate "Set fingerprint backup" [CHAR LIMIT=40] -->
@@ -4438,12 +4457,12 @@
     <!-- Header on first screen of choose password/PIN as backup for Face Unlock flow. If this string cannot be translated in under 40 characters, please translate "Set Face Unlock backup" [CHAR LIMIT=40] -->
     <string name="lockpassword_choose_your_pin_header_for_face">To use Face Unlock, set PIN</string>
 
-    <!-- Header on first screen of choose password/PIN as backup for biometric unlock flow. If this string cannot be translated in under 40 characters, please translate "Set biometric unlock backup" [CHAR LIMIT=40] -->
-    <string name="lockpassword_choose_your_password_header_for_biometrics">To use biometrics, set password</string>
-    <!-- Header on first screen of choose pattern as backup for biometric unlock flow. If this string cannot be translated in under 40 characters, please translate "Set biometric unlock backup" [CHAR LIMIT=40] -->
-    <string name="lockpassword_choose_your_pattern_header_for_biometrics">To use biometrics, set pattern</string>
-    <!-- Header on first screen of choose password/PIN as backup for biometric unlock flow. If this string cannot be translated in under 40 characters, please translate "Set biometric unlock backup" [CHAR LIMIT=40] -->
-    <string name="lockpassword_choose_your_pin_header_for_biometrics">To use biometrics, set PIN</string>
+    <!-- Title of a screen that asks the user to set up a password as a backup for Face or Fingerprint Unlock. If this string can't be translated in 60 characters, please translate "Set a backup password". [CHAR LIMIT=60] -->
+    <string name="lockpassword_choose_your_password_header_for_biometrics">Set a password to use face or fingerprint</string>
+    <!-- Title of a screen that asks the user to set up a pattern as a backup for Face or Fingerprint Unlock. If this string can't be translated in 60 characters, please translate "Set a backup pattern". [CHAR LIMIT=60] -->
+    <string name="lockpassword_choose_your_pattern_header_for_biometrics">Set a pattern to use face or fingerprint</string>
+    <!-- Title of a screen that asks the user to set up a PIN as a backup for Face or Fingerprint Unlock. If this string can't be translated in 60 characters, please translate "Set a backup PIN". [CHAR LIMIT=60] -->
+    <string name="lockpassword_choose_your_pin_header_for_biometrics">Set a PIN to use face or fingerprint</string>
 
 
     <!-- Text for button that the user should tap when they forgot their work profile password [CHAR LIMIT=40] -->
diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
index e6b389a..8460879 100644
--- a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
@@ -50,13 +50,24 @@
     }
 
     public static Set<String> getPackagesRequestingNotificationPolicyAccess() {
+        final String[] PERM = {
+                android.Manifest.permission.ACCESS_NOTIFICATION_POLICY
+        };
+        return getPackagesWithPermissions(PERM);
+    }
+
+    public static Set<String> getPackagesWithManageNotifications() {
+        final String[] PERM = {
+                android.Manifest.permission.MANAGE_NOTIFICATIONS
+        };
+        return getPackagesWithPermissions(PERM);
+    }
+
+    public static Set<String> getPackagesWithPermissions(String[] permList) {
         final ArraySet<String> requestingPackages = new ArraySet<>();
         try {
-            final String[] PERM = {
-                    android.Manifest.permission.ACCESS_NOTIFICATION_POLICY
-            };
             final ParceledListSlice list = AppGlobals.getPackageManager()
-                    .getPackagesHoldingPermissions(PERM, 0 /*flags*/,
+                    .getPackagesHoldingPermissions(permList, 0 /*flags*/,
                             ActivityManager.getCurrentUser());
             final List<PackageInfo> pkgs = list.getList();
             if (pkgs != null) {
diff --git a/src/com/android/settings/notification/zen/ZenAccessSettings.java b/src/com/android/settings/notification/zen/ZenAccessSettings.java
index e83983f..1a9fb16 100644
--- a/src/com/android/settings/notification/zen/ZenAccessSettings.java
+++ b/src/com/android/settings/notification/zen/ZenAccessSettings.java
@@ -17,6 +17,7 @@
 package com.android.settings.notification.zen;
 
 import android.annotation.Nullable;
+import android.app.ActivityManager;
 import android.app.NotificationManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -117,6 +118,7 @@
         }
         ArraySet<String> autoApproved = new ArraySet<>();
         autoApproved.addAll(mNoMan.getEnabledNotificationListenerPackages());
+        autoApproved.addAll(ZenAccessController.getPackagesWithManageNotifications());
         Collections.sort(apps, new PackageItemInfo.DisplayNameComparator(mPkgMan));
         for (ApplicationInfo app : apps) {
             final String pkg = app.packageName;