Merge "Import translations. DO NOT MERGE"
diff --git a/apex/blobstore/framework/java/android/app/blob/BlobStoreManagerFrameworkInitializer.java b/apex/blobstore/framework/java/android/app/blob/BlobStoreManagerFrameworkInitializer.java
index 6e6d6ae..56c419a 100644
--- a/apex/blobstore/framework/java/android/app/blob/BlobStoreManagerFrameworkInitializer.java
+++ b/apex/blobstore/framework/java/android/app/blob/BlobStoreManagerFrameworkInitializer.java
@@ -26,7 +26,7 @@
 public class BlobStoreManagerFrameworkInitializer {
     /** Register the BlobStoreManager wrapper class */
     public static void initialize() {
-        SystemServiceRegistry.registerCachedService(
+        SystemServiceRegistry.registerContextAwareService(
                 Context.BLOB_STORE_SERVICE, BlobStoreManager.class,
                 (context, service) ->
                         new BlobStoreManager(context, IBlobStoreManager.Stub.asInterface(service)));
diff --git a/apex/jobscheduler/framework/java/android/app/DeviceIdleFrameworkInitializer.java b/apex/jobscheduler/framework/java/android/app/DeviceIdleFrameworkInitializer.java
deleted file mode 100644
index c264531..0000000
--- a/apex/jobscheduler/framework/java/android/app/DeviceIdleFrameworkInitializer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app;
-
-import android.content.Context;
-import android.os.DeviceIdleManager;
-import android.os.IDeviceIdleController;
-
-/**
- * @hide
- */
-public class DeviceIdleFrameworkInitializer {
-    private static IDeviceIdleController sIDeviceIdleController;
-
-    public static void initialize() {
-        SystemServiceRegistry.registerCachedService(
-                Context.DEVICE_IDLE_CONTROLLER, DeviceIdleManager.class,
-                (context, b) -> new DeviceIdleManager(
-                        context, IDeviceIdleController.Stub.asInterface(b)));
-    }
-}
diff --git a/apex/jobscheduler/framework/java/android/app/job/JobSchedulerFrameworkInitializer.java b/apex/jobscheduler/framework/java/android/app/job/JobSchedulerFrameworkInitializer.java
index 175e5f2..f3ec5e5 100644
--- a/apex/jobscheduler/framework/java/android/app/job/JobSchedulerFrameworkInitializer.java
+++ b/apex/jobscheduler/framework/java/android/app/job/JobSchedulerFrameworkInitializer.java
@@ -19,14 +19,34 @@
 import android.app.JobSchedulerImpl;
 import android.app.SystemServiceRegistry;
 import android.content.Context;
+import android.os.DeviceIdleManager;
+import android.os.IDeviceIdleController;
 
 /**
+ * Class holding initialization code for the job scheduler module.
+ *
  * @hide
  */
 public class JobSchedulerFrameworkInitializer {
-    public static void initialize() {
+    private JobSchedulerFrameworkInitializer() {
+    }
+
+    /**
+     * Called by {@link SystemServiceRegistry}'s static initializer and registers
+     * {@link JobScheduler} and other services to {@link Context}, so
+     * {@link Context#getSystemService} can return them.
+     *
+     * <p>If this is called from other places, it throws a {@link IllegalStateException).
+     *
+     * TODO Make it a system API
+     */
+    public static void registerServiceWrappers() {
         SystemServiceRegistry.registerStaticService(
                 Context.JOB_SCHEDULER_SERVICE, JobScheduler.class,
                 (b) -> new JobSchedulerImpl(IJobScheduler.Stub.asInterface(b)));
+        SystemServiceRegistry.registerContextAwareService(
+                Context.DEVICE_IDLE_CONTROLLER, DeviceIdleManager.class,
+                (context, b) -> new DeviceIdleManager(
+                        context, IDeviceIdleController.Stub.asInterface(b)));
     }
 }
diff --git a/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java b/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java
index 4ee46f4..dfe7a90 100644
--- a/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java
+++ b/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java
@@ -1390,8 +1390,10 @@
     private static final int MSG_FINISH_IDLE_OP = 8;
     private static final int MSG_REPORT_TEMP_APP_WHITELIST_CHANGED = 9;
     private static final int MSG_SEND_CONSTRAINT_MONITORING = 10;
-    private static final int MSG_UPDATE_PRE_IDLE_TIMEOUT_FACTOR = 11;
-    private static final int MSG_RESET_PRE_IDLE_TIMEOUT_FACTOR = 12;
+    @VisibleForTesting
+    static final int MSG_UPDATE_PRE_IDLE_TIMEOUT_FACTOR = 11;
+    @VisibleForTesting
+    static final int MSG_RESET_PRE_IDLE_TIMEOUT_FACTOR = 12;
 
     final class MyHandler extends Handler {
         MyHandler(Looper looper) {
@@ -3327,8 +3329,7 @@
         mHandler.sendEmptyMessage(MSG_RESET_PRE_IDLE_TIMEOUT_FACTOR);
     }
 
-    @VisibleForTesting
-    void updatePreIdleFactor() {
+    private void updatePreIdleFactor() {
         synchronized (this) {
             if (!shouldUseIdleTimeoutFactorLocked()) {
                 return;
@@ -3350,8 +3351,7 @@
         }
     }
 
-    @VisibleForTesting
-    void maybeDoImmediateMaintenance() {
+    private void maybeDoImmediateMaintenance() {
         synchronized (this) {
             if (mState == STATE_IDLE) {
                 long duration = SystemClock.elapsedRealtime() - mIdleStartTime;
@@ -3377,6 +3377,7 @@
     void setIdleStartTimeForTest(long idleStartTime) {
         synchronized (this) {
             mIdleStartTime = idleStartTime;
+            maybeDoImmediateMaintenance();
         }
     }
 
diff --git a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
index a0615aa..8a00c83 100644
--- a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
+++ b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
@@ -1179,7 +1179,7 @@
         long token = Binder.clearCallingIdentity();
         synchronized (this) {
             if (mTelephony == null) {
-                mTelephony = TelephonyManager.from(mContext);
+                mTelephony = mContext.getSystemService(TelephonyManager.class);
             }
         }
         if (mTelephony != null) {
diff --git a/api/current.txt b/api/current.txt
index 7dccf7f..3361147 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -2035,7 +2035,7 @@
     field public static final int fingerprint_icon_content_description = 17039384; // 0x1040018
     field public static final int httpErrorBadUrl = 17039367; // 0x1040007
     field public static final int httpErrorUnsupportedScheme = 17039368; // 0x1040008
-    field public static final int no = 17039369; // 0x1040009
+    field @Deprecated public static final int no = 17039369; // 0x1040009
     field public static final int ok = 17039370; // 0x104000a
     field public static final int paste = 17039371; // 0x104000b
     field public static final int paste_as_plain_text = 17039385; // 0x1040019
@@ -2045,7 +2045,7 @@
     field public static final int status_bar_notification_info_overflow = 17039383; // 0x1040017
     field public static final int unknownName = 17039374; // 0x104000e
     field public static final int untitled = 17039375; // 0x104000f
-    field public static final int yes = 17039379; // 0x1040013
+    field @Deprecated public static final int yes = 17039379; // 0x1040013
   }
 
   public static final class R.style {
@@ -30526,6 +30526,9 @@
     field public static final int GROUP_OWNER_BAND_2GHZ = 1; // 0x1
     field public static final int GROUP_OWNER_BAND_5GHZ = 2; // 0x2
     field public static final int GROUP_OWNER_BAND_AUTO = 0; // 0x0
+    field public static final int GROUP_OWNER_INTENT_AUTO = -1; // 0xffffffff
+    field public static final int GROUP_OWNER_INTENT_MAX = 15; // 0xf
+    field public static final int GROUP_OWNER_INTENT_MIN = 0; // 0x0
     field public String deviceAddress;
     field public int groupOwnerIntent;
     field public android.net.wifi.WpsInfo wps;
@@ -30546,6 +30549,7 @@
     ctor public WifiP2pDevice();
     ctor public WifiP2pDevice(android.net.wifi.p2p.WifiP2pDevice);
     method public int describeContents();
+    method @Nullable public android.net.wifi.p2p.WifiP2pWfdInfo getWfdInfo();
     method public boolean isGroupOwner();
     method public boolean isServiceDiscoveryCapable();
     method public boolean wpsDisplaySupported();
@@ -30582,6 +30586,7 @@
     method public java.util.Collection<android.net.wifi.p2p.WifiP2pDevice> getClientList();
     method public int getFrequency();
     method public String getInterface();
+    method public int getNetworkId();
     method public String getNetworkName();
     method public android.net.wifi.p2p.WifiP2pDevice getOwner();
     method public String getPassphrase();
@@ -30706,6 +30711,28 @@
     method public void onUpnpServiceAvailable(java.util.List<java.lang.String>, android.net.wifi.p2p.WifiP2pDevice);
   }
 
+  public final class WifiP2pWfdInfo implements android.os.Parcelable {
+    ctor public WifiP2pWfdInfo();
+    ctor public WifiP2pWfdInfo(@Nullable android.net.wifi.p2p.WifiP2pWfdInfo);
+    method public int describeContents();
+    method public int getControlPort();
+    method public int getDeviceType();
+    method public int getMaxThroughput();
+    method public boolean isSessionAvailable();
+    method public boolean isWfdEnabled();
+    method public void setControlPort(int);
+    method public boolean setDeviceType(int);
+    method public void setMaxThroughput(int);
+    method public void setSessionAvailable(boolean);
+    method public void setWfdEnabled(boolean);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pWfdInfo> CREATOR;
+    field public static final int DEVICE_TYPE_PRIMARY_SINK = 1; // 0x1
+    field public static final int DEVICE_TYPE_SECONDARY_SINK = 2; // 0x2
+    field public static final int DEVICE_TYPE_SOURCE_OR_PRIMARY_SINK = 3; // 0x3
+    field public static final int DEVICE_TYPE_WFD_SOURCE = 0; // 0x0
+  }
+
 }
 
 package android.net.wifi.p2p.nsd {
@@ -39024,10 +39051,14 @@
     field public static final String ACTION_VPN_SETTINGS = "android.settings.VPN_SETTINGS";
     field public static final String ACTION_VR_LISTENER_SETTINGS = "android.settings.VR_LISTENER_SETTINGS";
     field public static final String ACTION_WEBVIEW_SETTINGS = "android.settings.WEBVIEW_SETTINGS";
+    field public static final String ACTION_WIFI_ADD_NETWORKS = "android.settings.WIFI_ADD_NETWORKS";
     field public static final String ACTION_WIFI_IP_SETTINGS = "android.settings.WIFI_IP_SETTINGS";
     field public static final String ACTION_WIFI_SETTINGS = "android.settings.WIFI_SETTINGS";
     field public static final String ACTION_WIRELESS_SETTINGS = "android.settings.WIRELESS_SETTINGS";
     field public static final String ACTION_ZEN_MODE_PRIORITY_SETTINGS = "android.settings.ZEN_MODE_PRIORITY_SETTINGS";
+    field public static final int ADD_WIFI_RESULT_ADD_OR_UPDATE_FAILED = 1; // 0x1
+    field public static final int ADD_WIFI_RESULT_ALREADY_EXISTS = 2; // 0x2
+    field public static final int ADD_WIFI_RESULT_SUCCESS = 0; // 0x0
     field public static final String AUTHORITY = "settings";
     field public static final String EXTRA_ACCOUNT_TYPES = "account_types";
     field public static final String EXTRA_AIRPLANE_MODE_ENABLED = "airplane_mode_enabled";
@@ -39040,6 +39071,8 @@
     field public static final String EXTRA_INPUT_METHOD_ID = "input_method_id";
     field public static final String EXTRA_NOTIFICATION_LISTENER_COMPONENT_NAME = "android.provider.extra.NOTIFICATION_LISTENER_COMPONENT_NAME";
     field public static final String EXTRA_SUB_ID = "android.provider.extra.SUB_ID";
+    field public static final String EXTRA_WIFI_CONFIGURATION_LIST = "android.provider.extra.WIFI_CONFIGURATION_LIST";
+    field public static final String EXTRA_WIFI_CONFIGURATION_RESULT_LIST = "android.provider.extra.WIFI_CONFIGURATION_RESULT_LIST";
     field public static final String INTENT_CATEGORY_USAGE_ACCESS_CONFIG = "android.intent.category.USAGE_ACCESS_CONFIG";
     field public static final String METADATA_USAGE_ACCESS_REASON = "android.settings.metadata.USAGE_ACCESS_REASON";
   }
diff --git a/api/system-current.txt b/api/system-current.txt
index aed13b7..412e095 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -57,6 +57,7 @@
     field public static final String CHANGE_DEVICE_IDLE_TEMP_WHITELIST = "android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST";
     field public static final String CLEAR_APP_USER_DATA = "android.permission.CLEAR_APP_USER_DATA";
     field public static final String CONFIGURE_DISPLAY_BRIGHTNESS = "android.permission.CONFIGURE_DISPLAY_BRIGHTNESS";
+    field public static final String CONFIGURE_WIFI_DISPLAY = "android.permission.CONFIGURE_WIFI_DISPLAY";
     field public static final String CONNECTIVITY_INTERNAL = "android.permission.CONNECTIVITY_INTERNAL";
     field public static final String CONNECTIVITY_USE_RESTRICTED_NETWORKS = "android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS";
     field public static final String CONTROL_DISPLAY_COLOR_TRANSFORMS = "android.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS";
@@ -125,8 +126,10 @@
     field public static final String NETWORK_CARRIER_PROVISIONING = "android.permission.NETWORK_CARRIER_PROVISIONING";
     field public static final String NETWORK_MANAGED_PROVISIONING = "android.permission.NETWORK_MANAGED_PROVISIONING";
     field public static final String NETWORK_SCAN = "android.permission.NETWORK_SCAN";
+    field public static final String NETWORK_SETTINGS = "android.permission.NETWORK_SETTINGS";
     field public static final String NETWORK_SETUP_WIZARD = "android.permission.NETWORK_SETUP_WIZARD";
     field public static final String NETWORK_SIGNAL_STRENGTH_WAKEUP = "android.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP";
+    field public static final String NETWORK_STACK = "android.permission.NETWORK_STACK";
     field public static final String NOTIFICATION_DURING_SETUP = "android.permission.NOTIFICATION_DURING_SETUP";
     field public static final String NOTIFY_TV_INPUTS = "android.permission.NOTIFY_TV_INPUTS";
     field public static final String OBSERVE_APP_USAGE = "android.permission.OBSERVE_APP_USAGE";
@@ -2001,6 +2004,7 @@
     method @Nullable public android.hardware.display.BrightnessCorrection getCorrectionByCategory(int);
     method @Nullable public android.hardware.display.BrightnessCorrection getCorrectionByPackageName(@NonNull String);
     method public android.util.Pair<float[],float[]> getCurve();
+    method public boolean shouldCollectColorSamples();
     method public void writeToParcel(android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.hardware.display.BrightnessConfiguration> CREATOR;
   }
@@ -2013,6 +2017,7 @@
     method public int getMaxCorrectionsByCategory();
     method public int getMaxCorrectionsByPackageName();
     method @NonNull public android.hardware.display.BrightnessConfiguration.Builder setDescription(@Nullable String);
+    method @NonNull public android.hardware.display.BrightnessConfiguration.Builder setShouldCollectColorSamples(boolean);
   }
 
   public final class BrightnessCorrection implements android.os.Parcelable {
@@ -4121,8 +4126,8 @@
     method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void getLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.ConnectivityManager.OnTetheringEntitlementResultListener);
     method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public boolean isTetheringSupported();
     method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void setAirplaneMode(boolean);
-    method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, "android.permission.NETWORK_STACK"}) public boolean shouldAvoidBadWifi();
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void setAirplaneMode(boolean);
+    method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public boolean shouldAvoidBadWifi();
     method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public void startCaptivePortalApp(@NonNull android.net.Network, @NonNull android.os.Bundle);
     method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback);
     method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback, android.os.Handler);
@@ -4830,38 +4835,62 @@
 
   public class WifiManager {
     method @RequiresPermission("android.permission.WIFI_UPDATE_USABILITY_STATS_SCORE") public void addOnWifiUsabilityStatsListener(@NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.WifiManager.OnWifiUsabilityStatsListener);
-    method @RequiresPermission("android.permission.NETWORK_SETTINGS") public void allowAutojoin(int, boolean);
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void connect(@NonNull android.net.wifi.WifiConfiguration, @Nullable android.net.wifi.WifiManager.ActionListener);
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void connect(int, @Nullable android.net.wifi.WifiManager.ActionListener);
-    method @Deprecated @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void disable(int, @Nullable android.net.wifi.WifiManager.ActionListener);
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void forget(int, @Nullable android.net.wifi.WifiManager.ActionListener);
-    method @NonNull @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.List<android.util.Pair<android.net.wifi.WifiConfiguration,java.util.Map<java.lang.Integer,java.util.List<android.net.wifi.ScanResult>>>> getAllMatchingWifiConfigs(@NonNull java.util.List<android.net.wifi.ScanResult>);
-    method @NonNull @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.Map<android.net.wifi.hotspot2.OsuProvider,java.util.List<android.net.wifi.ScanResult>> getMatchingOsuProviders(@Nullable java.util.List<android.net.wifi.ScanResult>);
-    method @NonNull @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.Map<android.net.wifi.hotspot2.OsuProvider,android.net.wifi.hotspot2.PasspointConfiguration> getMatchingPasspointConfigsForOsuProviders(@NonNull java.util.Set<android.net.wifi.hotspot2.OsuProvider>);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void allowAutojoin(int, boolean);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void connect(@NonNull android.net.wifi.WifiConfiguration, @Nullable android.net.wifi.WifiManager.ActionListener);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void connect(int, @Nullable android.net.wifi.WifiManager.ActionListener);
+    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void disable(int, @Nullable android.net.wifi.WifiManager.ActionListener);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK}) public void disableEphemeralNetwork(@NonNull String);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void enableVerboseLogging(int);
+    method @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL) public void factoryReset();
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void forget(int, @Nullable android.net.wifi.WifiManager.ActionListener);
+    method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.List<android.util.Pair<android.net.wifi.WifiConfiguration,java.util.Map<java.lang.Integer,java.util.List<android.net.wifi.ScanResult>>>> getAllMatchingWifiConfigs(@NonNull java.util.List<android.net.wifi.ScanResult>);
+    method @Nullable @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL) public String getCountryCode();
+    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public android.net.Network getCurrentNetwork();
+    method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public String[] getFactoryMacAddresses();
+    method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.Map<android.net.wifi.hotspot2.OsuProvider,java.util.List<android.net.wifi.ScanResult>> getMatchingOsuProviders(@Nullable java.util.List<android.net.wifi.ScanResult>);
+    method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.Map<android.net.wifi.hotspot2.OsuProvider,android.net.wifi.hotspot2.PasspointConfiguration> getMatchingPasspointConfigsForOsuProviders(@NonNull java.util.Set<android.net.wifi.hotspot2.OsuProvider>);
     method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_WIFI_STATE, android.Manifest.permission.READ_WIFI_CREDENTIAL}) public java.util.List<android.net.wifi.WifiConfiguration> getPrivilegedConfiguredNetworks();
+    method public int getVerboseLoggingLevel();
     method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public android.net.wifi.WifiConfiguration getWifiApConfiguration();
     method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public int getWifiApState();
     method public boolean isApMacRandomizationSupported();
     method public boolean isConnectedMacRandomizationSupported();
     method @Deprecated public boolean isDeviceToDeviceRttSupported();
+    method public boolean isDualBandSupported();
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public boolean isDualModeSupported();
     method public boolean isPortableHotspotSupported();
     method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public boolean isWifiApEnabled();
     method public boolean isWifiScannerSupported();
-    method @RequiresPermission("android.permission.NETWORK_SETTINGS") public void registerSoftApCallback(@Nullable java.util.concurrent.Executor, @NonNull android.net.wifi.WifiManager.SoftApCallback);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void registerNetworkRequestMatchCallback(@NonNull android.net.wifi.WifiManager.NetworkRequestMatchCallback);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void registerNetworkRequestMatchCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.WifiManager.NetworkRequestMatchCallback);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void registerSoftApCallback(@NonNull android.net.wifi.WifiManager.SoftApCallback);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void registerSoftApCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.WifiManager.SoftApCallback);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void registerTrafficStateCallback(@NonNull android.net.wifi.WifiManager.TrafficStateCallback);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void registerTrafficStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.WifiManager.TrafficStateCallback);
     method @RequiresPermission("android.permission.WIFI_UPDATE_USABILITY_STATS_SCORE") public void removeOnWifiUsabilityStatsListener(@NonNull android.net.wifi.WifiManager.OnWifiUsabilityStatsListener);
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void save(@NonNull android.net.wifi.WifiConfiguration, @Nullable android.net.wifi.WifiManager.ActionListener);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void restoreBackupData(@NonNull byte[]);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void restoreSupplicantBackupData(@NonNull byte[], @NonNull byte[]);
+    method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public byte[] retrieveBackupData();
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void save(@NonNull android.net.wifi.WifiConfiguration, @Nullable android.net.wifi.WifiManager.ActionListener);
     method @RequiresPermission("android.permission.WIFI_SET_DEVICE_MOBILITY_STATE") public void setDeviceMobilityState(int);
     method @RequiresPermission(android.Manifest.permission.CHANGE_WIFI_STATE) public boolean setWifiApConfiguration(android.net.wifi.WifiConfiguration);
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startEasyConnectAsConfiguratorInitiator(@NonNull String, int, int, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.EasyConnectStatusCallback);
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startEasyConnectAsEnrolleeInitiator(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.EasyConnectStatusCallback);
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startLocalOnlyHotspot(@NonNull android.net.wifi.SoftApConfiguration, @Nullable java.util.concurrent.Executor, @Nullable android.net.wifi.WifiManager.LocalOnlyHotspotCallback);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startEasyConnectAsConfiguratorInitiator(@NonNull String, int, int, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.EasyConnectStatusCallback);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startEasyConnectAsEnrolleeInitiator(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.EasyConnectStatusCallback);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startLocalOnlyHotspot(@NonNull android.net.wifi.SoftApConfiguration, @Nullable java.util.concurrent.Executor, @Nullable android.net.wifi.WifiManager.LocalOnlyHotspotCallback);
     method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public boolean startScan(android.os.WorkSource);
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_STACK", android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public boolean startSoftAp(@Nullable android.net.wifi.WifiConfiguration);
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startSubscriptionProvisioning(@NonNull android.net.wifi.hotspot2.OsuProvider, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.hotspot2.ProvisioningCallback);
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void stopEasyConnectSession();
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_STACK", android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public boolean stopSoftAp();
-    method @RequiresPermission(anyOf={"android.permission.NETWORK_STACK", android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void updateInterfaceIpState(@Nullable String, int);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public boolean startSoftAp(@Nullable android.net.wifi.WifiConfiguration);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startSubscriptionProvisioning(@NonNull android.net.wifi.hotspot2.OsuProvider, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.hotspot2.ProvisioningCallback);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void stopEasyConnectSession();
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public boolean stopSoftAp();
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void unregisterNetworkRequestMatchCallback(@NonNull android.net.wifi.WifiManager.NetworkRequestMatchCallback);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void unregisterSoftApCallback(@NonNull android.net.wifi.WifiManager.SoftApCallback);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void unregisterTrafficStateCallback(@NonNull android.net.wifi.WifiManager.TrafficStateCallback);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void updateInterfaceIpState(@Nullable String, int);
     method @RequiresPermission("android.permission.WIFI_UPDATE_USABILITY_STATS_SCORE") public void updateWifiUsabilityScore(int, int, int);
+    field public static final String ACTION_LINK_CONFIGURATION_CHANGED = "android.net.wifi.LINK_CONFIGURATION_CHANGED";
+    field public static final String ACTION_PASSPOINT_LAUNCH_OSU_VIEW = "android.net.wifi.action.PASSPOINT_LAUNCH_OSU_VIEW";
+    field public static final String ACTION_REQUEST_DISABLE = "android.net.wifi.action.REQUEST_DISABLE";
+    field public static final String ACTION_REQUEST_ENABLE = "android.net.wifi.action.REQUEST_ENABLE";
     field public static final int CHANGE_REASON_ADDED = 0; // 0x0
     field public static final int CHANGE_REASON_CONFIG_CHANGE = 2; // 0x2
     field public static final int CHANGE_REASON_REMOVED = 1; // 0x1
@@ -4873,8 +4902,11 @@
     field public static final int EASY_CONNECT_NETWORK_ROLE_AP = 1; // 0x1
     field public static final int EASY_CONNECT_NETWORK_ROLE_STA = 0; // 0x0
     field public static final String EXTRA_CHANGE_REASON = "changeReason";
+    field public static final String EXTRA_LINK_PROPERTIES = "android.net.wifi.extra.LINK_PROPERTIES";
     field public static final String EXTRA_MULTIPLE_NETWORKS_CHANGED = "multipleChanges";
+    field public static final String EXTRA_OSU_NETWORK = "android.net.wifi.extra.OSU_NETWORK";
     field public static final String EXTRA_PREVIOUS_WIFI_AP_STATE = "previous_wifi_state";
+    field public static final String EXTRA_URL = "android.net.wifi.extra.URL";
     field public static final String EXTRA_WIFI_AP_INTERFACE_NAME = "android.net.wifi.extra.WIFI_AP_INTERFACE_NAME";
     field public static final String EXTRA_WIFI_AP_MODE = "android.net.wifi.extra.WIFI_AP_MODE";
     field public static final String EXTRA_WIFI_AP_STATE = "wifi_state";
@@ -4887,6 +4919,8 @@
     field public static final int IFACE_IP_MODE_UNSPECIFIED = -1; // 0xffffffff
     field public static final int PASSPOINT_HOME_NETWORK = 0; // 0x0
     field public static final int PASSPOINT_ROAMING_NETWORK = 1; // 0x1
+    field public static final int SAP_START_FAILURE_GENERAL = 0; // 0x0
+    field public static final int SAP_START_FAILURE_NO_CHANNEL = 1; // 0x1
     field public static final String WIFI_AP_STATE_CHANGED_ACTION = "android.net.wifi.WIFI_AP_STATE_CHANGED";
     field public static final int WIFI_AP_STATE_DISABLED = 11; // 0xb
     field public static final int WIFI_AP_STATE_DISABLING = 10; // 0xa
@@ -4903,14 +4937,35 @@
     method public void onSuccess();
   }
 
+  public static interface WifiManager.NetworkRequestMatchCallback {
+    method public default void onAbort();
+    method public default void onMatch(@NonNull java.util.List<android.net.wifi.ScanResult>);
+    method public default void onUserSelectionCallbackRegistration(@NonNull android.net.wifi.WifiManager.NetworkRequestUserSelectionCallback);
+    method public default void onUserSelectionConnectFailure(@NonNull android.net.wifi.WifiConfiguration);
+    method public default void onUserSelectionConnectSuccess(@NonNull android.net.wifi.WifiConfiguration);
+  }
+
+  public static interface WifiManager.NetworkRequestUserSelectionCallback {
+    method public default void reject();
+    method public default void select(@NonNull android.net.wifi.WifiConfiguration);
+  }
+
   public static interface WifiManager.OnWifiUsabilityStatsListener {
     method public void onWifiUsabilityStats(int, boolean, @NonNull android.net.wifi.WifiUsabilityStatsEntry);
   }
 
   public static interface WifiManager.SoftApCallback {
-    method public void onConnectedClientsChanged(@NonNull java.util.List<android.net.wifi.WifiClient>);
+    method public default void onConnectedClientsChanged(@NonNull java.util.List<android.net.wifi.WifiClient>);
     method public default void onInfoChanged(@NonNull android.net.wifi.SoftApInfo);
-    method public void onStateChanged(int, int);
+    method public default void onStateChanged(int, int);
+  }
+
+  public static interface WifiManager.TrafficStateCallback {
+    method public void onStateChanged(int);
+    field public static final int DATA_ACTIVITY_IN = 1; // 0x1
+    field public static final int DATA_ACTIVITY_INOUT = 3; // 0x3
+    field public static final int DATA_ACTIVITY_NONE = 0; // 0x0
+    field public static final int DATA_ACTIVITY_OUT = 2; // 0x2
   }
 
   public class WifiNetworkConnectionStatistics implements android.os.Parcelable {
@@ -4933,6 +4988,7 @@
     method @Deprecated public void configureWifiChange(android.net.wifi.WifiScanner.WifiChangeSettings);
     method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public java.util.List<java.lang.Integer> getAvailableChannels(int);
     method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean getScanResults();
+    method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public java.util.List<android.net.wifi.ScanResult> getSingleScanResults();
     method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void startBackgroundScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener);
     method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void startBackgroundScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener, android.os.WorkSource);
     method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void startScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener);
@@ -5152,6 +5208,36 @@
 
 }
 
+package android.net.wifi.p2p {
+
+  public final class WifiP2pGroupList implements android.os.Parcelable {
+    method public int describeContents();
+    method @NonNull public java.util.Collection<android.net.wifi.p2p.WifiP2pGroup> getGroupList();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pGroupList> CREATOR;
+  }
+
+  public class WifiP2pManager {
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.OVERRIDE_WIFI_CONFIG}) public void deletePersistentGroup(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, int, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void factoryReset(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void listen(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, boolean, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.READ_WIFI_CREDENTIAL}) public void requestPersistentGroupInfo(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @Nullable android.net.wifi.p2p.WifiP2pManager.PersistentGroupInfoListener);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.OVERRIDE_WIFI_CONFIG}) public void setDeviceName(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @NonNull String, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method @RequiresPermission(allOf={android.Manifest.permission.CONNECTIVITY_INTERNAL, android.Manifest.permission.CONFIGURE_WIFI_DISPLAY}) public void setMiracastMode(int);
+    method @RequiresPermission(android.Manifest.permission.CONFIGURE_WIFI_DISPLAY) public void setWfdInfo(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @NonNull android.net.wifi.p2p.WifiP2pWfdInfo, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.OVERRIDE_WIFI_CONFIG}) public void setWifiP2pChannels(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, int, int, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    field public static final String ACTION_WIFI_P2P_PERSISTENT_GROUPS_CHANGED = "android.net.wifi.p2p.action.WIFI_P2P_PERSISTENT_GROUPS_CHANGED";
+    field public static final int MIRACAST_DISABLED = 0; // 0x0
+    field public static final int MIRACAST_SINK = 2; // 0x2
+    field public static final int MIRACAST_SOURCE = 1; // 0x1
+  }
+
+  public static interface WifiP2pManager.PersistentGroupInfoListener {
+    method public void onPersistentGroupInfoAvailable(@NonNull android.net.wifi.p2p.WifiP2pGroupList);
+  }
+
+}
+
 package android.net.wifi.rtt {
 
   public static final class RangingRequest.Builder {
diff --git a/api/system-lint-baseline.txt b/api/system-lint-baseline.txt
index 21526d0..7eb5443 100644
--- a/api/system-lint-baseline.txt
+++ b/api/system-lint-baseline.txt
@@ -1,12 +1,30 @@
 // Baseline format: 1.0
 ActionValue: android.location.Location#EXTRA_NO_GPS_LOCATION:
     
+ActionValue: android.net.wifi.WifiManager#ACTION_LINK_CONFIGURATION_CHANGED:
+    Inconsistent action value; expected `android.net.wifi.action.LINK_CONFIGURATION_CHANGED`, was `android.net.wifi.LINK_CONFIGURATION_CHANGED`
 
 
 ArrayReturn: android.view.contentcapture.ViewNode#getAutofillOptions():
     
 
 
+ExecutorRegistration: android.net.wifi.p2p.WifiP2pManager#deletePersistentGroup(android.net.wifi.p2p.WifiP2pManager.Channel, int, android.net.wifi.p2p.WifiP2pManager.ActionListener):
+    Registration methods should have overload that accepts delivery Executor: `deletePersistentGroup`
+ExecutorRegistration: android.net.wifi.p2p.WifiP2pManager#factoryReset(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener):
+    Registration methods should have overload that accepts delivery Executor: `factoryReset`
+ExecutorRegistration: android.net.wifi.p2p.WifiP2pManager#listen(android.net.wifi.p2p.WifiP2pManager.Channel, boolean, android.net.wifi.p2p.WifiP2pManager.ActionListener):
+    Registration methods should have overload that accepts delivery Executor: `listen`
+ExecutorRegistration: android.net.wifi.p2p.WifiP2pManager#requestPersistentGroupInfo(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.PersistentGroupInfoListener):
+    Registration methods should have overload that accepts delivery Executor: `requestPersistentGroupInfo`
+ExecutorRegistration: android.net.wifi.p2p.WifiP2pManager#setDeviceName(android.net.wifi.p2p.WifiP2pManager.Channel, String, android.net.wifi.p2p.WifiP2pManager.ActionListener):
+    Registration methods should have overload that accepts delivery Executor: `setDeviceName`
+ExecutorRegistration: android.net.wifi.p2p.WifiP2pManager#setWfdInfo(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pWfdInfo, android.net.wifi.p2p.WifiP2pManager.ActionListener):
+    Registration methods should have overload that accepts delivery Executor: `setWfdInfo`
+ExecutorRegistration: android.net.wifi.p2p.WifiP2pManager#setWifiP2pChannels(android.net.wifi.p2p.WifiP2pManager.Channel, int, int, android.net.wifi.p2p.WifiP2pManager.ActionListener):
+    Registration methods should have overload that accepts delivery Executor: `setWifiP2pChannels`
+
+
 GenericException: android.app.prediction.AppPredictor#finalize():
     
 GenericException: android.hardware.location.ContextHubClient#finalize():
@@ -17,8 +35,7 @@
     
 
 
-InterfaceConstant: android.service.storage.ExternalStorageService#SERVICE_INTERFACE:
-    
+
 
 
 KotlinKeyword: android.app.Notification#when:
@@ -198,9 +215,9 @@
 SamShouldBeLast: android.app.AlarmManager#setWindow(int, long, long, String, android.app.AlarmManager.OnAlarmListener, android.os.Handler):
     
 SamShouldBeLast: android.app.WallpaperInfo#dump(android.util.Printer, String):
-    
+
 SamShouldBeLast: android.app.admin.DevicePolicyManager#installSystemUpdate(android.content.ComponentName, android.net.Uri, java.util.concurrent.Executor, android.app.admin.DevicePolicyManager.InstallSystemUpdateCallback):
-    
+
 SamShouldBeLast: android.content.Context#bindIsolatedService(android.content.Intent, int, String, java.util.concurrent.Executor, android.content.ServiceConnection):
     
 SamShouldBeLast: android.content.Context#bindService(android.content.Intent, int, java.util.concurrent.Executor, android.content.ServiceConnection):
@@ -332,7 +349,7 @@
 SamShouldBeLast: android.telephony.TelephonyManager#setPreferredOpportunisticDataSubscription(int, boolean, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Integer>):
     
 SamShouldBeLast: android.telephony.TelephonyManager#updateAvailableNetworks(java.util.List<android.telephony.AvailableNetworkInfo>, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Integer>):
-    
+
 SamShouldBeLast: android.view.View#postDelayed(Runnable, long):
     
 SamShouldBeLast: android.view.View#postOnAnimationDelayed(Runnable, long):
diff --git a/api/test-current.txt b/api/test-current.txt
index 44f736c..c6b02b9 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -1018,6 +1018,7 @@
     method @Nullable public android.hardware.display.BrightnessCorrection getCorrectionByCategory(int);
     method @Nullable public android.hardware.display.BrightnessCorrection getCorrectionByPackageName(@NonNull String);
     method public android.util.Pair<float[],float[]> getCurve();
+    method public boolean shouldCollectColorSamples();
     method public void writeToParcel(android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.hardware.display.BrightnessConfiguration> CREATOR;
   }
@@ -1030,6 +1031,7 @@
     method public int getMaxCorrectionsByCategory();
     method public int getMaxCorrectionsByPackageName();
     method @NonNull public android.hardware.display.BrightnessConfiguration.Builder setDescription(@Nullable String);
+    method @NonNull public android.hardware.display.BrightnessConfiguration.Builder setShouldCollectColorSamples(boolean);
   }
 
   public final class BrightnessCorrection implements android.os.Parcelable {
diff --git a/core/java/android/app/IWallpaperManager.aidl b/core/java/android/app/IWallpaperManager.aidl
index 7f5350d..4cb8d93 100644
--- a/core/java/android/app/IWallpaperManager.aidl
+++ b/core/java/android/app/IWallpaperManager.aidl
@@ -58,14 +58,22 @@
     @UnsupportedAppUsage
     void setWallpaperComponent(in ComponentName name);
 
+
     /**
-     * Get the wallpaper for a given user.
+     * @deprecated Use {@link #getWallpaperWithFeature(String, IWallpaperManagerCallback, int,
+     * Bundle, int)}
      */
     @UnsupportedAppUsage
     ParcelFileDescriptor getWallpaper(String callingPkg, IWallpaperManagerCallback cb, int which,
             out Bundle outParams, int userId);
 
     /**
+     * Get the wallpaper for a given user.
+     */
+    ParcelFileDescriptor getWallpaperWithFeature(String callingPkg, String callingFeatureId,
+            IWallpaperManagerCallback cb, int which, out Bundle outParams, int userId);
+
+    /**
      * Retrieve the given user's current wallpaper ID of the given kind.
      */
     int getWallpaperIdForUser(int which, int userId);
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index 4fb2196..69c174a 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -18,6 +18,7 @@
 
 import android.accounts.AccountManager;
 import android.accounts.IAccountManager;
+import android.annotation.NonNull;
 import android.app.ContextImpl.ServiceInitializationState;
 import android.app.admin.DevicePolicyManager;
 import android.app.admin.IDevicePolicyManager;
@@ -67,7 +68,7 @@
 import android.hardware.SerialManager;
 import android.hardware.SystemSensorManager;
 import android.hardware.biometrics.BiometricManager;
-import android.hardware.biometrics.IBiometricService;
+import android.hardware.biometrics.IAuthService;
 import android.hardware.camera2.CameraManager;
 import android.hardware.display.ColorDisplayManager;
 import android.hardware.display.DisplayManager;
@@ -194,10 +195,9 @@
 import com.android.internal.net.INetworkWatchlistManager;
 import com.android.internal.os.IDropBoxManagerService;
 import com.android.internal.policy.PhoneLayoutInflater;
+import com.android.internal.util.Preconditions;
 
 import java.util.Map;
-import java.util.function.BiFunction;
-import java.util.function.Function;
 
 /**
  * Manages all of the system services that can be returned by {@link Context#getSystemService}.
@@ -216,6 +216,8 @@
             new ArrayMap<String, ServiceFetcher<?>>();
     private static int sServiceCacheSize;
 
+    private static volatile boolean sInitializing;
+
     // Not instantiable.
     private SystemServiceRegistry() { }
 
@@ -945,9 +947,9 @@
                             throws ServiceNotFoundException {
                         if (BiometricManager.hasBiometrics(ctx)) {
                             final IBinder binder =
-                                    ServiceManager.getServiceOrThrow(Context.BIOMETRIC_SERVICE);
-                            final IBiometricService service =
-                                    IBiometricService.Stub.asInterface(binder);
+                                    ServiceManager.getServiceOrThrow(Context.AUTH_SERVICE);
+                            final IAuthService service =
+                                    IAuthService.Stub.asInterface(binder);
                             return new BiometricManager(ctx.getOuterContext(), service);
                         } else {
                             // Allow access to the manager when service is null. This saves memory
@@ -1292,14 +1294,28 @@
                     }});
         //CHECKSTYLE:ON IndentationCheck
 
-        JobSchedulerFrameworkInitializer.initialize();
-        DeviceIdleFrameworkInitializer.initialize();
+        sInitializing = true;
+        try {
+            // Note: the following functions need to be @SystemApis, once they become mainline
+            // modules.
 
-        BlobStoreManagerFrameworkInitializer.initialize();
+            JobSchedulerFrameworkInitializer.registerServiceWrappers();
+            BlobStoreManagerFrameworkInitializer.initialize();
+        } finally {
+            // If any of the above code throws, we're in a pretty bad shape and the process
+            // will likely crash, but we'll reset it just in case there's an exception handler...
+            sInitializing = false;
+        }
     }
 
+    /** Throws {@link IllegalStateException} if not during a static initialization. */
+    private static void ensureInitializing(String methodName) {
+        Preconditions.checkState(sInitializing, "Internal error: " + methodName
+                + " can only be called during class initialization.");
+    }
     /**
      * Creates an array which is used to cache per-Context service instances.
+     * @hide
      */
     public static Object[] createServiceCache() {
         return new Object[sServiceCacheSize];
@@ -1307,6 +1323,7 @@
 
     /**
      * Gets a system service from a given context.
+     * @hide
      */
     public static Object getSystemService(ContextImpl ctx, String name) {
         ServiceFetcher<?> fetcher = SYSTEM_SERVICE_FETCHERS.get(name);
@@ -1315,6 +1332,7 @@
 
     /**
      * Gets the name of the system-level service that is represented by the specified class.
+     * @hide
      */
     public static String getSystemServiceName(Class<?> serviceClass) {
         return SYSTEM_SERVICE_NAMES.get(serviceClass);
@@ -1324,41 +1342,204 @@
      * Statically registers a system service with the context.
      * This method must be called during static initialization only.
      */
-    private static <T> void registerService(String serviceName, Class<T> serviceClass,
-            ServiceFetcher<T> serviceFetcher) {
+    private static <T> void registerService(@NonNull String serviceName,
+            @NonNull Class<T> serviceClass, @NonNull ServiceFetcher<T> serviceFetcher) {
         SYSTEM_SERVICE_NAMES.put(serviceClass, serviceName);
         SYSTEM_SERVICE_FETCHERS.put(serviceName, serviceFetcher);
     }
 
     /**
-     * APEX modules will use it to register their service wrapper.
+     * Callback interface used as a parameter to {@link #registerStaticService(
+     * String, Class, StaticServiceProducerNoBinder)}, which generates a service wrapper instance
+     * that's not tied to any context and does not take a service binder object in the constructor.
+     *
+     * @param <TServiceClass> type of the service wrapper class.
      *
      * @hide
      */
-    public static <T> void registerStaticService(String serviceName, Class<T> serviceWrapperClass,
-            Function<IBinder, T> serviceFetcher) {
+    //@SystemApi TODO Make it a system API.
+    public interface StaticServiceProducerNoBinder<TServiceClass> {
+        /**
+         * Return a new service wrapper of type {@code TServiceClass}.
+         */
+        TServiceClass createService();
+    }
+
+    /**
+     * Callback interface used as a parameter to {@link #registerStaticService(
+     * String, Class, StaticServiceProducerWithBinder)}, which generates a service wrapper instance
+     * that's not tied to any context and takes a service binder object in the constructor.
+     *
+     * @param <TServiceClass> type of the service wrapper class.
+     *
+     * @hide
+     */
+    //@SystemApi TODO Make it a system API.
+    public interface StaticServiceProducerWithBinder<TServiceClass> {
+        /**
+         * Return a new service wrapper of type {@code TServiceClass} backed by a given
+         * service binder object.
+         */
+        TServiceClass createService(IBinder serviceBinder);
+    }
+
+    /**
+     * Callback interface used as a parameter to {@link #registerContextAwareService(
+     * String, Class, ContextAwareServiceProducerNoBinder)},
+     * which generates a service wrapper instance
+     * that's tied to a specific context and does not take a service binder object in the
+     * constructor.
+     *
+     * @param <TServiceClass> type of the service wrapper class.
+     *
+     * @hide
+     */
+    //@SystemApi TODO Make it a system API.
+    public interface ContextAwareServiceProducerNoBinder<TServiceClass> {
+        /**
+         * Return a new service wrapper of type {@code TServiceClass} tied to a given
+         * {@code context}.
+         *
+         * TODO Do we need to pass the "base context" too?
+         */
+        TServiceClass createService(Context context);
+    }
+
+    /**
+     * Callback interface used as a parameter to {@link #registerContextAwareService(
+     * String, Class, ContextAwareServiceProducerWithBinder)},
+     * which generates a service wrapper instance
+     * that's tied to a specific context and takes a service binder object in the constructor.
+     *
+     * @param <TServiceClass> type of the service wrapper class.
+     *
+     * @hide
+     */
+    //@SystemApi TODO Make it a system API.
+    public interface ContextAwareServiceProducerWithBinder<TServiceClass> {
+        /**
+         * Return a new service wrapper of type {@code TServiceClass} backed by a given
+         * service binder object that's tied to a given {@code context}.
+         *
+         * TODO Do we need to pass the "base context" too?
+         */
+        TServiceClass createService(Context context, IBinder serviceBinder);
+    }
+
+    /**
+     * Used by apex modules to register a "service wrapper" that is not tied to any {@link Context}.
+     *
+     * <p>This can only be called from the methods called by the static initializer of
+     * {@link SystemServiceRegistry}. (Otherwise it throws a {@link IllegalStateException}.)
+     *
+     * @param serviceName the name of the binder object, such as
+     *     {@link Context#JOB_SCHEDULER_SERVICE}.
+     * @param serviceWrapperClass the wrapper class, such as the class of
+     *     {@link android.app.job.JobScheduler}.
+     * @param serviceProducer Callback that takes the service binder object with the name
+     *     {@code serviceName} and returns an actual service wrapper instance.
+     *
+     * @hide
+     */
+    //@SystemApi TODO Make it a system API.
+    public static <TServiceClass> void registerStaticService(
+            @NonNull String serviceName, @NonNull Class<TServiceClass> serviceWrapperClass,
+            @NonNull StaticServiceProducerWithBinder<TServiceClass> serviceProducer) {
+        ensureInitializing("registerStaticService");
+        Preconditions.checkStringNotEmpty(serviceName);
+        Preconditions.checkNotNull(serviceWrapperClass);
+        Preconditions.checkNotNull(serviceProducer);
+
         registerService(serviceName, serviceWrapperClass,
-                new StaticServiceFetcher<T>() {
+                new StaticServiceFetcher<TServiceClass>() {
                     @Override
-                    public T createService() throws ServiceNotFoundException {
-                        IBinder b = ServiceManager.getServiceOrThrow(serviceName);
-                        return serviceFetcher.apply(b);
+                    public TServiceClass createService() throws ServiceNotFoundException {
+                        return serviceProducer.createService(
+                                ServiceManager.getServiceOrThrow(serviceName));
                     }});
     }
 
     /**
-     * APEX modules will use it to register their service wrapper.
+     * Similar to {@link #registerStaticService(String, Class, StaticServiceProducerWithBinder)},
+     * but used for a "service wrapper" that doesn't take a service binder in its constructor.
      *
      * @hide
      */
-    public static <T> void registerCachedService(String serviceName, Class<T> serviceWrapperClass,
-            BiFunction<Context, IBinder, T> serviceFetcher) {
+    //@SystemApi TODO Make it a system API.
+    public static <TServiceClass> void registerStaticService(
+            @NonNull String serviceName, @NonNull Class<TServiceClass> serviceWrapperClass,
+            @NonNull StaticServiceProducerNoBinder<TServiceClass> serviceProducer) {
+        ensureInitializing("registerStaticService");
+        Preconditions.checkStringNotEmpty(serviceName);
+        Preconditions.checkNotNull(serviceWrapperClass);
+        Preconditions.checkNotNull(serviceProducer);
+
         registerService(serviceName, serviceWrapperClass,
-                new CachedServiceFetcher<T>() {
+                new StaticServiceFetcher<TServiceClass>() {
                     @Override
-                    public T createService(ContextImpl ctx) throws ServiceNotFoundException {
-                        IBinder b = ServiceManager.getServiceOrThrow(serviceName);
-                        return serviceFetcher.apply(ctx.getOuterContext(), b);
+                    public TServiceClass createService() {
+                        return serviceProducer.createService();
+                    }});
+    }
+
+    /**
+     * Used by apex modules to register a "service wrapper" that is tied to a specific
+     * {@link Context}.
+     *
+     * <p>This can only be called from the methods called by the static initializer of
+     * {@link SystemServiceRegistry}. (Otherwise it throws a {@link IllegalStateException}.)
+     *
+     * @param serviceName the name of the binder object, such as
+     *     {@link Context#JOB_SCHEDULER_SERVICE}.
+     * @param serviceWrapperClass the wrapper class, such as the class of
+     *     {@link android.app.job.JobScheduler}.
+     * @param serviceProducer lambda that takes the service binder object with the name
+     *     {@code serviceName}, a {@link Context} and returns an actual service wrapper instance.
+     *
+     * @hide
+     */
+    //@SystemApi TODO Make it a system API.
+    public static <TServiceClass> void registerContextAwareService(
+            @NonNull String serviceName, @NonNull Class<TServiceClass> serviceWrapperClass,
+            @NonNull ContextAwareServiceProducerWithBinder<TServiceClass> serviceProducer) {
+        ensureInitializing("registerContextAwareService");
+        Preconditions.checkStringNotEmpty(serviceName);
+        Preconditions.checkNotNull(serviceWrapperClass);
+        Preconditions.checkNotNull(serviceProducer);
+
+        registerService(serviceName, serviceWrapperClass,
+                new CachedServiceFetcher<TServiceClass>() {
+                    @Override
+                    public TServiceClass createService(ContextImpl ctx)
+                            throws ServiceNotFoundException {
+                        return serviceProducer.createService(
+                                ctx.getOuterContext(),
+                                ServiceManager.getServiceOrThrow(serviceName));
+                    }});
+    }
+
+
+    /**
+     * Similar to {@link #registerContextAwareService(String, Class,
+     * ContextAwareServiceProducerWithBinder)},
+     * but used for a "service wrapper" that doesn't take a service binder in its constructor.
+     *
+     * @hide
+     */
+    //@SystemApi TODO Make it a system API.
+    public static <TServiceClass> void registerContextAwareService(
+            @NonNull String serviceName, @NonNull Class<TServiceClass> serviceWrapperClass,
+            @NonNull ContextAwareServiceProducerNoBinder<TServiceClass> serviceProducer) {
+        ensureInitializing("registerContextAwareService");
+        Preconditions.checkStringNotEmpty(serviceName);
+        Preconditions.checkNotNull(serviceWrapperClass);
+        Preconditions.checkNotNull(serviceProducer);
+
+        registerService(serviceName, serviceWrapperClass,
+                new CachedServiceFetcher<TServiceClass>() {
+                    @Override
+                    public TServiceClass createService(ContextImpl ctx) {
+                        return serviceProducer.createService(ctx.getOuterContext());
                     }});
     }
 
@@ -1517,6 +1698,7 @@
         public abstract T createService(Context applicationContext) throws ServiceNotFoundException;
     }
 
+    /** @hide */
     public static void onServiceNotFound(ServiceNotFoundException e) {
         // We're mostly interested in tracking down long-lived core system
         // components that might stumble if they obtain bad references; just
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index 59ecf4a..41604ec 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -458,8 +458,9 @@
 
             try {
                 Bundle params = new Bundle();
-                ParcelFileDescriptor fd = mService.getWallpaper(context.getOpPackageName(),
-                        this, FLAG_SYSTEM, params, userId);
+                ParcelFileDescriptor fd = mService.getWallpaperWithFeature(
+                        context.getOpPackageName(), context.getFeatureId(), this, FLAG_SYSTEM,
+                        params, userId);
                 if (fd != null) {
                     try {
                         BitmapFactory.Options options = new BitmapFactory.Options();
@@ -985,8 +986,8 @@
         } else {
             try {
                 Bundle outParams = new Bundle();
-                return sGlobals.mService.getWallpaper(mContext.getOpPackageName(), null, which,
-                        outParams, userId);
+                return sGlobals.mService.getWallpaperWithFeature(mContext.getOpPackageName(),
+                        mContext.getFeatureId(), null, which, outParams, userId);
             } catch (RemoteException e) {
                 throw e.rethrowFromSystemServer();
             } catch (SecurityException e) {
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 9eff4b0..50adb7c 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -4101,9 +4101,17 @@
      * Make the device lock immediately, as if the lock screen timeout has expired at the point of
      * this call.
      * <p>
+     * This method secures the device in response to an urgent situation, such as a lost or stolen
+     * device. After this method is called, the device must be unlocked using strong authentication
+     * (PIN, pattern, or password). This API is intended for use only by device admins.
+     * <p>
      * The calling device admin must have requested {@link DeviceAdminInfo#USES_POLICY_FORCE_LOCK}
      * to be able to call this method; if it has not, a security exception will be thrown.
      * <p>
+     * If there's no lock type set, this method forces the device to go to sleep but doesn't lock
+     * the device. Device admins who find the device in this state can lock an otherwise-insecure
+     * device by first calling {@link #resetPassword} to set the password and then lock the device.
+     * <p>
      * This method can be called on the {@link DevicePolicyManager} instance returned by
      * {@link #getParentProfileInstance(ComponentName)} in order to lock the parent profile.
      * <p>
@@ -4120,9 +4128,17 @@
      * Make the device lock immediately, as if the lock screen timeout has expired at the point of
      * this call.
      * <p>
+     * This method secures the device in response to an urgent situation, such as a lost or stolen
+     * device. After this method is called, the device must be unlocked using strong authentication
+     * (PIN, pattern, or password). This API is intended for use only by device admins.
+     * <p>
      * The calling device admin must have requested {@link DeviceAdminInfo#USES_POLICY_FORCE_LOCK}
      * to be able to call this method; if it has not, a security exception will be thrown.
      * <p>
+     * If there's no lock type set, this method forces the device to go to sleep but doesn't lock
+     * the device. Device admins who find the device in this state can lock an otherwise-insecure
+     * device by first calling {@link #resetPassword} to set the password and then lock the device.
+     * <p>
      * This method can be called on the {@link DevicePolicyManager} instance returned by
      * {@link #getParentProfileInstance(ComponentName)} in order to lock the parent profile.
      *
@@ -8167,7 +8183,7 @@
      * Sets which system features are enabled when the device runs in lock task mode. This method
      * doesn't affect the features when lock task mode is inactive. Any system features not included
      * in {@code flags} are implicitly disabled when calling this method. By default, only
-     * {@link #LOCK_TASK_FEATURE_GLOBAL_ACTIONS} is enabled—all the other features are disabled. To
+     * {@link #LOCK_TASK_FEATURE_GLOBAL_ACTIONS} is enabled; all the other features are disabled. To
      * disable the global actions dialog, call this method omitting
      * {@link #LOCK_TASK_FEATURE_GLOBAL_ACTIONS}.
      *
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index 0be3eca..19f42b6 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -1095,6 +1095,24 @@
     }
 
     /**
+     * Get the Bluetooth alias of the remote device.
+     * If Alias is null, get the Bluetooth name instead.
+     *
+     * @return the Bluetooth alias, or null if no alias or there was a problem
+     * @hide
+     * @see #getAlias()
+     * @see #getName()
+     */
+    @UnsupportedAppUsage(publicAlternatives = "Use {@link #getName()} instead.")
+    public String getAliasName() {
+        String name = getAlias();
+        if (name == null) {
+            name = getName();
+        }
+        return name;
+    }
+
+    /**
      * Get the most recent identified battery level of this Bluetooth device
      * <p>Requires {@link android.Manifest.permission#BLUETOOTH}
      *
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 03b4913..392353a 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -3289,6 +3289,7 @@
             WIFI_RTT_RANGING_SERVICE,
             NSD_SERVICE,
             AUDIO_SERVICE,
+            AUTH_SERVICE,
             FINGERPRINT_SERVICE,
             //@hide: FACE_SERVICE,
             BIOMETRIC_SERVICE,
@@ -4007,6 +4008,31 @@
     public static final String AUDIO_SERVICE = "audio";
 
     /**
+     * AuthService orchestrates biometric and PIN/pattern/password authentication.
+     *
+     * BiometricService was split into two services, AuthService and BiometricService, where
+     * AuthService is the high level service that orchestrates all types of authentication, and
+     * BiometricService is a lower layer responsible only for biometric authentication.
+     *
+     * Ideally we should have renamed BiometricManager to AuthManager, because it logically
+     * corresponds to AuthService. However, because BiometricManager is a public API, we kept
+     * the old name but changed the internal implementation to use AuthService.
+     *
+     * As of now, the AUTH_SERVICE constant is only used to identify the service in
+     * SystemServiceRegistry and SELinux. To obtain the manager for AUTH_SERVICE, one should use
+     * BIOMETRIC_SERVICE with {@link #getSystemService(String)} to retrieve a
+     * {@link android.hardware.biometrics.BiometricManager}
+     *
+     * Map of the two services and their managers:
+     * [Service]            [Manager]
+     * AuthService          BiometricManager
+     * BiometricService     N/A
+     *
+     * @hide
+     */
+    public static final String AUTH_SERVICE = "auth";
+
+    /**
      * Use with {@link #getSystemService(String)} to retrieve a
      * {@link android.hardware.fingerprint.FingerprintManager} for handling management
      * of fingerprints.
@@ -4040,8 +4066,8 @@
 
     /**
      * Use with {@link #getSystemService(String)} to retrieve a
-     * {@link android.hardware.biometrics.BiometricManager} for handling management
-     * of face authentication.
+     * {@link android.hardware.biometrics.BiometricManager} for handling
+     * biometric and PIN/pattern/password authentication.
      *
      * @see #getSystemService
      * @see android.hardware.biometrics.BiometricManager
diff --git a/core/java/android/content/pm/UserInfo.java b/core/java/android/content/pm/UserInfo.java
index 42d64d8..5fb17ee 100644
--- a/core/java/android/content/pm/UserInfo.java
+++ b/core/java/android/content/pm/UserInfo.java
@@ -49,9 +49,6 @@
  */
 public class UserInfo implements Parcelable {
 
-    /** 16 bits for user type */
-    public static final int FLAG_MASK_USER_TYPE = 0x0000FFFF;
-
     /**
      * *************************** NOTE ***************************
      * These flag values CAN NOT CHANGE because they are written
diff --git a/core/java/android/hardware/biometrics/BiometricManager.java b/core/java/android/hardware/biometrics/BiometricManager.java
index 9d427c8..f17b3ae 100644
--- a/core/java/android/hardware/biometrics/BiometricManager.java
+++ b/core/java/android/hardware/biometrics/BiometricManager.java
@@ -66,7 +66,7 @@
     @interface BiometricError {}
 
     private final Context mContext;
-    private final IBiometricService mService;
+    private final IAuthService mService;
     private final boolean mHasHardware;
 
     /**
@@ -86,7 +86,7 @@
      * @param context
      * @param service
      */
-    public BiometricManager(Context context, IBiometricService service) {
+    public BiometricManager(Context context, IAuthService service) {
         mContext = context;
         mService = service;
 
diff --git a/core/java/android/hardware/biometrics/IAuthService.aidl b/core/java/android/hardware/biometrics/IAuthService.aidl
new file mode 100644
index 0000000..516a25d
--- /dev/null
+++ b/core/java/android/hardware/biometrics/IAuthService.aidl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.biometrics;
+
+import android.os.Bundle;
+import android.hardware.biometrics.IBiometricEnabledOnKeyguardCallback;
+import android.hardware.biometrics.IBiometricServiceReceiver;
+
+/**
+ * Communication channel from BiometricPrompt and BiometricManager to AuthService. The
+ * interface does not expose specific biometric modalities. The system will use the default
+ * biometric for apps. On devices with more than one, the choice is dictated by user preference in
+ * Settings.
+ * @hide
+ */
+interface IAuthService {
+    // Requests authentication. The service choose the appropriate biometric to use, and show
+    // the corresponding BiometricDialog.
+    void authenticate(IBinder token, long sessionId, int userId,
+            IBiometricServiceReceiver receiver, String opPackageName, in Bundle bundle);
+
+    // TODO(b/141025588): Make userId the first arg to be consistent with hasEnrolledBiometrics.
+    // Checks if biometrics can be used.
+    int canAuthenticate(String opPackageName, int userId);
+
+    // Checks if any biometrics are enrolled.
+    boolean hasEnrolledBiometrics(int userId, String opPackageName);
+
+    // Register callback for when keyguard biometric eligibility changes.
+    void registerEnabledOnKeyguardCallback(IBiometricEnabledOnKeyguardCallback callback);
+
+    // Explicitly set the active user.
+    void setActiveUser(int userId);
+
+    // Reset the lockout when user authenticates with strong auth (e.g. PIN, pattern or password)
+    void resetLockout(in byte [] token);
+}
diff --git a/core/java/android/hardware/biometrics/IBiometricService.aidl b/core/java/android/hardware/biometrics/IBiometricService.aidl
index 06336a5..ca02421 100644
--- a/core/java/android/hardware/biometrics/IBiometricService.aidl
+++ b/core/java/android/hardware/biometrics/IBiometricService.aidl
@@ -22,10 +22,7 @@
 import android.hardware.biometrics.IBiometricAuthenticator;
 
 /**
- * Communication channel from BiometricPrompt and BiometricManager to BiometricService. The
- * interface does not expose specific biometric modalities. The system will use the default
- * biometric for apps. On devices with more than one, the choice is dictated by user preference in
- * Settings.
+ * Communication channel from AuthService to BiometricService.
  * @hide
  */
 interface IBiometricService {
diff --git a/core/java/android/hardware/display/BrightnessChangeEvent.java b/core/java/android/hardware/display/BrightnessChangeEvent.java
index 21fcc63..a6a44be 100644
--- a/core/java/android/hardware/display/BrightnessChangeEvent.java
+++ b/core/java/android/hardware/display/BrightnessChangeEvent.java
@@ -79,7 +79,8 @@
     /**
      * Histogram counting how many times a pixel of a given value was displayed onscreen for the
      * Value component of HSV if the device supports color sampling, if the device does not support
-     * color sampling the value will be null.
+     * color sampling or {@link BrightnessConfiguration#shouldCollectColorSamples()} is false the
+     * value will be null.
      *
      * The buckets of the histogram are evenly weighted, the number of buckets is device specific.
      * The units are in pixels * milliseconds, with 1 pixel millisecond being 1 pixel displayed
@@ -94,7 +95,8 @@
 
     /**
      * How many milliseconds of data are contained in the colorValueBuckets, if the device does
-     * not support color sampling the value will be 0L.
+     * not support color sampling or {@link BrightnessConfiguration#shouldCollectColorSamples()} is
+     * false the value will be 0L.
      *
      * {@see #colorValueBuckets}
      */
diff --git a/core/java/android/hardware/display/BrightnessConfiguration.java b/core/java/android/hardware/display/BrightnessConfiguration.java
index 4c2e297..139be8e 100644
--- a/core/java/android/hardware/display/BrightnessConfiguration.java
+++ b/core/java/android/hardware/display/BrightnessConfiguration.java
@@ -49,26 +49,31 @@
     private static final String TAG_BRIGHTNESS_POINT = "brightness-point";
     private static final String TAG_BRIGHTNESS_CORRECTIONS = "brightness-corrections";
     private static final String TAG_BRIGHTNESS_CORRECTION = "brightness-correction";
+    private static final String TAG_BRIGHTNESS_PARAMS = "brightness-params";
     private static final String ATTR_LUX = "lux";
     private static final String ATTR_NITS = "nits";
     private static final String ATTR_DESCRIPTION = "description";
     private static final String ATTR_PACKAGE_NAME = "package-name";
     private static final String ATTR_CATEGORY = "category";
+    private static final String ATTR_COLLECT_COLOR = "collect-color";
 
     private final float[] mLux;
     private final float[] mNits;
     private final Map<String, BrightnessCorrection> mCorrectionsByPackageName;
     private final Map<Integer, BrightnessCorrection> mCorrectionsByCategory;
     private final String mDescription;
+    private final boolean mShouldCollectColorSamples;
 
     private BrightnessConfiguration(float[] lux, float[] nits,
             Map<String, BrightnessCorrection> correctionsByPackageName,
-            Map<Integer, BrightnessCorrection> correctionsByCategory, String description) {
+            Map<Integer, BrightnessCorrection> correctionsByCategory, String description,
+            boolean shouldCollectColorSamples) {
         mLux = lux;
         mNits = nits;
         mCorrectionsByPackageName = correctionsByPackageName;
         mCorrectionsByCategory = correctionsByCategory;
         mDescription = description;
+        mShouldCollectColorSamples = shouldCollectColorSamples;
     }
 
     /**
@@ -119,6 +124,14 @@
         return mDescription;
     }
 
+    /**
+     * Returns whether color samples should be collected in
+     * {@link BrightnessChangeEvent#colorValueBuckets}.
+     */
+    public boolean shouldCollectColorSamples() {
+        return mShouldCollectColorSamples;
+    }
+
     @Override
     public void writeToParcel(Parcel dest, int flags) {
         dest.writeFloatArray(mLux);
@@ -138,6 +151,7 @@
             correction.writeToParcel(dest, flags);
         }
         dest.writeString(mDescription);
+        dest.writeBoolean(mShouldCollectColorSamples);
     }
 
     @Override
@@ -167,6 +181,7 @@
         if (mDescription != null) {
             sb.append(mDescription);
         }
+        sb.append(", shouldCollectColorSamples = " + mShouldCollectColorSamples);
         sb.append("'}");
         return sb.toString();
     }
@@ -181,6 +196,7 @@
         if (mDescription != null) {
             result = result * 31 + mDescription.hashCode();
         }
+        result = result * 31 + Boolean.hashCode(mShouldCollectColorSamples);
         return result;
     }
 
@@ -196,7 +212,8 @@
         return Arrays.equals(mLux, other.mLux) && Arrays.equals(mNits, other.mNits)
                 && mCorrectionsByPackageName.equals(other.mCorrectionsByPackageName)
                 && mCorrectionsByCategory.equals(other.mCorrectionsByCategory)
-                && Objects.equals(mDescription, other.mDescription);
+                && Objects.equals(mDescription, other.mDescription)
+                && mShouldCollectColorSamples == other.mShouldCollectColorSamples;
     }
 
     public static final @android.annotation.NonNull Creator<BrightnessConfiguration> CREATOR =
@@ -224,6 +241,8 @@
 
             final String description = in.readString();
             builder.setDescription(description);
+            final boolean shouldCollectColorSamples = in.readBoolean();
+            builder.setShouldCollectColorSamples(shouldCollectColorSamples);
             return builder.build();
         }
 
@@ -252,6 +271,7 @@
             serializer.endTag(null, TAG_BRIGHTNESS_POINT);
         }
         serializer.endTag(null, TAG_BRIGHTNESS_CURVE);
+
         serializer.startTag(null, TAG_BRIGHTNESS_CORRECTIONS);
         for (Map.Entry<String, BrightnessCorrection> entry :
                 mCorrectionsByPackageName.entrySet()) {
@@ -271,6 +291,12 @@
             serializer.endTag(null, TAG_BRIGHTNESS_CORRECTION);
         }
         serializer.endTag(null, TAG_BRIGHTNESS_CORRECTIONS);
+
+        serializer.startTag(null, TAG_BRIGHTNESS_PARAMS);
+        if (mShouldCollectColorSamples) {
+            serializer.attribute(null, ATTR_COLLECT_COLOR, Boolean.toString(true));
+        }
+        serializer.endTag(null, TAG_BRIGHTNESS_PARAMS);
     }
 
     /**
@@ -293,6 +319,7 @@
         List<Float> nitsList = new ArrayList<>();
         Map<String, BrightnessCorrection> correctionsByPackageName = new HashMap<>();
         Map<Integer, BrightnessCorrection> correctionsByCategory = new HashMap<>();
+        boolean shouldCollectColorSamples = false;
         final int configDepth = parser.getDepth();
         while (XmlUtils.nextElementWithin(parser, configDepth)) {
             if (TAG_BRIGHTNESS_CURVE.equals(parser.getName())) {
@@ -307,8 +334,7 @@
                     luxList.add(lux);
                     nitsList.add(nits);
                 }
-            }
-            if (TAG_BRIGHTNESS_CORRECTIONS.equals(parser.getName())) {
+            } else if (TAG_BRIGHTNESS_CORRECTIONS.equals(parser.getName())) {
                 final int correctionsDepth = parser.getDepth();
                 while (XmlUtils.nextElementWithin(parser, correctionsDepth)) {
                     if (!TAG_BRIGHTNESS_CORRECTION.equals(parser.getName())) {
@@ -328,6 +354,9 @@
                         }
                     }
                 }
+            } else if (TAG_BRIGHTNESS_PARAMS.equals(parser.getName())) {
+                shouldCollectColorSamples =
+                        Boolean.parseBoolean(parser.getAttributeValue(null, ATTR_COLLECT_COLOR));
             }
         }
         final int n = luxList.size();
@@ -350,6 +379,7 @@
             final BrightnessCorrection correction = entry.getValue();
             builder.addCorrectionByCategory(category, correction);
         }
+        builder.setShouldCollectColorSamples(shouldCollectColorSamples);
         return builder.build();
     }
 
@@ -374,6 +404,7 @@
         private Map<String, BrightnessCorrection> mCorrectionsByPackageName;
         private Map<Integer, BrightnessCorrection> mCorrectionsByCategory;
         private String mDescription;
+        private boolean mShouldCollectColorSamples;
 
         /**
          * Constructs the builder with the control points for the brightness curve.
@@ -498,6 +529,19 @@
         }
 
         /**
+         * Control whether screen color samples should be returned in
+         * {@link BrightnessChangeEvent#colorValueBuckets} if supported by the device.
+         *
+         * @param shouldCollectColorSamples true if color samples should be collected.
+         * @return
+         */
+        @NonNull
+        public Builder setShouldCollectColorSamples(boolean shouldCollectColorSamples) {
+            mShouldCollectColorSamples = shouldCollectColorSamples;
+            return this;
+        }
+
+        /**
          * Builds the {@link BrightnessConfiguration}.
          */
         @NonNull
@@ -506,7 +550,7 @@
                 throw new IllegalStateException("A curve must be set!");
             }
             return new BrightnessConfiguration(mCurveLux, mCurveNits, mCorrectionsByPackageName,
-                    mCorrectionsByCategory, mDescription);
+                    mCorrectionsByCategory, mDescription, mShouldCollectColorSamples);
         }
 
         private static void checkMonotonic(float[] vals, boolean strictlyIncreasing, String name) {
diff --git a/core/java/android/net/StaticIpConfiguration.java b/core/java/android/net/StaticIpConfiguration.java
index 5bc9953..990c114 100644
--- a/core/java/android/net/StaticIpConfiguration.java
+++ b/core/java/android/net/StaticIpConfiguration.java
@@ -25,6 +25,8 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 
+import com.android.internal.util.Preconditions;
+
 import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.List;
@@ -152,6 +154,7 @@
          * @return The {@link Builder} for chaining.
          */
         public @NonNull Builder setDnsServers(@NonNull Iterable<InetAddress> dnsServers) {
+            Preconditions.checkNotNull(dnsServers);
             mDnsServers = dnsServers;
             return this;
         }
@@ -175,8 +178,10 @@
             final StaticIpConfiguration config = new StaticIpConfiguration();
             config.ipAddress = mIpAddress;
             config.gateway = mGateway;
-            for (InetAddress server : mDnsServers) {
-                config.dnsServers.add(server);
+            if (mDnsServers != null) {
+                for (InetAddress server : mDnsServers) {
+                    config.dnsServers.add(server);
+                }
             }
             config.domains = mDomains;
             return config;
diff --git a/core/java/android/net/util/MultinetworkPolicyTracker.java b/core/java/android/net/util/MultinetworkPolicyTracker.java
index 4e88149..aa0f622 100644
--- a/core/java/android/net/util/MultinetworkPolicyTracker.java
+++ b/core/java/android/net/util/MultinetworkPolicyTracker.java
@@ -94,7 +94,8 @@
             }
         };
 
-        TelephonyManager.from(ctx).listen(new PhoneStateListener(handler.getLooper()) {
+        ctx.getSystemService(TelephonyManager.class).listen(
+                new PhoneStateListener(handler.getLooper()) {
             @Override
             public void onActiveDataSubscriptionIdChanged(int subId) {
                 mActiveSubId = subId;
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index ac7a0a8..deeeddc 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -1645,10 +1645,10 @@
      * Check that given app holds both permission and appop.
      * @hide
      */
-    public static boolean checkPermissionAndAppOp(Context context, boolean enforce,
-            int pid, int uid, String packageName, String permission, int op) {
-        return checkPermissionAndAppOp(context, enforce, pid, uid, packageName, permission, op,
-                true);
+    public static boolean checkPermissionAndAppOp(Context context, boolean enforce, int pid,
+            int uid, String packageName, @NonNull String featureId, String permission, int op) {
+        return checkPermissionAndAppOp(context, enforce, pid, uid, packageName, featureId,
+                permission, op, true);
     }
 
     /**
@@ -1657,16 +1657,17 @@
      */
     public static boolean checkPermissionAndCheckOp(Context context, boolean enforce,
             int pid, int uid, String packageName, String permission, int op) {
-        return checkPermissionAndAppOp(context, enforce, pid, uid, packageName, permission, op,
-                false);
+        return checkPermissionAndAppOp(context, enforce, pid, uid, packageName,
+                null /* featureId is not needed when not noting */, permission, op, false);
     }
 
     /**
      * Check that given app holds both permission and appop.
      * @hide
      */
-    private static boolean checkPermissionAndAppOp(Context context, boolean enforce,
-            int pid, int uid, String packageName, String permission, int op, boolean note) {
+    private static boolean checkPermissionAndAppOp(Context context, boolean enforce, int pid,
+            int uid, String packageName, @Nullable String featureId, String permission, int op,
+            boolean note) {
         if (context.checkPermission(permission, pid, uid) != PERMISSION_GRANTED) {
             if (enforce) {
                 throw new SecurityException(
@@ -1679,7 +1680,7 @@
         AppOpsManager appOps = context.getSystemService(AppOpsManager.class);
         final int mode;
         if (note) {
-            mode = appOps.noteOpNoThrow(op, uid, packageName);
+            mode = appOps.noteOpNoThrow(op, uid, packageName, featureId, null);
         } else {
             try {
                 appOps.checkPackage(uid, packageName);
@@ -1711,14 +1712,15 @@
         }
     }
 
-    private boolean checkPermissionAndAppOp(boolean enforce,
-            int pid, int uid, String packageName, String permission, int op) {
-        return checkPermissionAndAppOp(mContext, enforce, pid, uid, packageName, permission, op);
+    private boolean checkPermissionAndAppOp(boolean enforce, int pid, int uid, String packageName,
+            @Nullable String featureId, String permission, int op) {
+        return checkPermissionAndAppOp(mContext, enforce, pid, uid, packageName, featureId,
+                permission, op);
     }
 
     private boolean noteAppOpAllowingLegacy(boolean enforce,
-            int pid, int uid, String packageName, int op) {
-        final int mode = mAppOps.noteOpNoThrow(op, uid, packageName);
+            int pid, int uid, String packageName, @Nullable String featureId, int op) {
+        final int mode = mAppOps.noteOpNoThrow(op, uid, packageName, featureId, null);
         switch (mode) {
             case AppOpsManager.MODE_ALLOWED:
                 return true;
@@ -1749,50 +1751,68 @@
 
     /** {@hide} */
     public boolean checkPermissionReadAudio(boolean enforce,
-            int pid, int uid, String packageName) {
-        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName,
-                READ_EXTERNAL_STORAGE, OP_READ_EXTERNAL_STORAGE)) return false;
-        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, OP_READ_MEDIA_AUDIO);
+            int pid, int uid, String packageName, @Nullable String featureId) {
+        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName, featureId,
+                READ_EXTERNAL_STORAGE, OP_READ_EXTERNAL_STORAGE)) {
+            return false;
+        }
+        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, featureId,
+                OP_READ_MEDIA_AUDIO);
     }
 
     /** {@hide} */
     public boolean checkPermissionWriteAudio(boolean enforce,
-            int pid, int uid, String packageName) {
-        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName,
-                WRITE_EXTERNAL_STORAGE, OP_WRITE_EXTERNAL_STORAGE)) return false;
-        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, OP_WRITE_MEDIA_AUDIO);
+            int pid, int uid, String packageName, @Nullable String featureId) {
+        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName, featureId,
+                WRITE_EXTERNAL_STORAGE, OP_WRITE_EXTERNAL_STORAGE)) {
+            return false;
+        }
+        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, featureId,
+                OP_WRITE_MEDIA_AUDIO);
     }
 
     /** {@hide} */
     public boolean checkPermissionReadVideo(boolean enforce,
-            int pid, int uid, String packageName) {
-        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName,
-                READ_EXTERNAL_STORAGE, OP_READ_EXTERNAL_STORAGE)) return false;
-        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, OP_READ_MEDIA_VIDEO);
+            int pid, int uid, String packageName, @Nullable String featureId) {
+        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName, featureId,
+                READ_EXTERNAL_STORAGE, OP_READ_EXTERNAL_STORAGE)) {
+            return false;
+        }
+        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, featureId,
+                OP_READ_MEDIA_VIDEO);
     }
 
     /** {@hide} */
     public boolean checkPermissionWriteVideo(boolean enforce,
-            int pid, int uid, String packageName) {
-        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName,
-                WRITE_EXTERNAL_STORAGE, OP_WRITE_EXTERNAL_STORAGE)) return false;
-        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, OP_WRITE_MEDIA_VIDEO);
+            int pid, int uid, String packageName, @Nullable String featureId) {
+        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName, featureId,
+                WRITE_EXTERNAL_STORAGE, OP_WRITE_EXTERNAL_STORAGE)) {
+            return false;
+        }
+        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, featureId,
+                OP_WRITE_MEDIA_VIDEO);
     }
 
     /** {@hide} */
     public boolean checkPermissionReadImages(boolean enforce,
-            int pid, int uid, String packageName) {
-        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName,
-                READ_EXTERNAL_STORAGE, OP_READ_EXTERNAL_STORAGE)) return false;
-        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, OP_READ_MEDIA_IMAGES);
+            int pid, int uid, String packageName, @Nullable String featureId) {
+        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName, featureId,
+                READ_EXTERNAL_STORAGE, OP_READ_EXTERNAL_STORAGE)) {
+            return false;
+        }
+        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, featureId,
+                OP_READ_MEDIA_IMAGES);
     }
 
     /** {@hide} */
     public boolean checkPermissionWriteImages(boolean enforce,
-            int pid, int uid, String packageName) {
-        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName,
-                WRITE_EXTERNAL_STORAGE, OP_WRITE_EXTERNAL_STORAGE)) return false;
-        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, OP_WRITE_MEDIA_IMAGES);
+            int pid, int uid, String packageName, @Nullable String featureId) {
+        if (!checkPermissionAndAppOp(enforce, pid, uid, packageName, featureId,
+                WRITE_EXTERNAL_STORAGE, OP_WRITE_EXTERNAL_STORAGE)) {
+            return false;
+        }
+        return noteAppOpAllowingLegacy(enforce, pid, uid, packageName, featureId,
+                OP_WRITE_MEDIA_IMAGES);
     }
 
     /** {@hide} */
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 50dac46..3ac7deb 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -14099,6 +14099,77 @@
                 "android.settings.panel.action.VOLUME";
     }
 
+    /**
+     * Activity Action: Show setting page to process the addition of Wi-Fi networks to the user's
+     * saved network list. The app should send a new intent with an extra that holds a maximum of
+     * five {@link android.net.wifi.WifiConfiguration} that specify credentials for the networks to
+     * be added to the user's database. The Intent should be sent via the {@link
+     * android.app.Activity#startActivityForResult(Intent, int)} API.
+     * <p>
+     * Note: The app sending the Intent to add the credentials doesn't get any ownership over the
+     * newly added network(s). For the Wi-Fi stack, these networks will look like the user
+     * manually added them from the Settings UI.
+     * <p>
+     * Input: The app should put parcelable array list to
+     * {@link android.net.wifi.WifiConfiguration} into the
+     * {@link #EXTRA_WIFI_CONFIGURATION_LIST} extra.
+     * <p>
+     * Output: After {@link android.app.Activity#startActivityForResult(Intent, int)}, the
+     * callback {@link android.app.Activity#onActivityResult(int, int, Intent)} will have a
+     * result code {@link android.app.Activity#RESULT_OK} to indicate user pressed the save
+     * button to save the networks or {@link android.app.Activity#RESULT_CANCELED} to indicate
+     * that the user rejected the request. Additionally, an integer array list, stored in
+     * {@link #EXTRA_WIFI_CONFIGURATION_RESULT_LIST}, will indicate the process result of
+     * each network.
+     */
+    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+    public static final String ACTION_WIFI_ADD_NETWORKS =
+            "android.settings.WIFI_ADD_NETWORKS";
+
+    /**
+     * A bundle extra of {@link #ACTION_WIFI_ADD_NETWORKS} intent action that indicates all the
+     * {@link android.net.wifi.WifiConfiguration} that would be saved.
+     */
+    public static final String EXTRA_WIFI_CONFIGURATION_LIST =
+            "android.provider.extra.WIFI_CONFIGURATION_LIST";
+
+    /**
+     * A bundle extra of the result of {@link #ACTION_WIFI_ADD_NETWORKS} intent action that
+     * indicates the action result of the saved {@link android.net.wifi.WifiConfiguration}. It's
+     * value of AddWifiResult interface, and will be 1:1 mapping to the element in {@link
+     * #EXTRA_WIFI_CONFIGURATION_LIST}.
+     */
+    public static final String EXTRA_WIFI_CONFIGURATION_RESULT_LIST =
+            "android.provider.extra.WIFI_CONFIGURATION_RESULT_LIST";
+
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = {"ADD_WIFI_RESULT_"}, value = {
+            ADD_WIFI_RESULT_SUCCESS,
+            ADD_WIFI_RESULT_ADD_OR_UPDATE_FAILED,
+            ADD_WIFI_RESULT_ALREADY_EXISTS
+    })
+    public @interface AddWifiResult {
+    }
+
+    /**
+     * A result of {@link #ACTION_WIFI_ADD_NETWORKS} intent action that saving or updating the
+     * corresponding Wi-Fi network was successful.
+     */
+    public static final int ADD_WIFI_RESULT_SUCCESS = 0;
+
+    /**
+     * A result of {@link #ACTION_WIFI_ADD_NETWORKS} intent action that saving the corresponding
+     * Wi-Fi network failed.
+     */
+    public static final int ADD_WIFI_RESULT_ADD_OR_UPDATE_FAILED = 1;
+
+    /**
+     * A result of {@link #ACTION_WIFI_ADD_NETWORKS} intent action that indicates the Wi-Fi network
+     * already exists.
+     */
+    public static final int ADD_WIFI_RESULT_ALREADY_EXISTS = 2;
+
     private static final String[] PM_WRITE_SETTINGS = {
         android.Manifest.permission.WRITE_SETTINGS
     };
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 8ee7a0e..2ea3b63 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -5402,11 +5402,10 @@
                 mTranslator.translateEventInScreenToAppWindow(event);
             }
 
-            // Enter touch mode on down or scroll, if it is coming from a touch screen device,
-            // exit otherwise.
+            // Enter touch mode if event is coming from a touch screen device.
             final int action = event.getAction();
-            if (action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_SCROLL) {
-                ensureTouchMode(event.isFromSource(InputDevice.SOURCE_TOUCHSCREEN));
+            if (event.isFromSource(InputDevice.SOURCE_TOUCHSCREEN)) {
+                ensureTouchMode(true);
             }
 
             if (action == MotionEvent.ACTION_DOWN) {
diff --git a/core/java/com/android/internal/compat/IPlatformCompat.aidl b/core/java/com/android/internal/compat/IPlatformCompat.aidl
index 5857642..045a680 100644
--- a/core/java/com/android/internal/compat/IPlatformCompat.aidl
+++ b/core/java/com/android/internal/compat/IPlatformCompat.aidl
@@ -133,7 +133,7 @@
     boolean isChangeEnabledByUid(long changeId, int uid);
 
     /**
-     * Add overrides to compatibility changes.
+     * Add overrides to compatibility changes. Kills the app to allow the changes to take effect.
      *
      * @param overrides Parcelable containing the compat change overrides to be applied.
      * @param packageName The package name of the app whose changes will be overridden.
@@ -142,7 +142,28 @@
     void setOverrides(in CompatibilityChangeConfig overrides, in String packageName);
 
     /**
-     * Revert overrides to compatibility changes.
+     * Add overrides to compatibility changes. Doesn't kill the app, to be only used in tests.
+     *
+     * @param overrides Parcelable containing the compat change overrides to be applied.
+     * @param packageName The package name of the app whose changes will be overridden.
+     *
+     */
+    void setOverridesForTest(in CompatibilityChangeConfig overrides, in String packageName);
+
+    /**
+     * Removes an override previously added via {@link #setOverrides(CompatibilityChangeConfig,
+     * String)}. This restores the default behaviour for the given change and app, once any app
+     * processes have been restarted.
+     * Kills the app to allow the changes to take effect.
+     *
+     * @param changeId    The ID of the change that was overridden.
+     * @param packageName The app package name that was overridden.
+     * @return {@code true} if an override existed;
+     */
+    boolean clearOverride(long changeId, String packageName);
+
+    /**
+     * Revert overrides to compatibility changes. Kills the app to allow the changes to take effect.
      *
      * @param packageName The package name of the app whose overrides will be cleared.
      *
diff --git a/core/java/com/android/internal/util/ScreenshotHelper.java b/core/java/com/android/internal/util/ScreenshotHelper.java
index cac691c..f6f187f 100644
--- a/core/java/com/android/internal/util/ScreenshotHelper.java
+++ b/core/java/com/android/internal/util/ScreenshotHelper.java
@@ -6,6 +6,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
+import android.net.Uri;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
@@ -58,7 +59,7 @@
      */
     public void takeScreenshot(final int screenshotType, final boolean hasStatus,
             final boolean hasNav, @NonNull Handler handler,
-            @Nullable Consumer<Boolean> completionConsumer) {
+            @Nullable Consumer<Uri> completionConsumer) {
         takeScreenshot(screenshotType, hasStatus, hasNav, SCREENSHOT_TIMEOUT_MS, handler,
                 completionConsumer);
     }
@@ -88,7 +89,7 @@
      */
     public void takeScreenshot(final int screenshotType, final boolean hasStatus,
             final boolean hasNav, long timeoutMs, @NonNull Handler handler,
-            @Nullable Consumer<Boolean> completionConsumer) {
+            @Nullable Consumer<Uri> completionConsumer) {
         synchronized (mScreenshotLock) {
             if (mScreenshotConnection != null) {
                 return;
@@ -108,7 +109,7 @@
                         }
                     }
                     if (completionConsumer != null) {
-                        completionConsumer.accept(false);
+                        completionConsumer.accept(null);
                     }
                 }
             };
@@ -135,7 +136,7 @@
                                     }
                                 }
                                 if (completionConsumer != null) {
-                                    completionConsumer.accept(true);
+                                    completionConsumer.accept((Uri) msg.obj);
                                 }
                             }
                         };
@@ -148,7 +149,7 @@
                         } catch (RemoteException e) {
                             Log.e(TAG, "Couldn't take screenshot: " + e);
                             if (completionConsumer != null) {
-                                completionConsumer.accept(false);
+                                completionConsumer.accept(null);
                             }
                         }
                     }
diff --git a/core/java/com/android/internal/widget/DecorCaptionView.java b/core/java/com/android/internal/widget/DecorCaptionView.java
index 4014c45..b5d787c2 100644
--- a/core/java/com/android/internal/widget/DecorCaptionView.java
+++ b/core/java/com/android/internal/widget/DecorCaptionView.java
@@ -123,6 +123,8 @@
     private void init(Context context) {
         mDragSlop = ViewConfiguration.get(context).getScaledTouchSlop();
         mGestureDetector = new GestureDetector(context, this);
+        setContentDescription(context.getString(R.string.accessibility_freeform_caption,
+                context.getPackageManager().getApplicationLabel(context.getApplicationInfo())));
     }
 
     @Override
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 545538b..e1ca1f6 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -375,7 +375,7 @@
     <protected-broadcast android:name="android.net.wifi.p2p.THIS_DEVICE_CHANGED" />
     <protected-broadcast android:name="android.net.wifi.p2p.PEERS_CHANGED" />
     <protected-broadcast android:name="android.net.wifi.p2p.CONNECTION_STATE_CHANGE" />
-    <protected-broadcast android:name="android.net.wifi.p2p.PERSISTENT_GROUPS_CHANGED" />
+    <protected-broadcast android:name="android.net.wifi.p2p.action.WIFI_P2P_PERSISTENT_GROUPS_CHANGED" />
     <protected-broadcast android:name="android.net.conn.TETHER_STATE_CHANGED" />
     <protected-broadcast android:name="android.net.conn.INET_CONDITION_ACTION" />
     <protected-broadcast android:name="android.net.conn.NETWORK_CONDITIONS_MEASURED" />
@@ -660,7 +660,6 @@
         android:icon="@drawable/perm_group_contacts"
         android:label="@string/permgrouplab_contacts"
         android:description="@string/permgroupdesc_contacts"
-        android:request="@string/permgrouprequest_contacts"
         android:priority="100" />
 
     <!-- Allows an application to read the user's contacts data.
@@ -691,7 +690,6 @@
         android:icon="@drawable/perm_group_calendar"
         android:label="@string/permgrouplab_calendar"
         android:description="@string/permgroupdesc_calendar"
-        android:request="@string/permgrouprequest_calendar"
         android:priority="200" />
 
     <!-- Allows an application to read the user's calendar data.
@@ -722,7 +720,6 @@
         android:icon="@drawable/perm_group_sms"
         android:label="@string/permgrouplab_sms"
         android:description="@string/permgroupdesc_sms"
-        android:request="@string/permgrouprequest_sms"
         android:priority="300" />
 
     <!-- Allows an application to send SMS messages.
@@ -841,7 +838,6 @@
         android:icon="@drawable/perm_group_storage"
         android:label="@string/permgrouplab_storage"
         android:description="@string/permgroupdesc_storage"
-        android:request="@string/permgrouprequest_storage"
         android:priority="900" />
 
     <!-- Allows an application to read from external storage.
@@ -930,10 +926,6 @@
         android:icon="@drawable/perm_group_location"
         android:label="@string/permgrouplab_location"
         android:description="@string/permgroupdesc_location"
-        android:request="@string/permgrouprequest_location"
-        android:requestDetail="@string/permgrouprequestdetail_location"
-        android:backgroundRequest="@string/permgroupbackgroundrequest_location"
-        android:backgroundRequestDetail="@string/permgroupbackgroundrequestdetail_location"
         android:priority="400" />
 
     <!-- Allows an app to access precise location.
@@ -985,7 +977,6 @@
         android:icon="@drawable/perm_group_call_log"
         android:label="@string/permgrouplab_calllog"
         android:description="@string/permgroupdesc_calllog"
-        android:request="@string/permgrouprequest_calllog"
         android:priority="450" />
 
     <!-- Allows an application to access the IMS call service: making and
@@ -1074,7 +1065,6 @@
         android:icon="@drawable/perm_group_phone_calls"
         android:label="@string/permgrouplab_phone"
         android:description="@string/permgroupdesc_phone"
-        android:request="@string/permgrouprequest_phone"
         android:priority="500" />
 
     <!-- Allows read only access to phone state, including the phone number of the device,
@@ -1195,7 +1185,6 @@
         android:icon="@drawable/perm_group_microphone"
         android:label="@string/permgrouplab_microphone"
         android:description="@string/permgroupdesc_microphone"
-        android:request="@string/permgrouprequest_microphone"
         android:priority="600" />
 
     <!-- Allows an application to record audio.
@@ -1217,7 +1206,6 @@
         android:icon="@drawable/perm_group_activity_recognition"
         android:label="@string/permgrouplab_activityRecognition"
         android:description="@string/permgroupdesc_activityRecognition"
-        android:request="@string/permgrouprequest_activityRecognition"
         android:priority="1000" />
 
     <!-- Allows an application to recognize physical activity.
@@ -1260,7 +1248,6 @@
         android:icon="@drawable/perm_group_camera"
         android:label="@string/permgrouplab_camera"
         android:description="@string/permgroupdesc_camera"
-        android:request="@string/permgrouprequest_camera"
         android:priority="700" />
 
     <!-- Required to be able to access the camera device.
@@ -1299,7 +1286,6 @@
         android:icon="@drawable/perm_group_sensors"
         android:label="@string/permgrouplab_sensors"
         android:description="@string/permgroupdesc_sensors"
-        android:request="@string/permgrouprequest_sensors"
         android:priority="800" />
 
     <!-- Allows an application to access data from sensors that the user uses to
@@ -1615,6 +1601,7 @@
 
     <!-- Allows network stack services (Connectivity and Wifi) to coordinate
          <p>Not for use by third-party or privileged applications.
+         @SystemApi
          @hide This should only be used by Connectivity and Wifi Services.
     -->
     <permission android:name="android.permission.NETWORK_STACK"
@@ -1622,6 +1609,7 @@
 
     <!-- Allows Settings and SystemUI to call methods in Networking services
          <p>Not for use by third-party or privileged applications.
+         @SystemApi
          @hide This should only be used by Settings and SystemUI.
     -->
     <permission android:name="android.permission.NETWORK_SETTINGS"
@@ -3583,7 +3571,8 @@
         android:protectionLevel="signature" />
 
     <!-- Allows an application to configure and connect to Wifi displays
-         @hide -->
+         @hide
+         @SystemApi -->
     <permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY"
         android:protectionLevel="signature" />
 
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 485162c..c8ced192 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Gee &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; toegang tot hierdie toestel se ligging?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Die program sal net toegang tot die ligging hê terwyl jy die program gebruik"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Laat &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; toe om &lt;b&gt;enige tyd&lt;/b&gt; toegang tot jou toestel se ligging te kry?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Program kan tans net toegang tot ligging kry terwyl jy die program gebruik"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"by jou kalender in te gaan"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Gee &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; toegang tot jou kalender?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Tik om te kyk wat geblokkeer word."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Stelsel"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Instellings"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Bystandmodus"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Die Android TV-toestel sal binnekort afskakel; druk \'n knoppie om dit aan te hou."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Die toestel gaan binnekort afskakel; druk om dit aan te hou."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofoon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"wys tans bo-oor ander programme op jou skerm"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Regstreekse deling is nie beskikbaar nie"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Programmelys"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Opneemtoestemming is nie aan hierdie program verleen nie, maar dit kan oudio deur hierdie USB-toestel opneem."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Tuis"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Terug"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Onlangse programme"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Kennisgewings"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Kitsinstellings"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Kragdialoog"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Wissel verdeelde skerm"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Sluitskerm"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Skermkiekie"</string>
 </resources>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index f0a4307..eff754c 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; የዚህ መሣሪያ አካባቢን እንዲደርስ ይፈቀድለት?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"መተግበሪያው እርስዎ ሲጠቀሙበት ብቻ ነው የአካባቢው መዳረሻ የሚኖረው"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"የዚህን መሣሪያ መገኛ አካባቢ &lt;b&gt;ሁልጊዜ&lt;/b&gt; መድረስ እንዲችል ለ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ይፈቀድ?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"እርስዎ መተግበሪያውን እየተጠቀሙ እያሉ መተግበሪያ አሁን ላይ የመገኛ አካባቢን መድረስ ይችላል"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"ይህ እርስዎ መተግበሪያውን በማይጠቀሙበት ጊዜ እንኳ የእርስዎን መገኛ አካባቢ ሁልጊዜ መድረስ ሊፈልግ ይችል ይሆናል። በ"<annotation id="link">"ቅንብሮች"</annotation>" ውስጥ ይፍቀዱ።"</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"ቀን መቁጠሪያ"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"የእርስዎን ቀን መቁጠሪያ ይድረሱበት"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ቀን መቁጠሪያዎን እንዲደርስ ይፈቀድለት?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"ምን እንደታገደ ለመፈተሽ መታ ያድርጉ።"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"ሥርዓት"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"ቅንብሮች"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"ተጠባባቂ"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"የAndroid TV መሣሪያው በቅርቡ ይጠፋል፣ እንደበራ ለማቆየት ይጫኑ።"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"መሣሪያው በቅርቡ ይጠፋል፤ እንደበራ ለማቆየት ይጫኑ።"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ካሜራ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ማይክሮፎን"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"በማያዎ ላይ በሌሎች መተግበሪያዎች ላይ በማሳየት ላይ"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"ቀጥታ ማጋራት አይገኝም"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"የመተግበሪያዎች ዝርዝር"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"ይህ መተግበሪያ የመቅረጽ ፈቃድ አልተሰጠውም፣ ነገር ግን በዚህ ዩኤስቢ መሣሪያ በኩል ኦዲዮን መቅረጽ ይችላል።"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"መነሻ"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"ተመለስ"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"የቅርብ ጊዜ መተግበሪያዎች"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"ማሳወቂያዎች"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"ፈጣን ቅንብሮች"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"የኃይል መገናኛ"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"የተከፈለ ማያን ቀያይር"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"የማያ ገጽ ቁልፍ"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"ቅጽበታዊ ገጽ እይታ"</string>
 </resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 4ecf6e7..7f75fad 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -298,7 +298,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"‏هل تريد السماح لتطبيق &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; بالوصول إلى الموقع الجغرافي لهذا الجهاز؟"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"لن يكون بإمكان التطبيق الوصول إلى الموقع الجغرافي إلا عند استخدامك لهذا التطبيق."</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"‏هل تريد السماح للتطبيق &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; بالوصول إلى الموقع الجغرافي لهذا الجهاز &lt;b&gt;طوال الوقت&lt;/b&gt;؟"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"لا يمكن للتطبيقات الآن معرفة الموقع الجغرافي إلا عند استخدامك للتطبيق."</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"التقويم"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"الوصول تقويمك"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"‏هل تريد السماح لتطبيق &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; بالدخول إلى التقويم؟"</string>
@@ -2095,9 +2096,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"انقر للاطّلاع على ما تم حظره."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"النظام"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"الإعدادات"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"وضع الاستعداد"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"‏سيتم إيقاف جهاز Android TV قريبًا، اضغط على أحد الأزرار لمواصلة تشغيله."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"سيتم إيقاف الجهاز قريبًا، اضغط لمواصلة تشغيله."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"كاميرا"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ميكروفون"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"العرض فوق التطبيقات الأخرى على شاشتك"</string>
@@ -2142,22 +2140,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"لا تتوفّر إمكانية المشاركة المباشرة."</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"قائمة التطبيقات"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"‏لم يتم منح هذا التطبيق إذن تسجيل، ولكن يمكنه تسجيل الصوت من خلال جهاز USB هذا."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"الشاشة الرئيسية"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"رجوع"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"التطبيقات المستخدمة مؤخرًا"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"الإشعارات"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"الإعدادات السريعة"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"مربّع حوار الطاقة"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"تبديل \"تقسيم الشاشة\""</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"شاشة القفل"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"لقطة شاشة"</string>
 </resources>
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 81a04b7..31604ef 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;ক এই ডিভাইচটোৰ অৱস্থান জানিবলৈ অনুমতি দিবনে?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"আপুনি এই এপ্ ব্যৱহাৰ কৰি থকাৰ সময়তহে ই আপোনাৰ অৱস্থান এক্সেছ কৰিব পাৰে"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&amp;gtক এই ডিভাইচটোৰ অৱস্থান &lt;b&gt;সকলো সময়তে&lt;/b&gt; এক্সেছ কৰিবলৈ দিবনে?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"আপুনি কোনো এপ্ ব্যৱহাৰ কৰি থকাৰ সময়তহে সেই এপ্‌টোৱে অৱস্থান এক্সেছ কৰিব পাৰিব"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"কেলেণ্ডাৰ"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"আপোনাৰ কেলেণ্ডাৰ ব্যৱহাৰ কৰিব পাৰে"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;ক আপোনাৰ কেলেণ্ডাৰ চাবলৈ অনুমতি দিবনে?"</string>
@@ -1771,10 +1772,8 @@
     <string name="package_updated_device_owner" msgid="1847154566357862089">"আপোনাৰ প্ৰশাসকে আপেডট কৰিছে"</string>
     <string name="package_deleted_device_owner" msgid="2307122077550236438">"আপোনাৰ প্ৰশাসকে মচিছে"</string>
     <string name="confirm_battery_saver" msgid="639106420541753635">"ঠিক আছে"</string>
-    <!-- no translation found for battery_saver_description_with_learn_more (1002571337088673987) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (2307555792915978653) -->
-    <skip />
+    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"বেটাৰীৰ জীৱনকাল বৃদ্ধি কৰিবলৈ, বেটাৰি সঞ্চয়কাৰীয়ে:\n·গাঢ় ৰঙৰ থীম অন কৰে\n·নেপথ্যৰ কাৰ্যকলাপ, কিছুমান ভিজুৱেল প্ৰভাৱ আৰু “Hey Google”ৰ দৰে অন্য সুবিধাসমূহ অফ কৰে অথবা সেইবোৰ সীমাবদ্ধ কৰে\n\n"<annotation id="url">"অধিক জানক"</annotation></string>
+    <string name="battery_saver_description" msgid="2307555792915978653">"বেটাৰীৰ জীৱনকাল বৃদ্ধি কৰিবলৈ, বেটাৰি সঞ্চয়কাৰীয়ে:\n·গাঢ় ৰঙৰ থীম অন কৰে\n·নেপথ্যৰ কাৰ্যকলাপ, কিছুমান ভিজুৱেল প্ৰভাৱ আৰু “Hey Google”ৰ দৰে অন্য সুবিধাসমূহ অফ কৰে অথবা সেইবোৰ সীমাবদ্ধ কৰে"</string>
     <string name="data_saver_description" msgid="6015391409098303235">"ডেটা ব্য়ৱহাৰ মাত্ৰা কম কৰিবৰ বাবে ডেটা সঞ্চয়কাৰীয়ে কিছুমান এপক নেপথ্য়ত ডেটা প্ৰেৰণ বা সংগ্ৰহ কৰাত বাধা প্ৰদান কৰে। আপুনি বৰ্তমান ব্য়ৱহাৰ কৰি থকা এটা এপে ডেটা ব্য়ৱহাৰ কৰিব পাৰে, কিন্তু সঘনাই এই কার্য কৰিব নোৱাৰিব পাৰে। ইয়াৰ অৰ্থ এইয়ে হ\'ব পাৰে যে, উদাহৰণস্বৰূপে, আপুনি নিটিপা পর্যন্ত প্ৰতিচ্ছবিসমূহ দেখুওৱা নহ’ব।"</string>
     <string name="data_saver_enable_title" msgid="4674073932722787417">"ডেটা সঞ্চয়কাৰী অন কৰিবনে?"</string>
     <string name="data_saver_enable_button" msgid="7147735965247211818">"অন কৰক"</string>
@@ -1965,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"কি কি অৱৰোধ কৰা হৈছে জানিবলৈ টিপক।"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"ছিষ্টেম"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"ছেটিংসমূহ"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"ষ্টেণ্ডবাই"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV ডিভাইচটো অতি সোনকালে অফ হ\'ব, এইটো অন ৰাখিবলৈ যিকোনো এটা বুটাম টিপক।"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"এই ডিভাইচটো অতি সোনকালে অফ হ\'ব, এইটো অন ৰাখিবলৈ টিপক।"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"কেমেৰা"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"মাইক্ৰ\'ফ\'ন"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"স্ক্ৰীণত অইন এপৰ ওপৰত দেখুৱাওক"</string>
@@ -2008,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"পোনপটীয়া শ্বেয়াৰৰ সুবিধা নাই"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"এপ্‌সমূহৰ সূচী"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"এই এপ্‌টোক ৰেকর্ড কৰাৰ অনুমতি দিয়া হোৱা নাই কিন্তু ই এই ইউএছবি ডিভাইচটোৰ জৰিয়তে অডিঅ\' ৰেকর্ড কৰিব পাৰে।"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"গৃহ"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"উভতি যাওক"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"শেহতীয়া এপ্‌সমূহ"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"জাননীসমূহ"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"ক্ষিপ্ৰ ছেটিংসমূহ"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"পাৱাৰ ডায়লগ"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"বিভাজিত স্ক্ৰীন ট’গল কৰক"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"লক স্ক্ৰীন"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"স্ক্ৰীণশ্বট"</string>
 </resources>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index 9f43c36..40f5201 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; tətbiqinə bu cihazın məkanına daxil olmaq icazəsi verilsin?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Tətbiq yalnız ondan istifadə etiyiniz zaman məkanı əldə edə bilər"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; tətbiqin bu cihazın məkanına daxil olmasına icazə verilsin&lt;b&gt;all the time&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Tətbiq yalnız ondan istifadə etdiyiniz zaman məkana daxil ola biləcək"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Təqvim"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"təqvimə daxil olun"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; tətbiqinə təqvimə daxil olmaq icazəsi verilsin?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Nəyin blok edildiyini yoxlamaq üçün klikləyin."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistem"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Ayarlar"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Gözləmə rejimi"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV cihazı tezliklə sönəcək; aktiv saxlamaq üçün düyməyə basın."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Cihaz tezliklə sönəcək; aktiv saxlamaq üçün basın."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ekrandakı digər tətbiqlərdə göstərin"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Birbaşa paylaşım əlçatan deyil"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Tətbiq siyahısı"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Bu tətbiqə yazmaq icazəsi verilməyib, lakin, bu USB vasitəsilə səs yaza bilər."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Əsas səhifə"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Geri"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Son Tətbiqlər"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Bildirişlər"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Sürətli Ayarlar"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Yandırıb-söndürmə dialoqu"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Bölünmüş Ekrana keçid"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Kilid Ekranı"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Ekran şəkli"</string>
 </resources>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index a6ad733..5e56c64 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -289,7 +289,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Želite li da omogućite da &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; pristupa lokaciji ovog uređaja?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Aplikacija će imati pristup lokaciji samo dok koristite aplikaciju"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Želite li da dozvolite da &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; pristupa lokaciji uređaja &lt;b&gt;u bilo kom trenutku&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Aplikacija trenutno može da pristupa lokaciji samo kada koristite aplikaciju"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Ova aplikacija možda želi da pristupa lokaciji sve vreme, čak i kada ne koristite aplikaciju. Omogućite u "<annotation id="link">"podešavanjima"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendar"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"pristupi kalendaru"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Želite li da omogućite da &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; pristupa kalendaru?"</string>
@@ -1996,9 +1996,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Dodirnite da biste proverili šta je blokirano."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistem"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Podešavanja"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Stanje pripravnosti"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV će se uskoro isključiti. Pritisnite dugme da bi ostao uključen."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Uređaj će se uskoro isključiti. Pritisnite da bi ostao uključen."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"prikazuje se na ekranu dok koristite druge aplikacije"</string>
@@ -2040,22 +2037,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Direktno deljenje nije dostupno"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lista aplikacija"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Ova aplikacija nema dozvolu za snimanje, ali bi mogla da snima zvuk pomoću ovog USB uređaja."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Početak"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Nazad"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Nedavne aplikacije"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Obaveštenja"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Brza podešavanja"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dijalog napajanja"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Uključite/isključite podeljeni ekran"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Zaključani ekran"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Snimak ekrana"</string>
 </resources>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 92cad08..6e22721 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -292,7 +292,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Дазволіць праграме &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; доступ да звестак аб месцазнаходжанні гэтай прылады?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Праграма будзе мець доступ да звестак пра месцазнаходжанне толькі падчас карыстання ёю"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Дазволіць праграме &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; доступ да даных пра месцазнаходжанне гэтай прылады &lt;b&gt;ўвесь час&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Цяпер праграма можа мець доступ да звестак пра месцазнаходжанне, толькі калі яна выкарыстоўваецца"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Каляндар"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"атрымліваць доступ да вашага календара"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Дазволіць праграме &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; доступ да вашага календара?"</string>
@@ -2029,9 +2030,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Націсніце, каб паглядзець заблакіраванае."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Сістэма"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Налады"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Рэжым чакання"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Прылада Android TV неўзабаве выключыцца. Каб пакінуць яе ўключанай, націсніце кнопку."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Прылада неўзабаве выключыцца. Націсніце, каб пакінуць яе ўключанай."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Мікрафон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"паказваецца паверх іншых праграм на экране"</string>
@@ -2074,22 +2072,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Непасрэднае абагульванне недаступнае"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Спіс праграм"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"У гэтай праграмы няма дазволу на запіс, аднак яна зможа запісваць аўдыя праз гэту USB-прыладу."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Галоўная старонка"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Назад"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Нядаўнія праграмы"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Апавяшчэнні"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Хуткія налады"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Дыялогавае акно сілкавання"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Пераключальнік падзеленага экрана"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Экран блакіроўкі"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Здымак экрана"</string>
 </resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 9a4ca0c..00e2cb7 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Да се разреши ли на &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; да осъществява достъп до местоположението на това устройство?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Само когато използвате приложението, то ще има достъп до местоположението"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Да се разреши ли на &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; достъп до местоположението на това устройство &lt;b&gt;по всяко време&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Понастоящем приложението има достъп до местоположението само когато се използва"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"има достъп до календара ви"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Да се разреши ли на &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; да осъществява достъп до календара ви?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Докоснете, за да проверите какво е блокирано."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Система"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Настройки"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Режим на готовност"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Устройството с Android TV скоро ще се изключи. Натиснете бутон, за да остане включено."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Устройството скоро ще се изключи. Натиснете, за да остане включено."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"се показва върху други приложения на екрана"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Няма възможност за директно споделяне"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Списък с приложения"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Приложението няма разрешение за записване, но може да записва звук чрез това USB устройство."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Начало"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Назад"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Скорошни приложения"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Известия"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Бързи настройки"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Диалогов прозорец за захранването"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Превключване на разделения екран"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Заключен екран"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Екранна снимка"</string>
 </resources>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index 4dc5f5c..00974d7 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; অ্যাপকে এই ডিভাইসের লোকেশন অ্যাক্সেস করতে দেবেন?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"আপনি এই অ্যাপ ব্যবহার করার সময়েই শুধু সেটি আপনার লোকেশন অ্যাক্সেস করতে পারবে"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; অ্যাপকে এই ডিভাইসের লোকেশন &lt;b&gt;সব সময়&lt;/b&gt; অ্যাক্সেস করার অনুমতি দিতে চান?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"আপনি যখন অ্যাপটি ব্যবহার করবেন শুধুমাত্র তখনই অ্যাপটি বর্তমান লোকেশন অ্যাক্সেস করতে পারবে।"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"ক্যালেন্ডার"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"আপনার ক্যালেন্ডারে অ্যাক্সেস"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;-কে আপনার ক্যালেন্ডারে অ্যাক্সেস দেবেন?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"কী কী ব্লক করা আছে তা দেখতে ট্যাপ করুন।"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"সিস্টেম"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"সেটিংস"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"স্ট্যান্ডবাই"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV ডিভাইস শীঘ্রই বন্ধ হয়ে যাবে, চালু রাখতে বোতাম প্রেস করুন।"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"ডিভাইস শীঘ্রই বন্ধ হয়ে যাবে, চালু রাখতে প্রেস করুন।"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ক্যামেরা"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"মাইক্রোফোন"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"স্ক্রিনে অন্যান্য অ্যাপের উপরে দেখানো হচ্ছে"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"সরাসরি শেয়ার করার সুবিধা নেই"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"অ্যাপের তালিকা"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"এই অ্যাপকে রেকর্ড করার অনুমতি দেওয়া হয়নি কিন্তু USB ডিভাইসের মাধ্যমে সেটি অডিও রেকর্ড করতে পারে।"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"হোম স্ক্রিন"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"ফিরে যান"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"সাম্প্রতিক অ্যাপ"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"বিজ্ঞপ্তি"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"দ্রুত সেটিংস"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"পাওয়ার ডায়লগ"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"স্প্লিট স্ক্রিন টগল করুন"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"লক স্ক্রিন"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"স্ক্রিনশট"</string>
 </resources>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index ea4d209..b426cdc 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -289,7 +289,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Dozvoliti aplikaciji &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; da pristupi lokaciji ovog uređaja?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Aplikacija će imati pristup lokaciji isključivo dok je koristite"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Dozvoliti aplikaciji &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; pristup lokaciji uređaja &lt;b&gt;sve vrijeme&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Aplikacija trenutno može pristupati lokaciji isključivo dok je koristite"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Moguće je da će aplikacija željeti pristup vašoj lokaciji sve vrijeme, čak i kada je ne budete koristili. Dozvolite u "<annotation id="link">"postavkama"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendar"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"pristupa vašem kalendaru"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Dozvoliti aplikaciji &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; da pristupi vašem kalendaru?"</string>
@@ -1796,8 +1796,8 @@
     <string name="package_updated_device_owner" msgid="1847154566357862089">"Ažurirao je vaš administrator"</string>
     <string name="package_deleted_device_owner" msgid="2307122077550236438">"Izbrisao je vaš administrator"</string>
     <string name="confirm_battery_saver" msgid="639106420541753635">"Uredu"</string>
-    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"Da bi se produljilo trajanje baterije, Štednja baterije:\n·Uključuje Tamnu temu.\n·Isključuje ili ograničava aktivnosti u pozadini, neke vizualne efekte i druge značajke kao što je \"Hey Google\".\n\n"<annotation id="url">"Saznajte više"</annotation></string>
-    <string name="battery_saver_description" msgid="2307555792915978653">"Da bi se produljilo trajanje baterije, Štednja baterije:\n·Uključuje Tamnu temu.\n·Isključuje ili ograničava aktivnosti u pozadini, neke vizualne efekte i druge značajke kao što je \"Hey Google\"."</string>
+    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"Radi produženja vijeka trajanja baterije, Ušteda baterije:\n·Uključuje Tamnu temu\n·Isključuje ili ograničava aktivnosti u pozadini, određene vizuelne efekte i druge funkcije kao što je \"Hej Google\"\n\n"<annotation id="url">"Saznajte više"</annotation></string>
+    <string name="battery_saver_description" msgid="2307555792915978653">"Radi produženja vijeka trajanja baterije, Ušteda baterije:\n·Uključuje Tamnu temu\n·Isključuje ili ograničava aktivnosti u pozadini, određene vizuelne efekte i druge funkcije kao što je \"Hej Google\""</string>
     <string name="data_saver_description" msgid="6015391409098303235">"Da bi se smanjio prijenos podataka, Ušteda podataka sprečava da neke aplikacije šalju ili primaju podatke u pozadini. Aplikacija koju trenutno koristite može pristupiti podacima, ali će to činiti rjeđe. To može značiti, naprimjer, da se slike ne prikazuju sve dok ih ne dodirnete."</string>
     <string name="data_saver_enable_title" msgid="4674073932722787417">"Uključiti Uštedu podataka?"</string>
     <string name="data_saver_enable_button" msgid="7147735965247211818">"Uključi"</string>
@@ -1998,9 +1998,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Dodirnite da provjerite šta je blokirano."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistem"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Postavke"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Stanje mirovanja"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV uređaj će se uskoro isključiti. Pritisnite dugme da ostane uključen."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Uređaj će se uskoro isključiti. Pritisnite da ostane uključen."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"prikazivanje preko drugih aplikacija na ekranu"</string>
@@ -2042,22 +2039,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Direktno dijeljenje nije dostupno"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Spisak aplikacija"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Ovoj aplikaciji nije dato odobrenje za snimanje, ali može snimati zvuk putem ovog USB uređaja."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Početna stranica"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Nazad"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Nedavne aplikacije"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Obavještenja"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Brze postavke"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dijaloški okvir za napajanje"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Uključi/isključi podijeljeni ekran"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Zaključavanje ekrana"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Snimak ekrana"</string>
 </resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 4f9eeb8..02a78dd 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Vols permetre que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; accedeixi a la ubicació del dispositiu?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"L\'aplicació només tindrà accés a la ubicació quan l\'estiguis utilitzant"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Vols permetre que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; accedeixi sempre &lt;b&gt;sempre&lt;/b&gt; a la ubicació d\'aquest dispositiu?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Actualment l\'aplicació només pot accedir a la ubicació quan l\'estàs utilitzant"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendari"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"accedir al calendari"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Vols permetre que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; accedeixi al calendari?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Toca per consultar què s\'ha bloquejat."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistema"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Configuració"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"En espera"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"El dispositiu Android TV s\'apagarà aviat; prem un botó per mantenir-lo encès."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"El dispositiu s\'apagarà aviat; prem per mantenir-lo encès."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Càmera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Micròfon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"es mostra sobre altres aplicacions a la pantalla"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"La compartició directa no està disponible"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Llista d\'aplicacions"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Aquesta aplicació no té permís de gravació, però pot capturar àudio a través d\'aquest dispositiu USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Inici"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Torna"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Aplicacions recents"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notificacions"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Configuració ràpida"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Quadre de diàleg d\'engegada"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Commuta Pantalla dividida"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Pantalla de bloqueig"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Captura de pantalla"</string>
 </resources>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 502a7a8..39b197d 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -292,7 +292,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Povolit aplikaci &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; přístup k poloze tohoto zařízení?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Aplikace bude mít přístup k poloze, pouze když ji budete používat"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Povolit aplikaci &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; přístup k poloze zařízení &lt;b&gt;po celou dobu&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Aplikace má přístup k poloze, pouze když ji používáte"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendář"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"přístup ke kalendáři"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Povolit aplikaci &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; přístup ke kalendáři?"</string>
@@ -2029,9 +2030,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Klepnutím zkontrolujete, co je blokováno."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Systém"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Nastavení"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Pohotovostní režim"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Zařízení Android TV se brzy vypne, stisknutím tlačítka ho ponecháte zapnuté."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Zařízení se brzy vypne, stisknutím ho ponecháte zapnuté."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Fotoaparát"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"zobrazení přes ostatní aplikace na obrazovce"</string>
@@ -2074,22 +2072,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Přímé sdílení není k dispozici"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Seznam aplikací"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Tato aplikace nemá oprávnění k nahrávání, ale může zaznamenávat zvuk prostřednictvím tohoto zařízení USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Plocha"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Zpět"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Nedávné aplikace"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Oznámení"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Rychlé nastavení"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dialogové okno k napájení"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Přepnout rozdělenou obrazovku"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Obrazovka uzamčení"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Snímek obrazovky"</string>
 </resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index d347e35..6d16732 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Vil du give &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; adgang til enhedens placering?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Appen har kun adgang til placeringen, når du bruger appen"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Skal &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; &lt;b&gt;altid&lt;/b&gt; have adgang til denne enheds placering?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Appen kan i øjeblikket kun få adgang til placeringen, mens du bruger appen"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"have adgang til din kalender"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Vil du give &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; adgang til din kalender?"</string>
@@ -1079,7 +1080,7 @@
     <string name="elapsed_time_short_format_h_mm_ss" msgid="1846071997616654124">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll" msgid="6876518925844129331">"Markér alt"</string>
     <string name="cut" msgid="3092569408438626261">"Klip"</string>
-    <string name="copy" msgid="2681946229533511987">"Kopier"</string>
+    <string name="copy" msgid="2681946229533511987">"Kopiér"</string>
     <string name="failed_to_copy_to_clipboard" msgid="1833662432489814471">"Der kunne ikke kopieres til udklipsholderen"</string>
     <string name="paste" msgid="5629880836805036433">"Indsæt"</string>
     <string name="paste_as_plain_text" msgid="5427792741908010675">"Indsæt som almindelig tekst"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Tryk for at se, hvad der er blokeret."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"System"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Indstillinger"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Standby"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV-enheden slukker snart. Tryk på en knap for at holde den tændt."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Enheden slukker snart. Tryk for at holde den tændt."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"vises over andre apps på din skærm"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Det er ikke muligt at dele direkte"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Liste over apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Denne app har ikke fået tilladelse til at optage, men optager muligvis lyd via denne USB-enhed."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Hjem"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Tilbage"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Seneste apps"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notifikationer"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Kvikmenu"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dialogboks om strøm"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Slå Opdelt skærm til eller fra"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Låseskærm"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Screenshot"</string>
 </resources>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index b4b40ea..cbcb4a3 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Zulassen, dass die App &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; den Gerätestandort abruft?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Die App hat nur Zugriff auf den Gerätestandort, solange du sie verwendest"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Zulassen, dass &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; &lt;b&gt;ständig&lt;/b&gt; auf deinen Standort zugreift?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Die App hat gegenwärtig nur dann Zugriff auf den Gerätestandort, wenn du sie verwendest"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"auf deinen Kalender zugreifen"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Zulassen, dass &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; auf deinen Kalender zugreift?"</string>
@@ -1771,10 +1772,8 @@
     <string name="package_updated_device_owner" msgid="1847154566357862089">"Von deinem Administrator aktualisiert"</string>
     <string name="package_deleted_device_owner" msgid="2307122077550236438">"Von deinem Administrator gelöscht"</string>
     <string name="confirm_battery_saver" msgid="639106420541753635">"Ok"</string>
-    <!-- no translation found for battery_saver_description_with_learn_more (1002571337088673987) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (2307555792915978653) -->
-    <skip />
+    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"Der Energiesparmodus sorgt für eine längere Akkulaufzeit:\n·Das dunkle Design wird aktiviert\n·Hintergrundaktivitäten, einige optische Effekte und weitere Funktionen wie \"Ok Google\" werden abgeschaltet oder eingeschränkt\n\n"<annotation id="url">"Weitere Informationen"</annotation></string>
+    <string name="battery_saver_description" msgid="2307555792915978653">"Der Energiesparmodus sorgt für eine längere Akkulaufzeit:\n Das dunkle Design wird aktiviert\n·Hintergrundaktivitäten, einige optische Effekte und weitere Funktionen wie \"Ok Google\" werden abgeschaltet oder eingeschränkt"</string>
     <string name="data_saver_description" msgid="6015391409098303235">"Der Datensparmodus verhindert zum einen, dass Apps im Hintergrund Daten senden oder empfangen, sodass weniger Daten verbraucht werden. Zum anderen werden die Datenzugriffe der gerade aktiven App eingeschränkt, was z. B. dazu führen kann, dass Bilder erst angetippt werden müssen, bevor sie sichtbar werden."</string>
     <string name="data_saver_enable_title" msgid="4674073932722787417">"Datensparmodus aktivieren?"</string>
     <string name="data_saver_enable_button" msgid="7147735965247211818">"Aktivieren"</string>
@@ -1965,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Tippe, um zu überprüfen, welche Inhalte blockiert werden."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"System"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Einstellungen"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Standby"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Das Android TV-Gerät wird demnächst abgeschaltet. Drücke eine Taste, damit es eingeschaltet bleibt."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Das Gerät wird demnächst abgeschaltet. Drücke beispielsweise eine Taste oder berühre den Bildschirm, damit es eingeschaltet bleibt."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"wird über anderen Apps auf dem Bildschirm angezeigt"</string>
@@ -2008,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Direct Share nicht verfügbar"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Liste der Apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Diese App hat noch keine Berechtigung zum Aufnehmen erhalten, könnte aber Audioaufnahmen über dieses USB-Gerät machen."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Startseite"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Zurück"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Letzte Apps"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Benachrichtigungen"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Schnelleinstellungen"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Kleines Fenster für Akkustand"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"\"Bildschirm teilen\" ein-/ausschalten"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Sperrbildschirm"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Screenshot"</string>
 </resources>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 73828a1..c017495 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Να επιτρέπεται στην εφαρμογή &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; να έχει πρόσβαση στην τοποθεσία αυτής της συσκευής;"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Η εφαρμογή θα έχει πρόσβαση στην τοποθεσία μόνο κατά τη διάρκεια χρήσης της εφαρμογής"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Να επιτρέπεται η πρόσβαση της εφαρμογής &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; στην τοποθεσία της συσκευής&lt;b&gt;διαρκώς&lt;/b&gt;;"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Οι εφαρμογές μπορούν αυτήν τη στιγμή να έχουν πρόσβαση στην τοποθεσία μόνο κατά τη χρήση της εφαρμογής"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Αυτή η εφαρμογή θέλει να έχει συνεχώς πρόσβαση στην τοποθεσία σας, ακόμη και όταν δεν χρησιμοποιείτε την εφαρμογή. Εγκρίνετε το αίτημα στις "<annotation id="link">"ρυθμίσεις"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Ημερολόγιο"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"έχει πρόσβαση στο ημερολόγιό σας"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Να επιτρέπεται στην εφαρμογή &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; να έχει πρόσβαση στο ημερολόγιό σας;"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Πατήστε για να ελέγξετε το περιεχόμενο που έχει αποκλειστεί."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Σύστημα"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Ρυθμίσεις"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Κατάσταση αναμονής"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Η συσκευή Android TV σύντομα θα απενεργοποιηθεί. Πατήστε ένα κουμπί για να την κρατήσετε ενεργοποιημένη."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Η συσκευή σύντομα θα απενεργοποιηθεί. Πατήστε για να την κρατήσετε ενεργοποιημένη."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Κάμερα"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Μικρόφωνο"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"εμφανίζεται πάνω σε άλλες εφαρμογές στην οθόνη σας"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Η άμεση κοινοποίηση δεν είναι διαθέσιμη"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Λίστα εφαρμογών"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Δεν έχει εκχωρηθεί άδεια εγγραφής σε αυτήν την εφαρμογή, αλλά μέσω αυτής της συσκευής USB θα μπορεί να εγγράφει ήχο."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Αρχική οθόνη"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Επιστροφή"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Πρόσφατες εφαρμογές"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Ειδοποιήσεις"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Γρήγορες ρυθμίσεις"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Παράθυρο διαλόγου λειτουργίας συσκευής"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Εναλλαγή διαχωρισμού οθόνης"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Οθόνη κλειδώματος"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Στιγμιότυπο οθόνης"</string>
 </resources>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 9163214..8c42b04 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access this device\'s location?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"The app will only have access to the location while you’re using the app"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access this device’s location &lt;b&gt;all the time&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"App currently can access location only while you’re using the app"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"This app may want to access your location all the time, even when you’re not using the app. Allow in "<annotation id="link">"settings"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"access your calendar"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access your calendar?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Tap to check what\'s blocked."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"System"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Settings"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Standby"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"The Android TV device will soon turn off; press a button to keep it on."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"The device will soon turn off; press to keep it on."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Camera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microphone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"displaying over other apps on your screen"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Direct share not available"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Apps list"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"This app has not been granted record permission but could capture audio through this USB device."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Home"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Back"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Recent Apps"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notifications"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Quick Settings"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Power Dialogue"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Toggle Split Screen"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Lock Screen"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Screenshot"</string>
 </resources>
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index dff558f..2efffbb 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access this device\'s location?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"The app will only have access to the location while you’re using the app"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access this device’s location &lt;b&gt;all the time&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"App currently can access location only while you’re using the app"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"This app may want to access your location all the time, even when you’re not using the app. Allow in "<annotation id="link">"settings"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"access your calendar"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access your calendar?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Tap to check what\'s blocked."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"System"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Settings"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Standby"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"The Android TV device will soon turn off; press a button to keep it on."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"The device will soon turn off; press to keep it on."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Camera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microphone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"displaying over other apps on your screen"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Direct share not available"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Apps list"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"This app has not been granted record permission but could capture audio through this USB device."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Home"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Back"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Recent Apps"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notifications"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Quick Settings"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Power Dialogue"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Toggle Split Screen"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Lock Screen"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Screenshot"</string>
 </resources>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 9163214..8c42b04 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access this device\'s location?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"The app will only have access to the location while you’re using the app"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access this device’s location &lt;b&gt;all the time&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"App currently can access location only while you’re using the app"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"This app may want to access your location all the time, even when you’re not using the app. Allow in "<annotation id="link">"settings"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"access your calendar"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access your calendar?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Tap to check what\'s blocked."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"System"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Settings"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Standby"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"The Android TV device will soon turn off; press a button to keep it on."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"The device will soon turn off; press to keep it on."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Camera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microphone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"displaying over other apps on your screen"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Direct share not available"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Apps list"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"This app has not been granted record permission but could capture audio through this USB device."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Home"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Back"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Recent Apps"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notifications"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Quick Settings"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Power Dialogue"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Toggle Split Screen"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Lock Screen"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Screenshot"</string>
 </resources>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 9163214..8c42b04 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access this device\'s location?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"The app will only have access to the location while you’re using the app"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access this device’s location &lt;b&gt;all the time&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"App currently can access location only while you’re using the app"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"This app may want to access your location all the time, even when you’re not using the app. Allow in "<annotation id="link">"settings"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"access your calendar"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Allow &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; to access your calendar?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Tap to check what\'s blocked."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"System"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Settings"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Standby"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"The Android TV device will soon turn off; press a button to keep it on."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"The device will soon turn off; press to keep it on."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Camera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microphone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"displaying over other apps on your screen"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Direct share not available"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Apps list"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"This app has not been granted record permission but could capture audio through this USB device."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Home"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Back"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Recent Apps"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notifications"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Quick Settings"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Power Dialogue"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Toggle Split Screen"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Lock Screen"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Screenshot"</string>
 </resources>
diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml
index 7519ad6..d32edab 100644
--- a/core/res/res/values-en-rXC/strings.xml
+++ b/core/res/res/values-en-rXC/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‏‎‏‎‏‎‎‎‏‎‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‎‏‏‎Allow &lt;b&gt;‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎&lt;/b&gt; to access this device\'s location?‎‏‎‎‏‎"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‏‎‎‎‏‎‎‎‏‎‏‎‏‎‎‏‎‎‏‏‎‎The app will only have access to the location while you’re using the app‎‏‎‎‏‎"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‎‏‏‎‎‏‏‎Allow &lt;b&gt;‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎&lt;/b&gt; to access this device’s location &lt;b&gt;all the time&lt;/b&gt;?‎‏‎‎‏‎"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‎‎‎‎‏‏‎‏‎‏‏‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‏‎‏‏‎App currently can access location only while you’re using the app‎‏‎‎‏‎"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‏‏‎‎‏‏‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎This app may want to access your location all the time, even when you’re not using the app. Allow in ‎‏‎‎‏‏‎"<annotation id="link">"‎‏‎‎‏‏‏‎settings‎‏‎‎‏‏‎"</annotation>"‎‏‎‎‏‏‏‎.‎‏‎‎‏‎"</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‏‏‎‏‎‎‎‏‎‎‎‏‏‎‎‏‏‏‏‏‎‎Calendar‎‏‎‎‏‎"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‎‏‏‏‏‎‏‎‏‎‎access your calendar‎‏‎‎‏‎"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‎‏‎‎‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎Allow &lt;b&gt;‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎&lt;/b&gt; to access your calendar?‎‏‎‎‏‎"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‎‏‎‎‏‎‎‎‏‏‎‎‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎Tap to check what\'s blocked.‎‏‎‎‏‎"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‏‏‎‏‎‎‎‎‎‎‎‎‏‏‏‎‏‎‎‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‏‏‎‏‎‏‎‏‎‎System‎‏‎‎‏‎"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‎‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‎‏‏‎‎‏‏‏‏‎‏‎‏‎‏‎‏‎‎‎‎‏‎‎‏‎‏‎Settings‎‏‎‎‏‎"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‎‎‏‏‏‏‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎Standby‎‏‎‎‏‎"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎‏‎‏‎‎‎‎‏‎‎‎‏‎‎‏‎‏‏‎‏‎‏‏‎‏‏‏‎‎‏‎‎‏‎‎‏‏‎‎‎‎‎‎‎‏‏‎‎‏‏‎The Android TV device will soon turn off; press a button to keep it on.‎‏‎‎‏‎"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‏‏‎‏‎‎‎‎‎‎‎‎‏‎‏‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‎The device will soon turn off; press to keep it on.‎‏‎‎‏‎"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‏‎‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‏‏‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎Camera‎‏‎‎‏‎"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‏‎‏‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎Microphone‎‏‎‎‏‎"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‎‏‎‏‏‏‏‎‎‎‎‎‏‏‎‎‏‎‎‏‎‏‎‏‏‎‎‎‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‎‎‎‏‎‎‏‎displaying over other apps on your screen‎‏‎‎‏‎"</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 0381249..ad59833 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"¿Permitir que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acceda a la ubicación de este dispositivo?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"La app solo tendrá acceso a la ubicación cuando esté en uso"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"¿Quieres permitir que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acceda a la ubicación de este dispositivo &lt;b&gt;todo el tiempo&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Actualmente, la app puede acceder a la ubicación solo cuando está en uso"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"acceder al calendario"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"¿Permitir que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acceda a tu calendario?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Presiona para consultar lo que está bloqueado."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistema"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Configuración"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"En espera"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Pronto se apagará el dispositivo Android TV; presiona un botón para mantenerlo encendido."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Pronto se apagará el dispositivo; presiona para mantenerlo encendido."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Cámara"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Micrófono"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"se superpone a otras apps en tu pantalla"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"No está disponible el uso compartido directo"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lista de apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Aunque no se le otorgó permiso de grabación a esta app, puede capturar audio con este dispositivo USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Página principal"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Atrás"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Apps recientes"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notificaciones"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Configuración rápida"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Diálogo de encendido"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Activar o desactivar pantalla dividida"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Bloquear pantalla"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Captura de pantalla"</string>
 </resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 7f152e1..7071263 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"¿Quieres permitir que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acceda a la ubicación de este dispositivo?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"La aplicación solo podrá acceder a la ubicación cuando la estés usando"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"¿Quieres permitir que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acceda siempre &lt;b&gt;a la ubicación de tu dispositivo&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Actualmente la aplicación puede acceder a la ubicación solo cuando la estés usando"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Es posible que esta aplicación quiera acceder a tu ubicación siempre, aunque no la estés usando. Puedes darle permiso en "<annotation id="link">"Ajustes"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"acceder a tu calendario"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"¿Quieres permitir que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acceda a tu calendario?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Toca para consultar lo que se está bloqueando."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistema"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Ajustes"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Inactividad"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"El dispositivo Android TV pronto se apagará, pulsa un botón para evitarlo."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"El dispositivo pronto se apagará si no interactúas con él para evitarlo."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Cámara"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Micrófono"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"se muestra sobre otras aplicaciones que haya en la pantalla"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"No se puede compartir directamente"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lista de aplicaciones"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Esta aplicación no tiene permiso para grabar, pero podría registrar audio con este dispositivo USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Inicio"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Atrás"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Aplicaciones recientes"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notificaciones"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Ajustes rápidos"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Abrir cuadro de diálogo"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Activar o desactivar la pantalla dividida"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Pantalla de bloqueo"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Captura de pantalla"</string>
 </resources>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index a48c482..0bf37ce 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Kas lubada rakendusele &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; juurdepääs selle seadme asukohale?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Rakendusel on juurdepääs asukohale vaid sel ajal, kui rakendust kasutate"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Kas lubada rakendusel &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; &lt;b&gt;alati&lt;/b&gt; seadme asukohale juurde pääseda?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Rakendusel on praegu juurdepääs asukohale vaid sel ajal, kui rakendust kasutate."</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"juurdepääs kalendrile"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Kas lubada rakendusele &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; juurdepääs teie kalendrile?"</string>
@@ -789,7 +790,7 @@
     <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Elukaaslane"</string>
     <string name="relationTypeFather" msgid="5228034687082050725">"Isa"</string>
     <string name="relationTypeFriend" msgid="7313106762483391262">"Sõber"</string>
-    <string name="relationTypeManager" msgid="6365677861610137895">"Haldur"</string>
+    <string name="relationTypeManager" msgid="6365677861610137895">"Juht"</string>
     <string name="relationTypeMother" msgid="4578571352962758304">"Ema"</string>
     <string name="relationTypeParent" msgid="4755635567562925226">"Vanem"</string>
     <string name="relationTypePartner" msgid="7266490285120262781">"Partner"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Puudutage, et kontrollida, mis on blokeeritud."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Süsteem"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Seaded"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Ooterežiim"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV seade lülitub varsti välja; selle aktiivsena hoidmiseks vajutage nuppu."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Seade lülitub värsti välja; selle aktiivsena hoidmiseks vajutage nuppu."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kaamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"teie ekraanil muude rakenduste peal kuvamine"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Vahetu jagamine ei ole saadaval"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Rakenduste loend"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Sellele rakendusele pole antud salvestamise luba, kuid see saab heli jäädvustada selle USB-seadme kaudu."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Avakuva"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Tagasi"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Hiljutised rakendused"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Märguanded"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Kiirseaded"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Energiasäästja dialoog"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Vaheta jagatud ekraanikuva"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Lukustuskuva"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Ekraanipilt"</string>
 </resources>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index 805df6e..1985c77 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Gailuaren kokapena atzitzeko baimena eman nahi diozu &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; aplikazioari?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Hura erabiltzen ari zarenean soilik atzituko du aplikazioak kokapena"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Gailuaren kokapena &lt;b&gt;beti&lt;/b&gt; atzitzeko baimena eman nahi diozu &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; aplikazioari?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Aplikazioak hura darabilzunean atzi dezake kokapena"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Egutegia"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"atzitu egutegia"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Egutegia atzitzeko baimena eman nahi diozu &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; aplikazioari?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Sakatu zer dagoen blokeatuta ikusteko."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistema"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Ezarpenak"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Egonean"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV gailua laster itzaliko da; sakatu botoi bat piztuta mantentzeko."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Gailua laster itzaliko da; sakatu piztuta mantentzeko."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofonoa"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"pantailako beste aplikazioen gainean bistaratzen"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Zuzenean partekatzeko aukera ez dago erabilgarri"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Aplikazioen zerrenda"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Aplikazioak ez du grabatzeko baimenik, baina baliteke audioa grabatzea USB bidezko gailu horren bidez."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Pantaila nagusia"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Atzera"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Erabilitako azken aplikazioak"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Jakinarazpenak"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Ezarpen bizkorrak"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Piztu edo itzaltzeko leihoa"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Aktibatu/Desaktibatu pantaila zatitua"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Pantaila blokeatua"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Pantaila-argazkia"</string>
 </resources>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 98044c6..97c889d 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"‏به &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; اجازه داده شود به مکان این دستگاه دسترسی پیدا کند؟"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"این برنامه فقط وقتی از آن استفاده می‌کنید، به مکان دسترسی خواهد داشت"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"‏به &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; اجازه می‌دهید &lt;b&gt;همیشه&lt;/b&gt; به مکان این دستگاه دسترسی یابد؟"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"درحال‌حاضر برنامه، فقط وقتی از آن استفاده می‌کنید، می‌تواند به مکان دسترسی یابد"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"تقویم"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"دسترسی به تقویم شما"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"‏به &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; اجازه داده شود به تقویم شما دسترسی پیدا کند؟"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"برای بررسی موارد مسدودشده ضربه بزنید."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"سیستم"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"تنظیمات"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"آماده‌به‌کار"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"‏دستگاه Android TV به‌زودی خاموش می‌شود، برای روشن نگه‌داشتن آن، دکمه‌ای را فشار دهید."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"دستگاه به‌زودی خاموش می‌شود، برای روشن نگه‌داشتن آن فشار دهید."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"دوربین"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"میکروفون"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"نمایش روی برنامه‌های دیگر در صفحه‌نمایش"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"اشتراک‌گذاری مستقیم دردسترس نیست"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"فهرست برنامه‌ها"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"‏مجوز ضبط به این برنامه داده نشده است اما می‌تواند صدا را ازطریق این دستگاه USB ضبط کند."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"صفحه اصلی"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"برگشت"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"برنامه‌های اخیر"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"اعلان‌ها"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"تنظیمات سریع"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"کادر گفتگوی روشن/خاموش"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"تغییر وضعیت صفحهٔ دونیمه"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"صفحه قفل"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"عکس صفحه‌نمایش"</string>
 </resources>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 3476bf5..9d44aad 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Saako &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; oikeuden nähdä tämän laitteen sijainnin?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Sovellus saa sijainnin käyttöoikeuden vain silloin, kun käytät sovellusta"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Saako &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; käyttää laitteen sijaintia &lt;b&gt;aina&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Sovellus saa tällä hetkellä sijainnin käyttöoikeuden vain, jos käytät sovellusta"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalenteri"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"käyttää kalenteria"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Saako &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; kalenterisi käyttöoikeuden?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Napauta niin näet, mitä on estetty."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Järjestelmä"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Asetukset"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Säästötila"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV ‑laite sammuu pian. Pidä se päällä painamalla painiketta."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Laite sammuu pian. Pidä se päällä painamalla."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofoni"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"näkyy näytöllä muiden sovellusten päällä"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Suora jakaminen ei käytettävissä"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Sovellusluettelo"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Sovellus ei ole saanut tallennuslupaa mutta voi tallentaa ääntä tämän USB-laitteen avulla."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Aloitusnäyttö"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Takaisin"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Viimeisimmät sovellukset"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Ilmoitukset"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Pika-asetukset"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Virran valintaikkuna"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Jaettu näyttö päälle/pois"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Lukitusnäyttö"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Kuvakaappaus"</string>
 </resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 702ecc0..273ae5c 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Autoriser &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; à accéder à la position de cet appareil?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"L\'application aura uniquement accès à la position lorsque vous l\'utilisez"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Autoriser « <xliff:g id="APP_NAME">%1$s</xliff:g> » à accéder à la position de cet appareil en tout temps?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Pour le moment, l\'application peut uniquement accéder à la position lorsque vous l\'utilisez"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"accéder à votre agenda"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Autoriser &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; à accéder à votre agenda?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Touchez l\'écran pour vérifier ce qui est bloqué."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Système"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Paramètres"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Veille"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"L\'appareil Android TV va bientôt s\'éteindre. Appuyez sur un bouton pour le laisser allumé."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"L\'appareil va bientôt s\'éteindre. Interagissez avec lui pour le laisser allumé."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Appareil photo"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microphone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"superpose du contenu par-dessus d\'autres applications à l\'écran"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Le partage direct n\'est pas disponible"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Liste des applications"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Cette application n\'a pas été autorisée à effectuer des enregistrements, mais elle pourrait capturer du contenu audio par l\'intermédiaire de cet appareil USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Accueil"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Retour"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Applications récentes"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notifications"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Paramètres rapides"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Boîte de dialogue sur l\'alimentation"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Basculer l\'écran partagé"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Écran de verrouillage"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Capture d\'écran"</string>
 </resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index eb199de..8d8b365 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Autoriser l\'appli &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; à accéder à la position de cet appareil ?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"L\'application n\'a accès à la position de l\'appareil que lorsqu\'elle est ouverte"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Autoriser &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; à accéder &lt;b&gt;en permanence&lt;/b&gt; à la position de cet appareil ?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"L\'application peut actuellement accéder à la position uniquement pendant que vous l\'utilisez"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"accéder à votre agenda"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Permettre à &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; d\'accéder à votre agenda ?"</string>
@@ -1965,9 +1966,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Appuyez pour vérifier les contenus bloqués."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Système"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Paramètres"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Mode Veille imminent"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"L\'appareil Android TV va bientôt passer en mode Veille. Appuyez sur un bouton pour qu\'il reste allumé."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"L\'appareil va bientôt passer en mode Veille. Appuyez dessus pour qu\'il reste allumé."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Caméra"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Micro"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"se superpose aux autres applications sur l\'écran"</string>
@@ -2008,22 +2006,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Le partage direct n\'est pas disponible"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Liste des applications"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Cette application n\'a pas reçu l\'autorisation d\'enregistrer des contenus audio, mais peut le faire via ce périphérique USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Accueil"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Retour"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Applications récentes"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notifications"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Configuration rapide"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Boîte de dialogue Marche/Arrêt"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Activer/Désactiver l\'écran partagé"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Verrouiller l\'écran"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Capture d\'écran"</string>
 </resources>
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index 9659973..d3a6840 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Permitir que a aplicación &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acceda á localización deste dispositivo?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"A aplicación só terá acceso á localización mentres a esteas utilizando"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Queres permitir que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acceda á localización deste dispositivo &lt;b&gt;sempre&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Actualmente, a aplicación pode acceder á localización só mentres a utilices"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"acceder ao teu calendario"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Queres permitir que a aplicación &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acceda ao teu calendario?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Toca para comprobar o contido bloqueado."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistema"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Configuración"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Modo de espera"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Pronto se apagará o dispositivo Android TV. Preme un botón para mantelo acendido."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Pronto se apagará o teléfono. Tócao para mantelo acendido."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Cámara"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Micrófono"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"mostrando outras aplicacións na pantalla"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Non está dispoñible a función de compartir directamente"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lista de aplicacións"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Esta aplicación non está autorizada a realizar gravacións, pero pode capturar audio a través deste dispositivo USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Inicio"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Volver"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Aplicacións recentes"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notificacións"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Configuración rápida"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Diálogo sobre a enerxía"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Activar/desactivar pantalla dividida"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Pantalla de bloqueo"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Captura de pantalla"</string>
 </resources>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 6dab622..5750c85 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;ને આ ડિવાઇસના સ્થાનને ઍક્સેસ કરવાની મંજૂરી આપીએ?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"જ્યારે તમે ઍપનો ઉપયોગ કરી રહ્યા હશો માત્ર ત્યારે જ ઍપ સ્થાનને ઍક્સેસ કરી શકશે"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;ને આ ડિવાઇસનું સ્થાન &lt;b&gt;હંમેશાં&lt;/b&gt; ઍક્સેસ કરવાની મંજૂરી આપીએ?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"હાલમાં માત્ર જ્યારે તમે ઍપનો ઉપયોગ કરી રહ્યા હશો હોય ત્યારે જ ઍપ સ્થાનને ઍક્સેસ કરી શકશે"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"કૅલેન્ડર"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"તમારા કેલેન્ડરને ઍક્સેસ કરવાની"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;ને તમારા કૅલેન્ડરને ઍક્સેસ કરવાની મંજૂરી આપીએ?"</string>
@@ -1342,7 +1343,7 @@
     <string name="alert_windows_notification_channel_group_name" msgid="1463953341148606396">"અન્ય ઍપથી ઉપર બતાવો"</string>
     <string name="alert_windows_notification_channel_name" msgid="3116610965549449803">"<xliff:g id="NAME">%s</xliff:g> અન્ય ઍપ્લિકેશનોની ઉપર પ્રદર્શિત થઈ રહ્યું છે"</string>
     <string name="alert_windows_notification_title" msgid="3697657294867638947">"<xliff:g id="NAME">%s</xliff:g> અન્ય ઍપ્લિકેશનો પર દેખાઈ છે"</string>
-    <string name="alert_windows_notification_message" msgid="8917232109522912560">"જો તમે નથી ઇચ્છતા કે <xliff:g id="NAME">%s</xliff:g> આ સુવિધાનો ઉપયોગ કરે, તો સેટિંગ્સ ખોલવા માટે ટૅપ કરો અને તેને બંધ કરો."</string>
+    <string name="alert_windows_notification_message" msgid="8917232109522912560">"જો તમે નથી ઇચ્છતા કે <xliff:g id="NAME">%s</xliff:g> આ સુવિધાનો ઉપયોગ કરે, તો સેટિંગ ખોલવા માટે ટૅપ કરો અને તેને બંધ કરો."</string>
     <string name="alert_windows_notification_turn_off_action" msgid="2902891971380544651">"બંધ કરો"</string>
     <string name="ext_media_checking_notification_title" msgid="4411133692439308924">"<xliff:g id="NAME">%s</xliff:g> તપાસી રહ્યાં છીએ…"</string>
     <string name="ext_media_checking_notification_message" msgid="410185170877285434">"હાલના કન્ટેન્ટને રિવ્યૂ કરવું"</string>
@@ -1888,7 +1889,7 @@
     <string name="app_category_image" msgid="4867854544519846048">"ફોટો અને છબીઓ"</string>
     <string name="app_category_social" msgid="5842783057834965912">"સામાજિક અને સંચાર"</string>
     <string name="app_category_news" msgid="7496506240743986873">"સમાચાર અને સામાયિકો"</string>
-    <string name="app_category_maps" msgid="5878491404538024367">"નકશા અને નેવિગેશન"</string>
+    <string name="app_category_maps" msgid="5878491404538024367">"Maps અને નેવિગેશન"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ઉત્પાદકતા"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"ડિવાઇસ સ્ટૉરેજ"</string>
     <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB ડિબગિંગ"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"શું બ્લૉક કરેલ છે તે તપાસવા માટે ટૅપ કરો."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"સિસ્ટમ"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"સેટિંગ"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"સ્ટૅન્ડબાય"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android ટીવી ડિવાઇસ ટૂંક સમયમાં બંધ થશે; તેને ચાલુ રાખવા માટે બટન દબાવો."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"ડિવાઇસ ટૂંક સમયમાં બંધ થશે; તેને ચાલુ રાખવા માટે દબાવો."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"કૅમેરા"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"માઇક્રોફોન"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"આ તમારી સ્ક્રીન પર અન્ય ઍપની ઉપર દેખાશે"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"ડાયરેક્ટ શેર કરવાનું ઉપલબ્ધ નથી"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"ઍપની સૂચિ"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"આ ઍપને રેકૉર્ડ કરવાની પરવાનગી આપવામાં આવી નથી પરંતુ તે આ USB ડિવાઇસ મારફતે ઑડિયો કૅપ્ચર કરી શકે છે."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"હોમ"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"પાછળ"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"તાજેતરની ઍપ"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"નોટિફિકેશન"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"ઝડપી સેટિંગ"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"પાવર સંવાદ"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"સ્ક્રીનને વિભાજિત કરવાની ક્રિયા ટૉગલ કરો"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"લૉક સ્ક્રીન"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"સ્ક્રીનશૉટ"</string>
 </resources>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 1a082b9..16a6031 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; को इस डिवाइस की \'जगह की जानकारी\' ऐक्सेस करने की अनुमति देना चाहते हैं?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"ऐप्लिकेशन, डिवाइस की जगह की जानकारी सिर्फ़ तभी देख पाएगा जब आप इसका इस्तेमाल कर रहे हों"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"क्या आप <xliff:g id="APP_NAME">%1$s</xliff:g> को हमेशा के लिए जगह की जानकारी ऐक्सेस करने की अनुमति देना चाहते हैं?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"इस समय ऐप्लिकेशन, डिवाइस की \'जगह की जानकारी\' सिर्फ़ तभी देख पाएगा जब आप इसका इस्तेमाल कर रहे हों"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"कैलेंडर"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"अपने कैलेंडर को ऐक्सेस करने"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; को अपना कैलेंडर देखने की अनुमति देना चाहते हैं?"</string>
@@ -1087,7 +1088,7 @@
     <string name="delete" msgid="6098684844021697789">"मिटाएं"</string>
     <string name="copyUrl" msgid="2538211579596067402">"यूआरएल को कॉपी करें"</string>
     <string name="selectTextMode" msgid="1018691815143165326">"लेख को चुनें"</string>
-    <string name="undo" msgid="7905788502491742328">"वापस लाएं"</string>
+    <string name="undo" msgid="7905788502491742328">"पहले जैसा करें"</string>
     <string name="redo" msgid="7759464876566803888">"फिर से करें"</string>
     <string name="autofill" msgid="3035779615680565188">"ऑटोमैटिक भरना"</string>
     <string name="textSelectionCABTitle" msgid="5236850394370820357">"टेक्स्ट चुनें"</string>
@@ -1771,8 +1772,8 @@
     <string name="package_updated_device_owner" msgid="1847154566357862089">"आपके व्यवस्थापक ने अपडेट किया है"</string>
     <string name="package_deleted_device_owner" msgid="2307122077550236438">"आपके व्यवस्थापक ने हटा दिया है"</string>
     <string name="confirm_battery_saver" msgid="639106420541753635">"ठीक है"</string>
-    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"बैटरी लाइफ़ बढ़ाने के लिए बैटरी सेवर:\n·गहरे रंग वाली थीम चालू करता है\n·बैकग्राउंड की गतिविधि, कुछ विज़ुअल इफ़ेक्ट, और दूसरी सुविधाएं, जैसे कि \"Hey Google\" को इस्तेमाल करने से रोकता है या बंद करता है\n\n"<annotation id="url">"ज़्यादा जानें"</annotation></string>
-    <string name="battery_saver_description" msgid="2307555792915978653">"बैटरी लाइफ़ बढ़ाने के लिए बैटरी सेवर:\n गहरे रंग वाली थीम चालू करता है\nबैकग्राउंड की गतिविधि, कुछ विज़ुअल इफ़ेक्ट, और दूसरी सुविधाएं, जैसे कि \"Hey Google\" को इस्तेमाल करने से रोकता है या बंद करता है"</string>
+    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"बैटरी लाइफ़ बढ़ाने के लिए बैटरी सेवर:\n·गहरे रंग वाली थीम चालू करता है\n·बैकग्राउंड की गतिविधि, कुछ विज़ुअल इफ़ेक्ट, और \"Hey Google\" जैसी दूसरी सुविधाएं इस्तेमाल करने से रोकता है या बंद करता है\n\n"<annotation id="url">"ज़्यादा जानें"</annotation></string>
+    <string name="battery_saver_description" msgid="2307555792915978653">"बैटरी लाइफ़ बढ़ाने के लिए, बैटरी सेवर:\n गहरे रंग वाली थीम चालू करता है\nबैकग्राउंड की गतिविधि, कुछ विज़ुअल इफ़ेक्ट, और \"Hey Google\" जैसी दूसरी सुविधाएं इस्तेमाल करने से रोकता है या बंद करता है"</string>
     <string name="data_saver_description" msgid="6015391409098303235">"डेटा खर्च, कम करने के लिए डेटा सेवर कुछ ऐप्लिकेशन को बैकग्राउंड में डेटा भेजने या डेटा पाने से रोकता है. आप फ़िलहाल जिस ऐप्लिकेशन का इस्तेमाल कर रहे हैं वह डेटा तक पहुंच सकता है लेकिन ऐसा कभी-कभी ही हो पाएगा. उदाहरण के लिए, इमेज तब तक दिखाई नहीं देंगी जब तक कि आप उन्हें टैप नहीं करते."</string>
     <string name="data_saver_enable_title" msgid="4674073932722787417">"डेटा बचाने की सेटिंग चालू करें?"</string>
     <string name="data_saver_enable_button" msgid="7147735965247211818">"चालू करें"</string>
@@ -1888,7 +1889,7 @@
     <string name="app_category_image" msgid="4867854544519846048">"फ़ोटो और तस्वीरें"</string>
     <string name="app_category_social" msgid="5842783057834965912">"सामाजिक और संचार"</string>
     <string name="app_category_news" msgid="7496506240743986873">"समाचार और पत्रिकाएं"</string>
-    <string name="app_category_maps" msgid="5878491404538024367">"मैप और मार्गदर्शक"</string>
+    <string name="app_category_maps" msgid="5878491404538024367">"Maps और नेविगेशन ऐप्लिकेशन"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"उत्पादकता"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"डिवाइस में जगह"</string>
     <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB डीबग करना"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"टैप करके देखें कि किन चीज़ों पर रोक लगाई गई है."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"सिस्टम"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"सेटिंग"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"स्टैंडबाई"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV डिवाइस जल्द ही बंद हो जाएगा. इसे चालू रखने के लिए किसी बटन को दबाएं."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"डिवाइस जल्द ही बंद हो जाएगा. इसे चालू रखने के लिए स्क्रीन पर टैप करें या किसी बटन को दबाएं."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"कैमरा"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"माइक्रोफ़ोन"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"आपकी स्क्रीन पर, इस्तेमाल हो रहे दूसरे ऐप्लिकेशन के ऊपर दिखाया जा रहा है"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"सीधे शेयर नहीं किया जा सकता"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"ऐप्लिकेशन की सूची"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"इस ऐप्लिकेशन को रिकॉर्ड करने की अनुमति नहीं दी गई है. हालांकि, ऐप्लिकेशन इस यूएसबी डिवाइस से ऐसा कर सकता है."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"होम"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"वापस जाएं"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"हाल ही में इस्तेमाल किए गए ऐप्लिकेशन दिखाएं"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"सूचनाएं खोलें"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"फटाफट सेटिंग खोलें"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"पावर डायलॉग खोलें"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"स्प्लिट स्क्रीन पर टॉगल करें"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"स्क्रीन लॉक करें"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"स्क्रीनशॉट लें"</string>
 </resources>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 56d5b20..745401d 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -289,7 +289,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Želite li dopustiti aplikaciji &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; da pristupa lokaciji ovog uređaja?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Aplikacija će imati pristup lokaciji samo dok upotrebljavate aplikaciju"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Želite li dopustiti da &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; pristupa lokaciji ovog uređaja &lt;b&gt;cijelo vrijeme&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Aplikacija trenutačno može pristupiti lokaciji samo dok upotrebljavate aplikaciju"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Ova aplikacija možda će uvijek htjeti imati pristup vašoj lokaciji, čak i kad je ne koristite. Dopustite u "<annotation id="link">"postavkama"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendar"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"pristupati kalendaru"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Želite li dopustiti aplikaciji &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; da pristupa vašem kalendaru?"</string>
@@ -1996,9 +1996,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Dodirnite da biste provjerili što je blokirano."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sustav"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Postavke"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Stanje mirovanja"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Uređaj Android TV uskoro će se isključiti. Pritisnite gumb da bi ostao uključen."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Uređaj će se uskoro isključiti. Pritisnite da bi ostao uključen."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Fotoaparat"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"prikazuje se preko drugih aplikacija na zaslonu"</string>
@@ -2040,22 +2037,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Izravno dijeljenje nije dostupno"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Popis aplikacija"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Ta aplikacija nema dopuštenje za snimanje, no mogla bi primati zvuk putem ovog USB uređaja."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Početni zaslon"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Natrag"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Nedavne aplikacije"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Obavijesti"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Brze postavke"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dijalog napajanja"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Uključite ili isključite podijeljeni zaslon"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Zaključajte zaslon"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Snimka zaslona"</string>
 </resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 184b66a..5df3da7 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Engedélyezi a(z) &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; számára, hogy hozzáférjen az eszköz helyadataihoz?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Az alkalmazás csak akkor férhet hozzá a helyadatokhoz, amikor Ön használja az alkalmazást"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Engedélyezi a(z) &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; számára, hogy &lt;b&gt;mindig&lt;/b&gt; hozzáférjen az eszköz helyadataihoz?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Az alkalmazás jelenleg csak akkor férhet hozzá a helyadatokhoz, amikor Ön használja az alkalmazást."</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Naptár"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"hozzáférés a naptárhoz"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Engedélyezi a(z) &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; számára, hogy hozzáférjen a naptárhoz?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Koppintson a letiltott elemek megtekintéséhez."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Rendszer"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Beállítások"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Készenléti mód"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Az Android TV eszköz hamarosan kikapcsol. Nyomja meg valamelyik gombot, hogy bekapcsolva tarthassa."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Az eszköz hamarosan kikapcsol. Nyomja meg, hogy bekapcsolva tarthassa."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"megjelenítés a képernyőn lévő egyéb alkalmazások előtt"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"A közvetlen megosztás nem áll rendelkezésre"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Alkalmazások listája"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Ez az alkalmazás nem rendelkezik rögzítési engedéllyel, de ezzel az USB-eszközzel képes a hangfelvételre."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Kezdőképernyő"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Vissza"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Legutóbbi alkalmazások"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Értesítések"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Gyorsbeállítások"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Akkumulátorral kapcsolatos párbeszédpanel"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Osztott képernyő be- vagy kikapcsolása"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Lezárási képernyő"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Képernyőkép"</string>
 </resources>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index fef6f4e..b4b34b5 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Թույլատրե՞լ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; հավելվածին օգտագործել այս սարքի տեղադրության տվյալները"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Տեղադրության տվյալները հասանելի կլինեն հավելվածին, միայն երբ այն օգտագործելիս լինեք"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;Միշտ&lt;/b&gt; հասանելի դարձնե՞լ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; հավելվածին ձեր սարքի տեղադրությունը"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Տեղադրության տվյալները հասանելի կլինեն հավելվածին, միայն երբ այն օգտագործելիս լինեք"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Օրացույց"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"օգտագործել օրացույցը"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Թույլատրե՞լ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; հավելվածին օգտագործել ձեր օրացույցը:"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Հպեք՝ տեսնելու, թե ինչ է արգելափակվել:"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Համակարգ"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Կարգավորումներ"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Սպասման ռեժիմ"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV սարքը շուտով կանջատվի: Սեղմեք որևէ կոճակ՝ միացրած թողնելու համար:"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Սարքը շուտով կանջատվի: Սեղմեք՝ միացրած թողնելու համար:"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Տեսախցիկ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Խոսափող"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ցուցադրվում է մյուս հավելվածների վրայից"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Direct Share գործառույթը հասանելի չէ"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Հավելվածների ցանկ"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Հավելվածը ձայնագրելու թույլտվություն չունի, սակայն կկարողանա գրանցել ձայնն այս USB սարքի միջոցով։"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Սկիզբ"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Հետ"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Վերջին օգտագործած հավելվածները"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Ծանուցումներ"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Արագ կարգավորումներ"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Սնուցման պատուհան"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Միացնել/անջատել էկրանի տրոհումը"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Կողպէկրան"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Սքրինշոթ"</string>
 </resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 87a8804..bc44c02 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Izinkan &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; mengakses lokasi perangkat ini?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Aplikasi ini hanya akan memiliki akses ke lokasi selagi Anda menggunakan aplikasi"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Izinkan &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; mengakses lokasi perangkat ini &lt;b&gt;sepanjang waktu&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Saat ini aplikasi hanya dapat mengakses lokasi selagi Anda menggunakan aplikasi tersebut"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Aplikasi ini mungkin ingin selalu mengakses lokasi, meski tidak sedang digunakan. Izinkan di "<annotation id="link">"setelan"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"mengakses kalender"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Izinkan &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; mengakses kalender?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Ketuk untuk memeriksa item yang diblokir."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistem"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Setelan"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Siaga"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Perangkat Android TV akan segera dimatikan; tekan tombol untuk terus menyalakannya."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Perangkat akan segera dimatikan, tekan untuk terus menyalakannya."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ditampilkan di atas aplikasi lain di layar"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Berbagi langsung tidak tersedia"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Daftar aplikasi"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Aplikasi ini tidak diberi izin merekam, tetapi dapat merekam audio melalui perangkat USB ini."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Beranda"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Kembali"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Aplikasi Baru-Baru Ini"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notifikasi"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Setelan Cepat"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dialog Power"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Aktifkan Layar Terpisah"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Layar Kunci"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Screenshot"</string>
 </resources>
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index a37eda6..3e76ed1 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Viltu veita &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; aðgang að staðsetningu þessa tækis?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Forritið hefur aðeins aðgang að staðsetningunni á meðan þú notar forritið"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Viltu leyfa að &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; hafi &lt;b&gt;alltaf&lt;/b&gt; aðgang að upplýsingum um staðsetningu þessa tækis?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Forritið hefur sem stendur aðeins aðgang að staðsetningu þinni á meðan þú notar forritið"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Dagatal"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"fá aðgang að dagatalinu þínu"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Viltu veita &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; aðgang að dagatalinu þínu?"</string>
@@ -1771,10 +1772,8 @@
     <string name="package_updated_device_owner" msgid="1847154566357862089">"Kerfisstjóri uppfærði"</string>
     <string name="package_deleted_device_owner" msgid="2307122077550236438">"Kerfisstjóri eyddi"</string>
     <string name="confirm_battery_saver" msgid="639106420541753635">"Í lagi"</string>
-    <!-- no translation found for battery_saver_description_with_learn_more (1002571337088673987) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (2307555792915978653) -->
-    <skip />
+    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"Til að auka rafhlöðuendingu gerir rafhlöðusparnaður eftirfarandi:\n·Kveikir á dökku þema\n·Slekkur á eða takmarkar bakgrunnsvirkni, tilteknar myndbrellur og aðra eiginleika eins og „Hei Google“.\n\n"<annotation id="url">"Frekari upplýsingar"</annotation></string>
+    <string name="battery_saver_description" msgid="2307555792915978653">"Til að auka rafhlöðuendingu gerir rafhlöðusparnaður eftirfarandi:\n·Kveikir á dökku þema\n·Slekkur á eða takmarkar bakgrunnsvirkni, tilteknar myndbrellur og aðra eiginleika eins og „Hei Google“."</string>
     <string name="data_saver_description" msgid="6015391409098303235">"Gagnasparnaður getur hjálpað til við að draga úr gagnanotkun með því að hindra forrit í að senda eða sækja gögn í bakgrunni. Forrit sem er í notkun getur náð í gögn, en gerir það kannski sjaldnar. Niðurstaðan gæti verið, svo dæmi sé tekið, að myndir séu ekki birtar fyrr en þú ýtir á þær."</string>
     <string name="data_saver_enable_title" msgid="4674073932722787417">"Kveikja á gagnasparnaði?"</string>
     <string name="data_saver_enable_button" msgid="7147735965247211818">"Kveikja"</string>
@@ -1965,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Ýttu til að skoða hvað lokað hefur verið á."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Kerfi"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Stillingar"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Biðstaða"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV tækið slekkur á sér fljótlega. Ýttu á takka til að það slokkni ekki á því."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Tækið slekkur á sér fljótlega. Ýttu á takka til að það slokkni ekki á því."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Myndavél"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Hljóðnemi"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"birt yfir öðrum forritum á skjánum"</string>
@@ -2008,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Bein deiling er ekki tiltæk"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Forritalisti"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Þetta forrit hefur ekki fengið heimild fyrir upptöku en gæti tekið upp hljóð í gegnum þetta USB-tæki."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Heim"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Til baka"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Nýleg forrit"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Tilkynningar"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Flýtistillingar"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Gluggi til að slökkva/endurræsa"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Breyta skjáskiptingu"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Lásskjár"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Skjámynd"</string>
 </resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 2b780d0..ddc0f68 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Consentire a &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; di accedere alla posizione del dispositivo?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"L\'app avrà accesso alla posizione soltanto quando la usi"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Consentire a &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; di accedere &lt;b&gt;sempre&lt;/b&gt; alla posizione di questo dispositivo?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"L\'app al momento può accedere alla posizione soltanto mentre la usi"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"accedere al calendario"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Consentire all\'app &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; di accedere al tuo calendario?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Tocca per controllare le notifiche bloccate."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistema"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Impostazioni"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Standby"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Presto il dispositivo Android TV si spegnerà. Premi un pulsante per tenerlo acceso."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Presto il dispositivo si spegnerà. Premi per tenerlo acceso."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Fotocamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microfono"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"si sovrappone ad altre app sullo schermo"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Condivisione diretta non disponibile"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Elenco di app"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"A questa app non è stata concessa l\'autorizzazione di registrazione, ma l\'app potrebbe acquisire l\'audio tramite questo dispositivo USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Home"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Indietro"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"App recenti"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notifiche"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Impostazioni rapide"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Finestra di dialogo Alimentazione"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Attiva/disattiva schermo diviso"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Schermata di blocco"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Screenshot"</string>
 </resources>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index dfbf834..c3a8ceb 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -292,7 +292,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"‏לתת לאפליקציה &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; הרשאת גישה למיקום המכשיר?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"לאפליקציה תהיה גישה אל נתוני המיקום רק בזמן השימוש באפליקציה"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"‏להתיר ל-&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; לגשת אל מיקום המכשיר הזה &lt;b&gt;כל הזמן&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"האפליקציה יכולה כרגע לגשת אל המיקום רק כשנעשה בה שימוש"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"יומן"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"גישה אל היומן"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"‏לתת לאפליקציה &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; הרשאת גישה ליומן?"</string>
@@ -2029,9 +2030,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"יש להקיש כדי לבדוק מה חסום."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"מערכת"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"הגדרות"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"המתנה"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"‏מכשיר Android TV ייכבה בקרוב. יש ללחוץ על לחצן כלשהו כדי שהוא ימשיך לפעול."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"המכשיר ייכבה בקרוב, יש ללחוץ כדי שהוא ימשיך לפעול."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"מצלמה"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"מיקרופון"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"תצוגה מעל אפליקציות אחרות במסך"</string>
@@ -2074,22 +2072,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"שיתוף ישיר אינו זמין"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"רשימת האפליקציות"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"‏לאפליקציה זו לא ניתנה הרשאת הקלטה, אבל אפשר להקליט אודיו באמצעות התקן ה-USB הזה."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"בית"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"חזרה"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"אפליקציות אחרונות"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"התראות"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"הגדרות מהירות"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"תיבת דו-שיח לגבי הסוללה"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"החלפת מצב של מסך מפוצל"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"מסך הנעילה"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"צילום מסך"</string>
 </resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 4776980..0e30b182 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"このデバイスの位置情報へのアクセスを「&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;」に許可しますか?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"このアプリは、ユーザーがアプリを使用している間のみ位置情報にアクセスできます"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"このデバイスの位置情報に&lt;b&gt;常に&lt;/b&gt;?アクセスすることを &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; に許可します"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"現在、アプリは、ユーザーがアプリを使用している場合のみ位置情報にアクセスできます"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"このアプリは、未使用時も含め、常に位置情報にアクセスしようとすることがあります。["<annotation id="link">"設定"</annotation>"] で許可してください。"</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"カレンダー"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"カレンダーへのアクセス"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"カレンダーへのアクセスを「&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;」に許可しますか?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"タップしてブロック対象をご確認ください。"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"システム"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"設定"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"スタンバイ"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV デバイスはまもなく OFF になります。ON 状態を維持するには、ボタンを押してください。"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"このデバイスはまもなく OFF になります。ON 状態を維持するには、ボタンを押してください。"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"カメラ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"マイク"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"画面の他のアプリの上に重ねて表示"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"ダイレクト シェアは利用できません"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"アプリのリスト"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"このアプリに録音権限は付与されていませんが、この USB デバイスから音声を収集できるようになります。"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"ホーム"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"戻る"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"最近使ったアプリ"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"通知"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"クイック設定"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"電源ダイアログ"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"分割画面の切り替え"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"ロック画面"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"スクリーンショット"</string>
 </resources>
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index 7f06b01..552a60f 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"გსურთ, მიანიჭოთ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>-ს&lt;/b&gt; ამ მოწყობილობის მდებარეობაზე წვდომის ნებართვა?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"ამ აპს მდებარეობაზე წვდომა მხოლოდ მაშინ ექნება, როცა თქვენ მას გამოიყენებთ"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"გსურთ, &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;-ს &lt;b&gt;ყოველთვის&lt;/b&gt; ჰქონდეს წვდომა ამ მოწყობილობის მდებარეობაზე?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"ამჟამად აპს მდებარეობაზე წვდომა მხოლოდ მაშინ აქვს, როცა თქვენ მას იყენებთ"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"აპი ითხოვს თქვენს მდებარეობაზე წვდომას ნებისმიერ დროს, მაშინაც კი, როცა თქვენ მას არ იყენებთ. უფლების მიცემა შეგიძლიათ  "<annotation id="link">"პარამეტრებში"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"კალენდარი"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"თქვენს კალენდარზე წვდომა"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"გსურთ, მიანიჭოთ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>-ს&lt;/b&gt; თქვენს კალენდარზე წვდომის ნებართვა?"</string>
@@ -1771,10 +1771,8 @@
     <string name="package_updated_device_owner" msgid="1847154566357862089">"განახლებულია თქვენი ადმინისტრატორის მიერ"</string>
     <string name="package_deleted_device_owner" msgid="2307122077550236438">"წაიშალა თქვენი ადმინისტრატორის მიერ"</string>
     <string name="confirm_battery_saver" msgid="639106420541753635">"კარგი"</string>
-    <!-- no translation found for battery_saver_description_with_learn_more (1002571337088673987) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (2307555792915978653) -->
-    <skip />
+    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"ელემენტის მუშაობის განრძლივობის მიზნით, ელემენტის დამზოგველი:\n·ირთვება ბნელ თემაზე\n·თიშავს ან ზღუდავს ფონის აქტივობებს, გარკვეულ ვიზუალურ ეფექტებს და სახვა შესაძლებლობებს, როგორიც არის “Hey Google”\n\n"<annotation id="url">"შეიტყვეთ მეტი"</annotation></string>
+    <string name="battery_saver_description" msgid="2307555792915978653">"ელემენტის მუშაობის განრძლივობის მიზნით, ელემენტის დამზოგველი:\n·ირთვება ბნელ თემაზე\n·თიშავს ან ზღუდავს ფონის აქტივობებს, გარკვეულ ვიზუალურ ეფექტებს და სახვა შესაძლებლობებს, როგორიც არის “Hey Google”"</string>
     <string name="data_saver_description" msgid="6015391409098303235">"მობილური ინტერნეტის მოხმარების შემცირების მიზნით, მონაცემთა დამზოგველი ზოგიერთ აპს ფონურ რეჟიმში მონაცემთა გაგზავნასა და მიღებას შეუზღუდავს. თქვენ მიერ ამჟამად გამოყენებული აპი მაინც შეძლებს მობილურ ინტერნეტზე წვდომას, თუმცა ამას ნაკლები სიხშირით განახორციელებს. ეს ნიშნავს, რომ, მაგალითად, სურათები არ გამოჩნდება მანამ, სანამ მათ საგანგებოდ არ შეეხებით."</string>
     <string name="data_saver_enable_title" msgid="4674073932722787417">"ჩაირთოს მონაცემთა დამზოგველი?"</string>
     <string name="data_saver_enable_button" msgid="7147735965247211818">"ჩართვა"</string>
@@ -1965,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"შეეხეთ იმის სანახავად, თუ რა არის დაბლოკილი."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"სისტემა"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"პარამეტრები"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"მოლოდინის რეჟიმი"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV მოწყობილობა მალე გამოირთვება, დააჭირეთ ღილაკს, რომ ჩართული დარჩეს."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"მოწყობილობა მალე გამოირთვება, დააჭირეთ, რომ ჩართული დარჩეს."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"კამერა"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"მიკროფონი"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"სხვა აპების გადაფარვით ჩანს თქვენს ეკრანზე"</string>
@@ -2008,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"პირდაპირი გაზიარება მიუწვდომელია"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"აპების სია"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"ამ აპს არ აქვს მინიჭებული ჩაწერის ნებართვა, მაგრამ შეუძლია ჩაიწეროს აუდიო ამ USB მოწყობილობის მეშვეობით."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"მთავარი"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"დაბრუნება"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"ბოლოდროინდელი აპები"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"შეტყობინებები"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"სწრაფი პარამეტრები"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"ელკვების დიალოგი"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"გაყოფილი ეკრანის გადართვა"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"ჩაკეტილი ეკრანი"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"ეკრანის ანაბეჭდი"</string>
 </resources>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index 65da546..e398e73 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; қолданбасына құрылғының орналасқан жері туралы мәліметтерді пайдалануға рұқсат берілсін бе?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Қолданбаны пайдалану кезінде ғана оған геодеректеріңізді көруге рұқсат етіледі."</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; қолданбасына құрылғының геодеректері &lt;b&gt;үнемі&lt;/b&gt; көрсетіліп тұрсын ба?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Қолданба геодеректерді тек жұмыс кезінде ғана пайдалана алады."</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Күнтізбе"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"күнтізбеге кіру"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; қолданбасына күнтізбеге кіруге рұқсат берілсін бе?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Түймені түртіп, неге тыйым салынатынын көріңіз."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Жүйе"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Параметрлер"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Күту режимі"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV құрылғысы жақын арада өшеді. Оны қосулы ұстау үшін басыңыз."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Құрылғы жақын арада өшеді. Оны қосулы ұстау үшін басыңыз."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"экранда басқа қолданбалардың үстінен көрсету"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Тікелей бөлісу мүмкін емес."</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Қолданбалар тізімі"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Қолданбаға жазу рұқсаты берілмеді, бірақ ол осы USB құрылғысы арқылы дыбыс жаза алады."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Негізгі экран"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Артқа"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Соңғы пайдаланылған қолданбалар"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Хабарландырулар"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Жылдам параметрлер"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Қуат диалогтік терезесі"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Экранды бөлу мүмкіндігін қосу/өшіру"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Құлып экраны"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Скриншот"</string>
 </resources>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 32b3ee1..3ce723c 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"អនុញ្ញាតឱ្យ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ចូលប្រើ​ទីតាំងរបស់ឧបករណ៍នេះ?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"កម្មវិធីនេះ​នឹងមាន​សិទ្ធិ​ចូលប្រើ​ទីតាំង នៅពេល​អ្នកកំពុង​ប្រើ​កម្មវិធីនេះ​តែ​ប៉ុណ្ណោះ"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"អនុញ្ញាតឱ្យ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ចូលប្រើ​ទីតាំងរបស់​ឧបករណ៍​នេះ&lt;b&gt;គ្រប់ពេល&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"បច្ចុប្បន្ន​ កម្មវិធី​អាច​ចូលប្រើ​ទីតាំង នៅពេលដែលអ្នកកំពុង​ប្រើប្រាស់​កម្មវិធី​នោះប៉ុណ្ណោះ"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"កម្មវិធីនេះ​ប្រហែលជា​ចង់ប្រើ​ទីតាំង​របស់អ្នក​គ្រប់ពេល ទោះបីជា​អ្នកមិនកំពុងប្រើ​កម្មវិធីនេះ​ក៏ដោយ។ អនុញ្ញាត​នៅក្នុង"<annotation id="link">"ការកំណត់"</annotation>"។"</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"ប្រតិទិន"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ចូលប្រើប្រិតិទិនរបស់អ្នក"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"អនុញ្ញាតឱ្យ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ចូលប្រើ​ប្រតិទិនរបស់អ្នក?"</string>
@@ -1965,9 +1965,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"សូមចុច​ដើម្បី​មើល​ថា​​បានទប់ស្កាត់អ្វីខ្លះ។"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"ប្រព័ន្ធ"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"ការកំណត់"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"ផ្អាក​ដំណើរការ"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"ឧបករណ៍ Android TV នឹង​បិទ​ក្នុងពេល​ឆាប់ៗនេះ សូមចុច​ប៊ូតុង​ដើម្បី​បន្ត​បើក​ឧបករណ៍។"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"ឧបករណ៍​នឹង​បិទ​ក្នុងពេល​ឆាប់ៗនេះ សូមចុច​ដើម្បី​បន្ត​បើក​ឧបករណ៍។"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"កាមេរ៉ា"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"មីក្រូហ្វូន"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"កំពុងបង្ហាញ​ពីលើកម្មវិធីផ្សេងទៀត​នៅលើអេក្រង់​របស់អ្នក"</string>
@@ -2008,22 +2005,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"មិនមាន​ការចែករំលែក​ដោយផ្ទាល់ទេ"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"បញ្ជីកម្មវិធី"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"កម្មវិធីនេះ​មិនទាន់បាន​ទទួលសិទ្ធិ​ថតសំឡេង​នៅឡើយទេ ប៉ុន្តែអាច​ថតសំឡេង​តាមរយៈ​ឧបករណ៍ USB នេះបាន។"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"ទំព័រដើម"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"ថយក្រោយ"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"កម្មវិធី​ថ្មីៗ"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"ការជូនដំណឹង"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"ការកំណត់រហ័ស"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"ប្រអប់​ថាមពល"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"បិទ/បើក​មុខងារ​បំបែកអេក្រង់"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"អេក្រង់ចាក់សោ"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"រូបថតអេក្រង់"</string>
 </resources>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index 0fab683..94d6836 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"ಈ ಸಾಧನದ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಲು &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;ಗೆ ಅನುಮತಿಸಬೇಕೇ?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"ನೀವು ಆ್ಯಪ್ ಅನ್ನು ಬಳಸುವಾಗ, ಆ್ಯಪ್ ಮಾತ್ರ ಸ್ಥಳಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುತ್ತದೆ"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;ಎಲ್ಲಾ ಸಮಯದಲ್ಲೂ&lt;/b&gt; ಈ ಸಾಧನದ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಲು &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಸುವುದೇ?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"ನೀವು ಆ್ಯಪ್ ಅನ್ನು ಬಳಸುವಾಗ ಮಾತ್ರ, ಅದು ಪ್ರಸ್ತುತವಾಗಿ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಬಹುದು"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"ಕ್ಯಾಲೆಂಡರ್"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ನಿಮ್ಮ ಕ್ಯಾಲೆಂಡರ್ ಪ್ರವೇಶಿಸಲು"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"ನಿಮ್ಮ ಕ್ಯಾಲೆಂಡರ್ ಪ್ರವೇಶಿಸಲು &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ಗೆ ಅನುಮತಿಸಬೇಕೇ?"</string>
@@ -1340,9 +1341,9 @@
     <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="alert_windows_notification_channel_group_name" msgid="1463953341148606396">"ಇತರ ಅಪ್ಲಿಕೇಶನ್ ಮೇಲೆ ಡಿಸ್‌ಪ್ಲೇ"</string>
-    <string name="alert_windows_notification_channel_name" msgid="3116610965549449803">"<xliff:g id="NAME">%s</xliff:g> ಇತರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಮೂಲಕ ಪ್ರದರ್ಶಿಸುತ್ತಿದೆ"</string>
-    <string name="alert_windows_notification_title" msgid="3697657294867638947">"<xliff:g id="NAME">%s</xliff:g> ಇತರವುಗಳ ಮೇಲೆ ಪ್ರದರ್ಶಿಸುತ್ತಿದೆ"</string>
-    <string name="alert_windows_notification_message" msgid="8917232109522912560">"<xliff:g id="NAME">%s</xliff:g> ಈ ವೈಶಿಷ್ಟ್ಯ ಬಳಸುವುದನ್ನು ನೀವು ಬಯಸದಿದ್ದರೆ, ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆದು, ಅದನ್ನು ಆಫ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+    <string name="alert_windows_notification_channel_name" msgid="3116610965549449803">"<xliff:g id="NAME">%s</xliff:g> ಇತರೆ ಆ್ಯಪ್‌ಗಳ ಮೇಲೆ ಡಿಸ್‌ಪ್ಲೇ ಆಗುತ್ತದೆ"</string>
+    <string name="alert_windows_notification_title" msgid="3697657294867638947">"<xliff:g id="NAME">%s</xliff:g> ಇತರೆ ಆ್ಯಪ್‌ಗಳ ಮೇಲೆ ಡಿಸ್‌ಪ್ಲೇ ಆಗುತ್ತದೆ"</string>
+    <string name="alert_windows_notification_message" msgid="8917232109522912560">"<xliff:g id="NAME">%s</xliff:g> ಈ ವೈಶಿಷ್ಟ್ಯ ಬಳಸುವುದನ್ನು ನೀವು ಬಯಸದಿದ್ದರೆ, ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಲು ಮತ್ತು ಅದನ್ನು ಆಫ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="alert_windows_notification_turn_off_action" msgid="2902891971380544651">"ಆಫ್ ಮಾಡಿ"</string>
     <string name="ext_media_checking_notification_title" msgid="4411133692439308924">"<xliff:g id="NAME">%s</xliff:g> ಅನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ…"</string>
     <string name="ext_media_checking_notification_message" msgid="410185170877285434">"ಪ್ರಸ್ತುತ ವಿಷಯವನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ"</string>
@@ -1888,7 +1889,7 @@
     <string name="app_category_image" msgid="4867854544519846048">"ಫೋಟೋಗಳು ಮತ್ತು ಚಿತ್ರಗಳು"</string>
     <string name="app_category_social" msgid="5842783057834965912">"ಸಾಮಾಜಿಕ ಮತ್ತು ಸಂವಹನ"</string>
     <string name="app_category_news" msgid="7496506240743986873">"ಸುದ್ದಿ ಮತ್ತು ನಿಯತಕಾಲಿಕೆಗಳು"</string>
-    <string name="app_category_maps" msgid="5878491404538024367">"ನಕ್ಷೆಗಳು ಮತ್ತು ನ್ಯಾವಿಗೇಶನ್"</string>
+    <string name="app_category_maps" msgid="5878491404538024367">"Maps ಮತ್ತು ನ್ಯಾವಿಗೇಶನ್"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ಉತ್ಪಾದಕತೆ"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"ಸಾಧನ ಸಂಗ್ರಹಣೆ"</string>
     <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB ಡೀಬಗ್ ಮಾಡುವಿಕೆ"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"ಏನನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಪರೀಕ್ಷಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"ಸಿಸ್ಟಂ"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"ಸ್ಟ್ಯಾಂಡ್‌ಬೈ"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"ಈ Android TV ಸಾಧನವು ಶೀಘ್ರವೇ ಆಫ್ ಆಗುತ್ತದೆ; ಇದನ್ನು ಆನ್‌ನಲ್ಲಿಡಲು ಬಟನ್ ಅನ್ನು ಒತ್ತಿರಿ."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"ಈ ಸಾಧನವು ಶೀಘ್ರವೇ ಆಫ್ ಆಗುತ್ತದೆ; ಇದನ್ನು ಆನ್‌ನಲ್ಲಿಡಲು ಒತ್ತಿರಿ."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ಕ್ಯಾಮರಾ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ಮೈಕ್ರೋಫೋನ್‌"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ಇತರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಮೂಲಕ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"ನೇರ ಹಂಚಿಕೆ ಲಭ್ಯವಿಲ್ಲ"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"ಆ್ಯಪ್‌ಗಳ ಪಟ್ಟಿ"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"ಈ ಆ್ಯಪ್‌ಗೆ ರೆಕಾರ್ಡ್ ಅನುಮತಿಯನ್ನು ನೀಡಲಾಗಿಲ್ಲ, ಆದರೆ ಈ USB ಸಾಧನದ ಮೂಲಕ ಆಡಿಯೊವನ್ನು ಸೆರೆಹಿಡಿಯಬಲ್ಲದು."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"ಹೋಮ್"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"ಹಿಂದಕ್ಕೆ"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"ಇತ್ತೀಚಿನ ಆ್ಯಪ್‌ಗಳು"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"ಅಧಿಸೂಚನೆಗಳು"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್‍ಗಳು"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"ಪವರ್ ಡೈಲಾಗ್"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"ಸ್ಪ್ಲಿಟ್-ಸ್ಕ್ರೀನ್ ಟಾಗಲ್ ಮಾಡಿ"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"ಲಾಕ್ ಸ್ಕ್ರೀನ್"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"ಸ್ಕ್ರೀನ್‌ಶಾಟ್"</string>
 </resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index f42a928..c58d36c 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;에서 내 기기 위치에 액세스하도록 허용하시겠습니까?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"앱을 사용할 때만 앱에서 위치에 액세스합니다."</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; 앱이 이 기기의 위치에 &lt;b&gt;항상&lt;/b&gt; 액세스하도록 허용하시겠습니까?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"현재 앱을 사용 중일 때만 앱에서 위치에 액세스할 수 있습니다."</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"캘린더"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"캘린더에 액세스"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;에서 내 캘린더에 액세스하도록 허용하시겠습니까?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"차단된 항목을 확인하려면 탭하세요."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"시스템"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"설정"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"대기"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV가 곧 꺼집니다. 계속 사용하려면 버튼을 누르세요."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"기기가 곧 꺼집니다. 계속 사용하려면 누르세요."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"카메라"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"마이크"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"화면에서 다른 앱 위에 표시"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"직접 공유가 지원되지 않음"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"앱 목록"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"이 앱에는 녹음 권한이 부여되지 않았지만, 이 USB 기기를 통해 오디오를 녹음할 수 있습니다."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"홈"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"뒤로"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"최근 앱"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"알림"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"빠른 설정"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"전원 대화상자"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"화면 분할 모드 전환"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"잠금 화면"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"스크린샷"</string>
 </resources>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index 82064b2..f7095a7 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; колдонмосу бул түзмөктүн кайда жүргөнүн көрүп турсунбу?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Колдонмону колдонуп жаткан маалда гана, ал сиздин кайда жүргөнүңүздү билип турат."</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; колдонмосу бул түзмөктүн жүргөн жерин &lt;b&gt;ар дайым&lt;/b&gt; билип турсунбу?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Колдонмону пайдаланып жаткан учурда гана ал жайгашкан жерди көрө алат"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Жылнаама"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"жылнаамаңызды пайдалануу"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; колдонмосуна жылнаамаңызды пайдаланууга уруксат берилсинби?"</string>
@@ -1964,9 +1965,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Бөгөттөлгөн нерселерди көрүү үчүн таптаңыз."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Тутум"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Жөндөөлөр"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Көшүү режими"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV түзмөгү жакында өчүрүлөт, аны күйүк боюнча калтыруу үчүн баскычты басыңыз."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Түзмөк жакында өчүрүлөт, күйүк боюнча калтыруу үчүн басып коюңуз."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"экрандагы башка терезелердин үстүнөн көрсөтүлүүдө"</string>
@@ -2007,22 +2005,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Түздөн-түз бөлүшүүгө болбойт"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Колдонмолордун тизмеси"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Бул колдонмонун жаздырууга уруксаты жок, бирок бул USB түзмөгү аркылуу аудиону жаздыра алат."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Башкы бет"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Артка"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Акыркы колдонмолор"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Билдирмелер"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Ыкчам жөндөөлөр"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Кубат диалогу"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Экранды бөлүүнү күйгүзүү же өчүрүү"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Кулпуланган экран"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Скриншот"</string>
 </resources>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index 3aa786e..63b1437 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"ອະນຸຍາດ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ໃຫ້ເຂົ້າເຖິງສະຖານທີ່ຂອງອຸປະກອນບໍ?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"ແອັບຈະມີສິດເຂົ້າເຖິງສະຖານທີ່ໃນເວລາທີ່ທ່ານກຳລັງໃຊ້ແອັບຢູ່ເທົ່ານັ້ນ"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"ອະນຸຍາດໃຫ້ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ເຂົ້າເຖິງສະຖານທີ່ຂອງອຸປະກອນໄດ້ &lt;b&gt;ຕະຫຼອດເວລາ&lt;/b&gt; ບໍ?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"ຕອນນີ້ແອັບສາມາດເຂົ້າເຖິງສະຖານທີ່ໄດ້ສະເພາະເວລາທີ່ທ່ານໃຊ້ແອັບເທົ່ານັ້ນ"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"ແອັບນີ້ອາດຕ້ອງການເຂົ້າເຖິງສະຖານທີ່ຂອງທ່ານຕະຫຼອດເວລາ, ເຖິງແມ່ນວ່າທ່ານຈະບໍ່ໄດ້ໃຊ້ແອັບຢູ່ກໍຕາມ. ອະນຸຍາດໃນ "<annotation id="link">"ການຕັ້ງຄ່າ"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"ປະຕິທິນ"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ເຂົ້າ​ຫາ​ປະ​ຕິ​ທິນ​ຂອງ​ທ່ານ"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"ອະນຸຍາດ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ໃຫ້ເຂົ້າເຖິງປະຕິທິນຂອງທ່ານບໍ?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"ແຕະເພື່ອກວດສອບວ່າມີຫຍັງຖືກບລັອກໄວ້ແດ່."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"ລະບົບ"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"ການຕັ້ງຄ່າ"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"ສະແຕນບາຍ"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"ອຸປະກອນ Android TV ຈະປິດໃນອີກບໍ່ດົນ, ກົດປຸ່ມໃດໜຶ່ງເພື່ອເປີດມັນໄວ້ຕໍ່."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"ອຸປະກອນຈະປິດໃນອີກບໍ່ດົນ, ກົດເພື່ອເປີດມັນໄວ້ຕໍ່."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ກ້ອງ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ໄມໂຄຣໂຟນ"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ສະແດງຜົນບັງແອັບອື່ນຢູ່ໜ້າຈໍຂອງທ່ານ"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"ບໍ່ສາມາດແບ່ງປັນໂດຍກົງໄດ້"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"ລາຍຊື່ແອັບ"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"ແອັບນີ້ບໍ່ໄດ້ຮັບສິດອະນຸຍາດໃນການບັນທຶກ ແຕ່ສາມາດບັນທຶກສຽງໄດ້ຜ່ານອຸປະກອນ USB ນີ້."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"ເຮືອນ"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"ກັບຄືນ"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"ແອັບຫຼ້າສຸດ"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"ການແຈ້ງເຕືອນ"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"ການຕັ້ງຄ່າດ່ວນ"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"ກ່ອງໂຕ້ຕອບການເປີດປິດ"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"ເປີດ/ປິດການແບ່ງໜ້າຈໍ"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"ໜ້າຈໍລັອກ"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"ຮູບໜ້າຈໍ"</string>
 </resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index d4d19f4..180497e 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -292,7 +292,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Suteikti &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; galimybę pasiekti įrenginio vietovę?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Programa galės pasiekti vietovę, tik kai ją naudosite"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Leisti &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; pasiekti šio įrenginio vietovę &lt;b&gt;visą laiką&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Šiuo metu programa gali pasiekti vietovę, tik kai ją naudojate"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendorius"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"pasiekti kalendorių"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Suteikti &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; galimybę pasiekti kalendorių?"</string>
@@ -2029,9 +2030,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Palieskite, kad patikrintumėte, kas blokuojama."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistema"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Nustatymai"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Budėjimo laikas"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"„Android TV“ įrenginys netrukus išsijungs. Paspauskite mygtuką, kad įrenginys liktų įjungtas."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Įrenginys netrukus išsijungs. Paspauskite, kad jis liktų įjungtas."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Fotoaparatas"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofonas"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"rodo virš kitų programų jūsų ekrane"</string>
@@ -2074,22 +2072,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Tiesioginio bendrinimo funkcija nepasiekiama"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Programų sąrašas"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Šiai programai nebuvo suteiktas leidimas įrašyti, bet ji gali užfiksuoti garsą per šį USB įrenginį."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Pagrindinis"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Atgal"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Naujausios programos"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Pranešimai"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Spartieji nustatymai"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Maitinimo dialogo langas"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Perjungti išskaidyto ekrano režimą"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Užrakinimo ekranas"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Ekrano kopija"</string>
 </resources>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 89a98dd..ef428a9 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -289,7 +289,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Vai atļaut lietotnei &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; piekļūt šīs ierīces atrašanās vietai?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Lietotne varēs piekļūt atrašanās vietai tikai tad, kad izmantosiet šo lietotni"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Vai &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; drīkst piekļūt ierīces atrašanās vietai &lt;b&gt;vienmēr&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Pašlaik lietotne var piekļūt atrašanās vietai tikai tad, kad izmantojat šo lietotni"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendārs"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"piekļūt jūsu kalendāram"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Vai atļaut lietotnei &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; piekļūt jūsu kalendāram?"</string>
@@ -1996,9 +1997,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Pieskarieties, lai uzzinātu, kas tiek bloķēts."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistēma"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Iestatījumi"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Gaidstāve"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV ierīce drīz izslēgsies. Nospiediet pogu, lai tā paliktu ieslēgta."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Ierīce drīz izslēgsies. Nospiediet, lai tā paliktu ieslēgta."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofons"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"rāda pāri citām lietotnēm jūsu ekrānā"</string>
@@ -2040,22 +2038,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Tiešā kopīgošana nav pieejama"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lietotņu saraksts"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Šai lietotnei nav piešķirta ierakstīšanas atļauja, taču tā varētu tvert audio, izmantojot šo USB ierīci."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Sākums"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Atpakaļ"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Nesen izmantotās lietotnes"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Paziņojumi"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Ātrie iestatījumi"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Barošanas dialoglodziņš"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Pārslēgt ekrāna sadalīšanu"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Bloķēt ekrānu"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Ekrānuzņēmums"</string>
 </resources>
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index 4396c08..896942f 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Дали да се дозволи &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; да пристапува до локацијата на уредов?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Апликацијата ќе има пристап до локацијата само додека ја користите"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Да се дозволи &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; да пристапува до локацијата на уредов &lt;b&gt;во секое време&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Апликацијата во моментов може да пристапува до локацијата само додека ја користите"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"пристапува до календарот"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Дали да се дозволи &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; да пристапува до календарот?"</string>
@@ -1965,9 +1966,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Допрете за да проверите што е блокирано."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Систем"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Поставки"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Подготвеност"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Уредот со Android TV наскоро ќе се исклучи, притиснете копче за да остане вклучен."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Уредот наскоро ќе се исклучи, притиснете за да остане вклучен."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"се прикажува преку други апликации на вашиот екран"</string>
@@ -2008,22 +2006,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Не е достапно директно споделување"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Список со апликации"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"На апликацијава не ѝ е доделена дозвола за снимање, но може да снима аудио преку овој USB-уред."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Почеток"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Назад"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Неодамнешни апликации"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Известувања"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Брзи поставки"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Дијалог за напојување"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Вклучи/исклучи поделен екран"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Заклучен екран"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Слика од екранот"</string>
 </resources>
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index 0b33971..f75d2d6 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"ഈ ഉപകരണത്തിന്റെ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാൻ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ആപ്പിനെ അനുവദിക്കണോ?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"നിങ്ങൾ ആപ്പ് ഉപയോഗിക്കുമ്പോൾ മാത്രമേ അതിന് ലൊക്കേഷൻ ആക്‌സസ് ലഭിക്കൂ."</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"<xliff:g id="APP_NAME">%1$s</xliff:g> എന്നതിനെ ഈ ഉപകരണത്തിന്റെ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാൻ എപ്പോഴും അനുവദിക്കണോ?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"നിലവിൽ, ഉപയോഗിക്കുമ്പോൾ മാത്രം ആപ്പിന് ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാം"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"കലണ്ടർ"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"നിങ്ങളുടെ കലണ്ടർ ആക്‌സസ്സ് ചെയ്യുക"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"നിങ്ങളുടെ കലണ്ടർ ആക്‌സസ് ചെയ്യാൻ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ആപ്പിനെ അനുവദിക്കണോ?"</string>
@@ -1340,9 +1341,9 @@
     <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="alert_windows_notification_channel_group_name" msgid="1463953341148606396">"മറ്റ് ആപ്‌സിന് മുകളിൽ പ്രദർശിപ്പിക്കുക"</string>
-    <string name="alert_windows_notification_channel_name" msgid="3116610965549449803">"<xliff:g id="NAME">%s</xliff:g> മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ പ്രദർശിപ്പിക്കുന്നു"</string>
-    <string name="alert_windows_notification_title" msgid="3697657294867638947">"<xliff:g id="NAME">%s</xliff:g> മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ പ്രദർശിപ്പിക്കുന്നു"</string>
-    <string name="alert_windows_notification_message" msgid="8917232109522912560">"<xliff:g id="NAME">%s</xliff:g> ഈ ഫീച്ചർ ഉപയോഗിക്കുന്നതിൽ നിങ്ങൾക്ക് താൽപ്പര്യമില്ലെങ്കിൽ, ടാപ്പുചെയ്‌ത് ക്രമീകരണം തുറന്ന് അത് ഓഫാക്കുക."</string>
+    <string name="alert_windows_notification_channel_name" msgid="3116610965549449803">"<xliff:g id="NAME">%s</xliff:g> മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ കാണിക്കുന്നു"</string>
+    <string name="alert_windows_notification_title" msgid="3697657294867638947">"<xliff:g id="NAME">%s</xliff:g> മറ്റ് ആപ്പുകൾക്ക് മേലെയാണ്"</string>
+    <string name="alert_windows_notification_message" msgid="8917232109522912560">"<xliff:g id="NAME">%s</xliff:g> ഈ ഫീച്ചർ ഉപയോഗിക്കേണ്ടെങ്കിൽ, ടാപ്പ് ചെയ്‌ത് ക്രമീകരണം തുറന്ന് അത് ഓഫാക്കുക."</string>
     <string name="alert_windows_notification_turn_off_action" msgid="2902891971380544651">"ഓഫാക്കുക"</string>
     <string name="ext_media_checking_notification_title" msgid="4411133692439308924">"<xliff:g id="NAME">%s</xliff:g> പരിശോധിക്കുന്നു…"</string>
     <string name="ext_media_checking_notification_message" msgid="410185170877285434">"നിലവിലെ ഉള്ളടക്കം അവലോകനം ചെയ്യുന്നു"</string>
@@ -1888,7 +1889,7 @@
     <string name="app_category_image" msgid="4867854544519846048">"ഫോട്ടോകളും ചിത്രങ്ങളും"</string>
     <string name="app_category_social" msgid="5842783057834965912">"സാമൂഹിക ആപ്സുകളും ആശയവിനിമയവും"</string>
     <string name="app_category_news" msgid="7496506240743986873">"വാർത്തകളും മാസികകളും"</string>
-    <string name="app_category_maps" msgid="5878491404538024367">"മാപ്സും നാവിഗേഷനും"</string>
+    <string name="app_category_maps" msgid="5878491404538024367">"മാപ്പുകളും നാവിഗേഷനും"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ഉല്‍‌പ്പാദനക്ഷമത"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"ഉപകരണ സ്റ്റോറേജ്"</string>
     <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB ഡീബഗ്ഗിംഗ്"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"എന്തിനെയാണ് ബ്ലോക്ക് ചെയ്‌തതെന്ന് പരിശോധിക്കാൻ ടാപ്പ് ചെയ്യുക."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"സിസ്റ്റം"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"ക്രമീകരണം"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"സ്‌റ്റാൻഡ്‌ബൈ"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android ടിവി ഉടൻ ഓഫാകും, ഓണാക്കി നിർത്താൻ ഒരു ബട്ടൺ അമർത്തുക."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"ഉപകരണം ഉടൻ ഓഫാകും, ഓണാക്കി നിർത്താൻ അമർത്തുക."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ക്യാമറ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"മൈക്രോഫോൺ"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"നിങ്ങളുടെ സ്‌ക്രീനിലെ മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ പ്രദർശിപ്പിക്കുന്നു"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"നേരിട്ടുള്ള പങ്കിടൽ ലഭ്യമല്ല"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"ആപ്പുകളുടെ ലിസ്‌റ്റ്"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"ഈ ആപ്പിന് റെക്കോർഡ് അനുമതി നൽകിയിട്ടില്ല, എന്നാൽ ഈ USB ഉപകരണത്തിലൂടെ ഓഡിയോ ക്യാപ്‌ചർ ചെയ്യാനാവും."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"ഹോം"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"തിരികെ പോകുക"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"സമീപകാലത്തെ ആപ്പുകൾ"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"അറിയിപ്പുകൾ"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"ദ്രുത ക്രമീകരണം"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"പവർ ഡയലോഗ്"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"സ്‌ക്രീൻ വിഭജന മോഡ് മാറ്റുക"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"ലോക്ക് സ്‌ക്രീൻ"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"സ്ക്രീൻഷോട്ട്"</string>
 </resources>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index 990a4d0..1791d0c 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;-д энэ төхөөрөмжийн байршилд хандахыг зөвшөөрөх үү?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Та тухайн аппыг ашиглаж байгаа үед энэ нь зөвхөн байршилд хандах эрхтэй болно"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;-д энэ төхөөрөмжийн байршилд &lt;b&gt;хүссэн үедээ&lt;/b&gt; хандахыг зөвшөөрөх үү?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Та зөвхөн тухайн аппыг ашиглаж байгаа үед энэ нь одоогоор байршилд хандах эрхтэй"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Хуанли"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"Хуанли руу хандах"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;-д таны календарьт хандахыг зөвшөөрөх үү?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Блоклосон зүйлийг шалгахын тулд товшино уу."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Систем"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Тохиргоо"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Зогсолтын горим"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Андройд ТВ төхөөрөмж удахгүй унтрах тул асаалттай хэвээр байлгахын тулд дарна уу."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Төхөөрөмж удахгүй унтрах тул асаалттай хэвээр байлгахын тулд дарна уу."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камер"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"таны дэлгэцэд бусад аппын дээр харуулж байна"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Шууд хуваалцах боломжгүй"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Аппын жагсаалт"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Энэ апликейшнд бичих зөвшөөрөл олгогдоогүй ч энэ USB төхөөрөмжөөр дамжуулан аудио бичиж чадсан."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Нүүр"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Буцах"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Сүүлд хандсан аппууд"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Мэдэгдэл"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Шуурхай тохиргоо"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Тэжээлийн харилцах цонх"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Дэлгэц хуваахыг унтраах/асаах"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Дэлгэцийг түгжих"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Дэлгэцийн зураг дарах"</string>
 </resources>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index edc89a4..f4becc9 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ला या डिव्हाइसचे स्थान अ‍ॅक्सेस करू द्यायचे?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"तुम्ही अ‍ॅप वापरत असताना अ‍ॅपला फक्त स्थानाचा अ‍ॅक्सेस असेल"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ला &lt;b&gt;प्रत्येक वेळी&lt;/b&gt; या डिव्हाइसच्या स्थानाचा अ‍ॅक्सेस द्यायचा?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"अ‍ॅप सध्या फक्त तुम्ही अ‍ॅप वापरत असतानाच स्थान अ‍ॅक्सेस करू शकते"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"कॅलेंडर"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"आपल्या कॅलेंडरवर प्रवेश"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ला तुमचे कॅलेंडर अ‍ॅक्सेस करू द्यायचे?"</string>
@@ -1340,9 +1341,9 @@
     <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="alert_windows_notification_channel_group_name" msgid="1463953341148606396">"इतर अ‍ॅप्सवर दाखवा"</string>
-    <string name="alert_windows_notification_channel_name" msgid="3116610965549449803">"<xliff:g id="NAME">%s</xliff:g> इतर ॲप्सवर प्रदर्शित करत आहे"</string>
-    <string name="alert_windows_notification_title" msgid="3697657294867638947">"<xliff:g id="NAME">%s</xliff:g> अन्‍य ॲप्सवर प्रदर्शित करत आहे"</string>
-    <string name="alert_windows_notification_message" msgid="8917232109522912560">"<xliff:g id="NAME">%s</xliff:g> ने हे वैशिष्ट्य वापरू नये असे तुम्ही इच्छित असल्यास, सेटिंग्ज उघडण्यासाठी टॅप करा आणि ते बंद करा."</string>
+    <string name="alert_windows_notification_channel_name" msgid="3116610965549449803">"अन्‍य ॲप्सवर <xliff:g id="NAME">%s</xliff:g> दाखवत आहे"</string>
+    <string name="alert_windows_notification_title" msgid="3697657294867638947">"अन्‍य ॲप्सवर <xliff:g id="NAME">%s</xliff:g> दाखवत आहे"</string>
+    <string name="alert_windows_notification_message" msgid="8917232109522912560">"<xliff:g id="NAME">%s</xliff:g> ने हे वैशिष्ट्य वापरू नये असे तुम्हाला वाटत असल्यास, टॅप करून सेटिंग्ज उघडा आणि ते बंद करा."</string>
     <string name="alert_windows_notification_turn_off_action" msgid="2902891971380544651">"बंद करा"</string>
     <string name="ext_media_checking_notification_title" msgid="4411133692439308924">"<xliff:g id="NAME">%s</xliff:g> तपासत आहे…"</string>
     <string name="ext_media_checking_notification_message" msgid="410185170877285434">"सध्याच्या आशयाचे पुनरावलोकन करत आहे"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"काय ब्लॉक केले आहे हे तपासण्यासाठी टॅप करा."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"सिस्टम"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"सेटिंग्ज"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"स्टँडबाय"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV डिव्हाइस लवकरच बंद होणार आहे; सुरू ठेवण्यासाठी बटण दाबा."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"डिव्हाइस लवकरच बंद होणार आहे; सुरू ठेवण्यासाठी दाबा."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"कॅमेरा"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"मायक्रोफोन"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"तुमच्‍या स्‍क्रीनवर इतर ॲप्‍सवर डिस्‍प्‍ले करत आहे"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"थेट शेअर करणे उपलब्ध नाही"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"अ‍ॅप्स सूची"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"या अ‍ॅपला रेकॉर्ड करण्याची परवानगी दिली गेली नाही पण हे USB डिव्हाइस वापरून ऑडिओ कॅप्चर केला जाऊ शकतो."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"होम"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"मागे जा"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"अलीकडील ॲप्स"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"सूचना"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"क्विक सेटिंग्ज"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"पॉवर डायलॉग"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"विभाजित स्क्रीन टॉगल करा"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"स्‍क्रीन लॉक करा"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"स्क्रीनशॉट"</string>
 </resources>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index 0c881c5..5caf29f 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Benarkan &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; mengakses lokasi peranti ini?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Apl ini hanya dapat mengakses lokasi semasa anda menggunakan apl tersebut"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Benarkan &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; mengakses lokasi peranti ini &lt;b&gt;pada sepanjang masa&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Pada masa ini, apl hanya boleh mengakses lokasi semasa anda menggunakan apl itu"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendar"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"mengakses kalendar"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Benarkan &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; mengakses kalendar anda?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Ketik untuk menyemak item yang disekat."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistem"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Tetapan"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Tunggu sedia"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Peranti Android TV akan mati tidak lama lagi; tekan butang untuk memastikan peranti terus hidup."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Peranti akan mati tidak lama lagi; tekan untuk memastikan peranti terus hidup."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"dipaparkan di atas apl lain pada skrin anda"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Perkongsian langsung tidak tersedia"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Senarai apl"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Apl ini belum diberikan kebenaran merakam tetapi dapat merakam audio melalui peranti USB ini."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Skrin Utama"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Kembali"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Apl Terbaharu"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Pemberitahuan"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Tetapan Pantas"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dialog Kuasa"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Togol Skrin Pisah"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Skrin Kunci"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Tangkapan skrin"</string>
 </resources>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index f5745b5..7ab0282 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; အား ဤစက်ပစ္စည်း၏တည်နေရာကို သုံးခွင့်ပေးလိုပါသလား။"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"အက်ပ်ကိုအသုံးပြုသည့် အချိန်တွင်သာ ၎င်းကတည်နေရာကို အသုံးပြုခွင့်ရပါမည်"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; အား ဤစက်ပစ္စည်း၏ တည်နေရာကို &lt;b&gt;အမြဲတမ်း&lt;/b&gt; ဝင်သုံးခွင့်ပေးလိုပါသလား။"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"အက်ပ်ကိုအသုံးပြုသည့် အချိန်တွင်သာ ၎င်းကတည်နေရာကို အသုံးပြုခွင့်ရပါသည်"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"ပြက္ခဒိန်"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"သင့်ပြက္ခဒိန်အား ဝင်ရောက်သုံးရန်"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; အား သင်၏ပြက္ခဒိန်ကို သုံးခွင့်ပေးလိုပါသလား။"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"ပိတ်ထားသည့်အရာများကို ကြည့်ရန် တို့ပါ။"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"စနစ်"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"ဆက်တင်များ"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"အသင့်အနေအထား"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV စက်သည် မကြာမီ ပိတ်သွားပါမည်၊ ဆက်ဖွင့်ထားရန် ခလုတ်တစ်ခုနှိပ်ပါ။"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"စက်သည် အကြာမီ ပိတ်သွားပါမည်၊ ဆက်ဖွင့်ထားပါ။"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ကင်မရာ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"မိုက်ခရိုဖုန်း"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"သင့်မျက်နှာပြင်ပေါ်ရှိ အခြားအက်ပ်များပေါ်တွင် ပြသခြင်း"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"တိုက်ရိုက်မျှဝေ၍ မရပါ"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"အက်ပ်စာရင်း"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"ဤအက်ပ်ကို အသံဖမ်းခွင့် ပေးမထားသော်လည်း ၎င်းသည် ဤ USB စက်ပစ္စည်းမှတစ်ဆင့် အသံများကို ဖမ်းယူနိုင်ပါသည်။"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"ပင်မစာမျက်နှာ"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"နောက်သို့"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"လတ်တလောသုံး အက်ပ်များ"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"အကြောင်းကြားချက်များ"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"အမြန် ဆက်တင်များ"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"ပါဝါ ဒိုင်ယာလော့"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"မျက်နှာပြင် ခွဲ၍ပြသခြင်းကို နှိပ်ပါ"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"လော့ခ်မျက်နှာပြင်"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"ဖန်သားပြင်ဓာတ်ပုံ"</string>
 </resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 0359779..aecbea6 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Vil du gi &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; tilgang til denne enhetens posisjon?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Appen får bare tilgang til posisjonen når du bruker appen"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Vil du gi &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; tilgang til enhetens posisjon &lt;b&gt;til enhver tid&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Appen har nå bare tilgang til posisjonen når du bruker den"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"åpne kalenderen din"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Vil du gi &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; tilgang til kalenderen din?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Trykk for å sjekke hva som er blokkert."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"System"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Innstillinger"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Ventemodus"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV-enheten slås snart av. Trykk på en knapp for å holde den på."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Enheten slås snart av. Trykk for å holde den på."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"vises over andre apper på skjermen"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Direktedeling er ikke tilgjengelig"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Appliste"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Denne appen har ikke fått tillatelse til å spille inn, men kan ta opp lyd med denne USB-enheten."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Start"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Tilbake"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Nylige apper"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Varsler"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Hurtiginnstillinger"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dialogboks for å slå av/på"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Slå delt skjerm av/på"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Låseskjerm"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Skjermdump"</string>
 </resources>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index 2617086..a6f37dd 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; लाई यो यन्त्रको स्थानमाथि पहुँच राख्न दिने हो?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"तपाईंले अनुप्रयोग प्रयोग गरिरहेका बेला मात्र उक्त अनुप्रयोगले स्थानमाथि पहुँच राख्न सक्ने छ"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; लाई यस यन्त्रको स्थानमाथि &lt;b&gt;जुनसुकै बेला&lt;/b&gt; पहुँच गर्न दिने हो?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"तपाईंले अनुप्रयोग प्रयोग गरिरहँदा मात्र उक्त अनुप्रयोगले हाल स्थानमाथि मात्र पहुँच गर्न सक्छ"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"पात्रो"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"तपाईंको पात्रोमाथि पहुँच गर्नुहोस्"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; लाई आफ्नो पात्रोमाथि पहुँच राख्न दिने हो?"</string>
@@ -1777,10 +1778,8 @@
     <string name="package_updated_device_owner" msgid="1847154566357862089">"तपाईंका प्रशासकले अद्यावधिक गर्नुभएको"</string>
     <string name="package_deleted_device_owner" msgid="2307122077550236438">"तपाईंका प्रशासकले मेट्नुभएको"</string>
     <string name="confirm_battery_saver" msgid="639106420541753635">"ठिक छ"</string>
-    <!-- no translation found for battery_saver_description_with_learn_more (1002571337088673987) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (2307555792915978653) -->
-    <skip />
+    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"ब्याट्रीको आयु लामो बनाउन ब्याट्री सेभरले:\n·अँध्यारो विषयवस्तु सक्रिय गर्छ\n·पृष्ठभूमिका गतिविधि, कतिपय भिजुअल प्रभाव तथा “Hey Google” जस्ता अन्य सुविधाहरू निष्क्रिय वा सीमित पार्छ।\n\n"<annotation id="url">"थप जान्नुहोस्"</annotation></string>
+    <string name="battery_saver_description" msgid="2307555792915978653">"ब्याट्रीको आयु लामो बनाउन ब्याट्री सेभरले:\n·अँध्यारो विषयवस्तु सक्रिय गर्छ\n·पृष्ठभूमिका गतिविधि, कतिपय भिजुअल प्रभाव तथा “Hey Google” जस्ता अन्य सुविधाहरू निष्क्रिय वा सीमित पार्छ।"</string>
     <string name="data_saver_description" msgid="6015391409098303235">"डेटाको प्रयोगलाई कम गर्नमा मद्दतका लागि डेटा सर्भरले केही अनुप्रयोगहरूलाई पृष्ठभूमिमा डेटा पठाउन वा प्राप्त गर्नबाट रोक्दछ। तपाईँले हाल प्रयोग गरिरहनुभएको अनु्प्रयोगले डेटामाथि पहुँच राख्न सक्छ, तर त्यसले यो काम थोरै पटक गर्न सक्छ। उदाहरणका लागि यसको मतलब यो हुन सक्छ: तपाईँले छविहरूलाई ट्याप नगरेसम्म ती प्रदर्शन हुँदैनन्।"</string>
     <string name="data_saver_enable_title" msgid="4674073932722787417">"डेटा सेभरलाई सक्रिय गर्ने हो?"</string>
     <string name="data_saver_enable_button" msgid="7147735965247211818">"सक्रिय गर्नुहोस्"</string>
@@ -1971,9 +1970,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"रोक लगाइएका कुराहरू जाँच गर्न ट्याप गर्नुहोस्‌।"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"प्रणाली"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"सेटिङहरू"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"स्ट्यान्डबाई"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV यन्त्र चाँडै निष्क्रिय हुने छ; सक्रिय राख्न कुनै बटन थिच्नुहोस्।"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"यो यन्त्र चाँडै निष्क्रिय हुने छ; सक्रिय राख्न थिच्नुहोस्।"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"क्यामेरा"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"माइक्रोफोन"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"तपाईंको स्क्रिनका अन्य अनुप्रयोगहरूमा प्रदर्शन गरिँदै छ"</string>
@@ -2014,22 +2010,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"सीधै आदान प्रदान गर्ने सुविधा उपलब्ध छैन"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"अनुप्रयोगहरूको सूची"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"यो अनुप्रयोगलाई रेकर्ड गर्ने अनुमति प्रदान गरिएको छैन तर यसले यो USB यन्त्रमार्फत अडियो क्याप्चर गर्न सक्छ।"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"गृहपृष्ठ"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"पछाडि फर्कनुहोस्"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"हालसालैका अनुप्रयोगहरू"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"सूचनाहरू"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"द्रुत सेटिङहरू"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"पावर संवाद"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"विभाजित स्क्रिन टगल गर्नुहोस्"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"लक स्क्रिन"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"स्क्रिनसट"</string>
 </resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 43b4ede..684ea94 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; toegang geven tot de locatie van dit apparaat?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"De app heeft alleen toegang tot de locatie wanneer je de app gebruikt"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Wil je &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; &lt;b&gt;altijd&lt;/b&gt; toegang geven tot de locatie van dit apparaat?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"De app heeft momenteel alleen toegang tot de locatie wanneer je de app gebruikt"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Deze app wil mogelijk altijd toegang tot je locatie, ook als je de app niet gebruikt. Je kunt dit toestaan via de "<annotation id="link">"instellingen"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"toegang krijgen tot je agenda"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; toegang geven tot je agenda?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Tik om te controleren wat er is geblokkeerd."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Systeem"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Instellingen"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Stand-by"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Het Android TV-apparaat wordt binnenkort uitgeschakeld. Druk op een knop om het ingeschakeld te houden."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Het apparaat wordt binnenkort uitgeschakeld. Druk om het ingeschakeld te houden."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Camera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microfoon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"wordt weergegeven vóór andere apps op je scherm"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Rechtstreeks delen is niet beschikbaar"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lijst met apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Deze app heeft geen opnamerechten gekregen, maar zou audio kunnen vastleggen via dit USB-apparaat."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Homepage"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Terug"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Recente apps"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Meldingen"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Snelle instellingen"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Voedingsdialoogvenster"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Gesplitst scherm schakelen"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Scherm vergrendelen"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Screenshot"</string>
 </resources>
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index 68b76c8..6c53e16 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;କୁ ଏହି ଡିଭାଇସ୍‌ର ଲୋକେସନ୍‍ ଆକ୍ସେସ୍‍ କରିବା ପାଇଁ ଅନୁମତି ଦେବେ କି?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"ଆପଣ ଆପ୍ ବ୍ୟବହାର କରୁଥିବା ବେଳେ କେବଳ ଲୋକେସନ୍‍କୁ ଆପ୍‍ର ଆକ୍ସେସ୍‍ ରହିବ।"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;କୁ ଏହି ଡିଭାଇସ୍‌ର ଲୋକେସନ୍ ଆକ୍ସେସ୍ କରିବାକୁ &lt;b&gt;ସର୍ବଦା&lt;/b&gt; ଅନୁମତି ଦେବେ କି?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"ବର୍ତ୍ତମାନ ଆପଣ କେବଳ ଆପ୍‍ ବ୍ୟବହାର କରୁଥିବା ବେଳେ ଆପ୍ ଆପଣଙ୍କ ଲୋକେସନ୍ ଆକ୍ସେସ୍ କରିପାରିବ"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"କ୍ୟାଲେଣ୍ଡର୍"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ଆପଣଙ୍କ କ୍ୟାଲେଣ୍ଡର୍‍ ଆକ୍ସେସ୍‍ କରେ"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;କୁ ଆପଣଙ୍କ କ୍ୟାଲେଣ୍ଡର୍‌କୁ ଆକ୍ସେସ୍‍ କରିବା ପାଇଁ ଅନୁମତି ଦେବେ କି?"</string>
@@ -1771,10 +1772,8 @@
     <string name="package_updated_device_owner" msgid="1847154566357862089">"ଆପଣଙ୍କ ଆଡମିନ୍‌‌ ଅପଡେଟ୍‍ କରିଛନ୍ତି"</string>
     <string name="package_deleted_device_owner" msgid="2307122077550236438">"ଆପଣଙ୍କ ଆଡମିନ୍‌‌ ଡିଲିଟ୍‍ କରିଛନ୍ତି"</string>
     <string name="confirm_battery_saver" msgid="639106420541753635">"ଠିକ୍ ଅଛି"</string>
-    <!-- no translation found for battery_saver_description_with_learn_more (1002571337088673987) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (2307555792915978653) -->
-    <skip />
+    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"ବ୍ୟାଟେରୀ ଜୀବନ ବଢ଼ାଇବାକୁ ବ୍ୟାଟେରୀ ସେଭର୍:\n·ଗାଢା ଥିମ୍‌ ଚାଲୁ କରେ\n·ପୃଷ୍ଟପଟ କାର୍ଯ୍ୟକଳାପକୁ, କିଛି ଭିଜୁଆଲ୍ ପ୍ରଭାବଗୁଡ଼ିକୁ ଏବଂ “ହେ Google” ପରି ଅନ୍ୟ ଫିଚର୍‌କୁ ବନ୍ଦ ରଖେ କିମ୍ବା ପ୍ରତିବନ୍ଧିତ କରିଥାଏ\n\n"<annotation id="url">"ଅଧିକ ଜାଣନ୍ତୁ"</annotation></string>
+    <string name="battery_saver_description" msgid="2307555792915978653">"ବ୍ୟାଟେରୀ ଜୀବନ ବଢ଼ାଇବାକୁ ବ୍ୟାଟେରୀ ସେଭର୍:\n·ଗାଢା ଥିମ୍‌ ଚାଲୁ କରେ\n·ପୃଷ୍ଟପଟ କାର୍ଯ୍ୟକଳାପକୁ, କିଛି ଭିଜୁଆଲ୍ ପ୍ରଭାବଗୁଡ଼ିକୁ ଏବଂ “ହେ Google” ପରି ଅନ୍ୟ ଫିଚର୍‌କୁ ବନ୍ଦ ରଖେ କିମ୍ବା ପ୍ରତିବନ୍ଧିତ କରିଥାଏ"</string>
     <string name="data_saver_description" msgid="6015391409098303235">"ଡାଟା ବ୍ୟବହାର କମ୍‍ କରିବାରେ ସାହାଯ୍ୟ କରିବାକୁ, ଡାଟା ସେଭର୍‍ ବ୍ୟାକ୍‌ଗ୍ରାଉଣ୍ଡରେ ଡାଟା ପଠାଇବା କିମ୍ବା ପ୍ରାପ୍ତ କରିବାକୁ କିଛି ଆପ୍‍କୁ ବାରଣ କରେ। ଆପଣ ବର୍ତ୍ତମାନ ବ୍ୟବହାର କରୁଥିବା ଆପ୍‍, ଡାଟା ଆକ୍ସେସ୍‍ କରିପାରେ, କିନ୍ତୁ ଏହା କମ୍‍ ଥର କରିପାରେ। ଏହାର ଅର୍ଥ ହୋଇପାରେ, ଯେପରି, ଆପଣ ଟାପ୍‍ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ଯେଉଁ ଇମେଜ୍‍ ଦେଖାଯାଏ ନାହିଁ।"</string>
     <string name="data_saver_enable_title" msgid="4674073932722787417">"ଡାଟା ସେଭର୍‌ ଅନ୍ କରିବେ?"</string>
     <string name="data_saver_enable_button" msgid="7147735965247211818">"ଅନ୍ କରନ୍ତୁ"</string>
@@ -1965,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"କ’ଣ ଅବରୋଧ ହୋଇଛି ଯାଞ୍ଚ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ।"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"ସିଷ୍ଟମ୍‌"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"ସେଟିଙ୍ଗ"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"ଷ୍ଟାଣ୍ଡବାଏ"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android ଟିଭି ଡିଭାଇସ୍ ଶୀଘ୍ର ବନ୍ଦ ହୋଇଯିବ; ଏହା ଚାଲୁ ରଖିବା ପାଇଁ ଏକ ବଟନ୍ ଦବାନ୍ତୁ।"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"ଡିଭାଇସ୍ ଶୀଘ୍ର ବନ୍ଦ ହୋଇଯିବ; ଚାଲୁ ରଖିବା ପାଇଁ ଦବାନ୍ତୁ।"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"କ୍ୟାମେରା"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ମାଇକ୍ରୋଫୋନ୍"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ଆପଣଙ୍କ ସ୍କ୍ରୀନ୍ ଉପରେ ଥିବା ଅନ୍ୟ ଆପ୍‌ ଉପରେ ଦେଖାଦେବ"</string>
@@ -2008,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"ସିଧାସଳଖ ସେୟାର୍ ସୁବିଧା ଉପଲବ୍ଧ ନାହିଁ"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"ଆପ୍ସ ତାଲିକା"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"ଏହି ଆପ୍‌କୁ ରେକର୍ଡ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇ ନାହିଁ କିନ୍ତୁ ଏହି USB ଡିଭାଇସ୍ ଜରିଆରେ ଅଡିଓ କ୍ୟାପ୍‍ଚର୍‍ କରିପାରିବ।"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"ମୂଳପୃଷ୍ଠା"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"ପଛକୁ ଫେରନ୍ତୁ"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"ବର୍ତ୍ତମାନର ଆପ୍‌ଗୁଡ଼ିକ"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଖୋଲନ୍ତୁ"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"କ୍ୱିକ୍ ସେଟିଂସ୍ ଖୋଲନ୍ତୁ"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"ପାୱାର ଡାୟଲଗ୍ ଖୋଲନ୍ତୁ"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"ଦୁଇଟି ସ୍କ୍ରିନ୍ ମଧ୍ୟରେ ଟୋଗଲ୍ କରନ୍ତୁ"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"ସ୍କ୍ରିନ୍ ଲକ୍ କରନ୍ତୁ"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"ସ୍କ୍ରି‍ନ୍‍ସଟ୍ ନିଅନ୍ତୁ"</string>
 </resources>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index 63b5f53..0f27133 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"ਕੀ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ਨੂੰ ਇਸ ਡੀਵਾਈਸ ਦੇ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੇਣੀ ਹੈ?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਐਪ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵੇਲੇ ਹੀ ਐਪ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੋਵੇਗੀ"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"ਕੀ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ਨੂੰ ਹਰ ਵੇਲੇ &lt;b&gt;ਇਸ ਡੀਵਾਈਸ ਦੇ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੇਣੀ ਹੈ&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਐਪ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵੇਲੇ ਹੀ ਐਪ ਹੁਣ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕੇਗੀ"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"ਕੈਲੰਡਰ"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਤੱਕ ਪਹੁੰਚ ਕਰਨ"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"ਕੀ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ਨੂੰ ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਤੱਕ ਪਹੁੰਚ ਕਰਨੀ ਦੇਣੀ ਹੈ?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"ਟੈਪ ਕਰਕੇ ਦੋਖੋ ਕਿ ਕਿਹੜੀਆਂ ਚੀਜ਼ਾਂ ਬਲਾਕ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ।"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"ਸਿਸਟਮ"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"ਸੈਟਿੰਗਾਂ"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"ਸਟੈਂਡਬਾਈ"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV ਡੀਵਾਈਸ ਜਲਦ ਹੀ ਬੰਦ ਹੋ ਜਾਵੇਗਾ; ਇਸਨੂੰ ਚਾਲੂ ਰੱਖਣ ਲਈ ਕੋਈ ਬਟਨ ਦਬਾਓ।"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"ਡੀਵਾਈਸ ਜਲਦ ਹੀ ਬੰਦ ਹੋ ਜਾਵੇਗਾ, ਇਸਨੂੰ ਚਾਲੂ ਰੱਖਣ ਲਈ ਦਬਾਓ।"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ਕੈਮਰਾ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ਮਾਈਕ੍ਰੋਫ਼ੋਨ"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ \'ਤੇ ਹੋਰਾਂ ਐਪਾਂ ਉੱਪਰ ਦਿਖਾਇਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"ਸਿੱਧਾ ਸਾਂਝਾ ਕਰਨ ਦੀ ਸੁਵਿਧਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"ਐਪ ਸੂਚੀ"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"ਇਸ ਐਪ ਨੂੰ ਰਿਕਾਰਡ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੱਤੀ ਗਈ ਪਰ ਇਹ USB ਡੀਵਾਈਸ ਰਾਹੀਂ ਆਡੀਓ ਕੈਪਚਰ ਕਰ ਸਕਦੀ ਹੈ।"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"ਹੋਮ"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"ਪਿੱਛੇ"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"ਹਾਲੀਆ ਐਪਾਂ"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"ਸੂਚਨਾਵਾਂ"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"ਤਤਕਾਲ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"ਪਾਵਰ ਵਿੰਡੋ"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਨੂੰ ਟੌਗਲ ਕਰੋ"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"ਲਾਕ ਸਕ੍ਰੀਨ"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"ਸਕ੍ਰੀਨਸ਼ਾਟ"</string>
 </resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index bd695a9..38b982a 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -292,7 +292,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Zezwolić aplikacji &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; na dostęp do lokalizacji urządzenia?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Aplikacja będzie mieć dostęp do lokalizacji tylko wtedy, gdy będzie używana"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Zezwolić aplikacji &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; na &lt;b&gt;ciągły&lt;/b&gt; dostęp do lokalizacji tego urządzenia?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Aplikacja obecnie ma dostęp do lokalizacji tylko wtedy, gdy jest używana"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Aplikacja chce mieć stały dostęp do Twojej lokalizacji, nawet gdy nie jest używana. Zezwól w "<annotation id="link">"ustawieniach"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendarz"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"dostęp do kalendarza"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Zezwolić aplikacji &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; na dostęp do kalendarza?"</string>
@@ -566,7 +566,7 @@
     <string name="permdesc_manageFace" msgid="8919637120670185330">"Zezwala na aktywowanie przez aplikację metody dodawania i usuwania szablonów twarzy."</string>
     <string name="permlab_useFaceAuthentication" msgid="2565716575739037572">"używanie sprzętu do rozpoznawania twarzy"</string>
     <string name="permdesc_useFaceAuthentication" msgid="4712947955047607722">"Zezwala na używanie przez aplikację sprzętu do rozpoznawania twarzy w uwierzytelniania"</string>
-    <string name="face_recalibrate_notification_name" msgid="1913676850645544352">"Rozpoznanie twarzy"</string>
+    <string name="face_recalibrate_notification_name" msgid="1913676850645544352">"Rozpoznawanie twarzy"</string>
     <string name="face_recalibrate_notification_title" msgid="4087620069451499365">"Zarejestruj swoją twarz ponownie"</string>
     <string name="face_recalibrate_notification_content" msgid="5530308842361499835">"Aby poprawić rozpoznawanie, ponownie zarejestruj swoją twarz"</string>
     <string name="face_acquired_insufficient" msgid="2767330364802375742">"Nie udało się zarejestrować danych twarzy. Spróbuj ponownie."</string>
@@ -595,12 +595,12 @@
     <string name="face_error_timeout" msgid="981512090365729465">"Spróbuj rozpoznania twarzy ponownie."</string>
     <string name="face_error_no_space" msgid="2712120617457553825">"Nie można przechowywać nowych danych twarzy. Usuń stare."</string>
     <string name="face_error_canceled" msgid="283945501061931023">"Analiza twarzy została anulowana."</string>
-    <string name="face_error_user_canceled" msgid="5317030072349668946">"Użytkownik anulował rozpoznanie twarzy."</string>
+    <string name="face_error_user_canceled" msgid="5317030072349668946">"Użytkownik anulował rozpoznawanie twarzy."</string>
     <string name="face_error_lockout" msgid="3407426963155388504">"Zbyt wiele prób. Spróbuj ponownie później."</string>
-    <string name="face_error_lockout_permanent" msgid="4723594314443097159">"Zbyt wiele prób. Rozpoznanie twarzy zostało wyłączone."</string>
+    <string name="face_error_lockout_permanent" msgid="4723594314443097159">"Zbyt wiele prób. Rozpoznawanie twarzy zostało wyłączone."</string>
     <string name="face_error_unable_to_process" msgid="4940944939691171539">"Nie można zweryfikować twarzy. Spróbuj ponownie."</string>
-    <string name="face_error_not_enrolled" msgid="4016937174832839540">"Rozpoznanie twarzy nie jest skonfigurowane."</string>
-    <string name="face_error_hw_not_present" msgid="8302690289757559738">"To urządzenie nie obsługuje rozpoznania twarzy."</string>
+    <string name="face_error_not_enrolled" msgid="4016937174832839540">"Rozpoznawanie twarzy nie jest skonfigurowane."</string>
+    <string name="face_error_hw_not_present" msgid="8302690289757559738">"To urządzenie nie obsługuje rozpoznawania twarzy."</string>
     <string name="face_name_template" msgid="7004562145809595384">"Twarz <xliff:g id="FACEID">%d</xliff:g>"</string>
   <string-array name="face_error_vendor">
   </string-array>
@@ -899,7 +899,7 @@
     <string name="keyguard_accessibility_expand_lock_area" msgid="519859720934178024">"Rozwiń obszar odblokowania."</string>
     <string name="keyguard_accessibility_slide_unlock" msgid="2959928478764697254">"Odblokowanie przesunięciem."</string>
     <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Odblokowanie wzorem."</string>
-    <string name="keyguard_accessibility_face_unlock" msgid="4817282543351718535">"Rozpoznanie twarzy"</string>
+    <string name="keyguard_accessibility_face_unlock" msgid="4817282543351718535">"Rozpoznawanie twarzy"</string>
     <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Odblokowanie kodem PIN."</string>
     <string name="keyguard_accessibility_sim_pin_unlock" msgid="9149698847116962307">"Odblokowanie kodu PIN karty SIM."</string>
     <string name="keyguard_accessibility_sim_puk_unlock" msgid="9106899279724723341">"Odblokowanie kodu PUK karty SIM."</string>
@@ -932,7 +932,7 @@
     <string name="autofill_address_summary_name_format" msgid="3268041054899214945">"$1$2$3"</string>
     <string name="autofill_address_summary_separator" msgid="7483307893170324129">", "</string>
     <string name="autofill_address_summary_format" msgid="4874459455786827344">"$1$2$3"</string>
-    <string name="autofill_province" msgid="2231806553863422300">"Województwo"</string>
+    <string name="autofill_province" msgid="2231806553863422300">"Region"</string>
     <string name="autofill_postal_code" msgid="4696430407689377108">"Kod pocztowy"</string>
     <string name="autofill_state" msgid="6988894195520044613">"Stan"</string>
     <string name="autofill_zip_code" msgid="8697544592627322946">"Kod pocztowy"</string>
@@ -2029,9 +2029,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Kliknij, by sprawdzić, co jest zablokowane."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"System"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Ustawienia"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Tryb gotowości"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Urządzenie z Androidem TV za chwilę się wyłączy. Naciśnij przycisk, by pozostało włączone."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Urządzenie za chwilę się wyłączy. Naciśnij, by pozostało włączone."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Aparat"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"wyświetla się nad innymi aplikacjami na ekranie"</string>
@@ -2074,22 +2071,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Udostępnianie bezpośrednie jest niedostępne"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lista aplikacji"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Ta aplikacja nie ma uprawnień do nagrywania, ale może rejestrować dźwięk za pomocą tego urządzenia USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Ekran główny"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Wstecz"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Ostatnie aplikacje"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Powiadomienia"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Szybkie ustawienia"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Okno opcji zasilania"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Przełącz podzielony ekran"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Ekran blokady"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Zrzut ekranu"</string>
 </resources>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index 45a2abd2..4d68520 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Permitir que o app &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acesse o local deste dispositivo?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"O app só terá acesso ao local enquanto estiver sendo usado"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Permitir que o &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acesse o local do dispositivo &lt;b&gt;o tempo todo&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"No momento, o app só pode acessar o local enquanto estiver sendo usado"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"acesse sua agenda"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Permitir que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acesse sua agenda?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Toque para verificar o que está bloqueado."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistema"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Configurações"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Espera"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"O dispositivo Android TV entrará no modo de espera em breve. Pressione um botão para mantê-lo ativado."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"O dispositivo entrará no modo de espera em breve. Pressione para mantê-lo ativado."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Câmera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microfone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"exibindo sobre outros apps na sua tela"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Compartilhamento direto indisponível"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lista de apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Este app não tem permissão de gravação, mas pode capturar áudio pelo dispositivo USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Início"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Voltar"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Apps recentes"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notificações"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Configurações rápidas"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Caixa de diálogo de liga/desliga"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Ativar tela dividida"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Bloquear tela"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Capturar tela"</string>
 </resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 0fd303f..42aa191 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Pretende permitir que a aplicação &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; aceda à localização deste dispositivo?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"A aplicação tem acesso à localização apenas enquanto a estiver a utilizar"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Pretende permitir que a aplicação &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; aceda &lt;b&gt;sempre&lt;/b&gt; à localização deste dispositivo?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Atualmente, a aplicação pode aceder à localização apenas enquanto estiver a ser utilizada"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendário"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"aceder ao calendário"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Pretende permitir que a aplicação &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; aceda ao calendário?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Toque para verificar o que está bloqueado."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistema"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Definições"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Modo de espera"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"O dispositivo Android TV irá desligar-se brevemente. Prima um botão para o manter ligado."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"O dispositivo irá desligar-se brevemente. Prima para o manter ligado."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Câmara"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microfone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"sobrepõe-se a outras aplicações no ecrã"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"A partilha direta não está disponível."</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lista de aplicações"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Esta aplicação não recebeu autorização de gravação, mas pode capturar áudio através deste dispositivo USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Página inicial"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Anterior"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Aplicações recentes"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notificações"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Definições rápidas"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Caixa de diálogo de energia"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Ativar/desativar o ecrã dividido"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Ecrã de bloqueio"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Captura de ecrã"</string>
 </resources>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 45a2abd2..4d68520 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Permitir que o app &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acesse o local deste dispositivo?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"O app só terá acesso ao local enquanto estiver sendo usado"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Permitir que o &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acesse o local do dispositivo &lt;b&gt;o tempo todo&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"No momento, o app só pode acessar o local enquanto estiver sendo usado"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"acesse sua agenda"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Permitir que &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; acesse sua agenda?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Toque para verificar o que está bloqueado."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistema"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Configurações"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Espera"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"O dispositivo Android TV entrará no modo de espera em breve. Pressione um botão para mantê-lo ativado."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"O dispositivo entrará no modo de espera em breve. Pressione para mantê-lo ativado."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Câmera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microfone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"exibindo sobre outros apps na sua tela"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Compartilhamento direto indisponível"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lista de apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Este app não tem permissão de gravação, mas pode capturar áudio pelo dispositivo USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Início"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Voltar"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Apps recentes"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notificações"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Configurações rápidas"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Caixa de diálogo de liga/desliga"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Ativar tela dividida"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Bloquear tela"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Capturar tela"</string>
 </resources>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index a878628..8fc87d8 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -289,7 +289,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Permiteți &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; să acceseze locația acestui dispozitiv?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Aplicația va avea acces la locație doar atunci când o folosiți"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Permiteți aplicației &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; să acceseze locația dispozitivului &lt;b&gt;tot timpul&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Aplicația poate accesa locația numai când folosiți aplicația"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Este posibil ca aplicația să dorească să vă acceseze în permanență locația, chiar și când nu o folosiți. Acordați această permisiune din "<annotation id="link">"setări"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"acceseze calendarul"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Permiteți &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; să vă acceseze calendarul?"</string>
@@ -1996,9 +1996,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Atingeți pentru a verifica ce este blocat."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistem"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Setări"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Standby"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Dispozitivul Android TV se va opri în curând. Apăsați un buton pentru a-l menține pornit."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Dispozitivul se va opri în curând. Apăsați pentru a-l menține pornit."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Cameră foto"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microfon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"se afișează peste alte aplicații de pe ecran"</string>
@@ -2040,22 +2037,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Trimiterea directă nu este disponibilă"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lista de aplicații"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Permisiunea de înregistrare nu a fost acordată aplicației, dar aceasta poate să înregistreze conținut audio prin intermediul acestui dispozitiv USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Pornire"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Înapoi"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Aplicații recente"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Notificări"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Setări rapide"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Power Dialog"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Activați ecranul împărțit"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Ecran de blocare"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Captură de ecran"</string>
 </resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index aa94aa6..ce206d0 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -292,7 +292,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Разрешить приложению &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; доступ к данным о местоположении устройства?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Доступ к местоположению будет открыт, только пока вы пользуетесь приложением."</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Разрешить приложению \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" постоянный доступ к местоположению устройства?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Сейчас у приложения есть доступ к местоположению только во время его использования."</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календарь"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"доступ к календарю"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Разрешить приложению &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; доступ к календарю?"</string>
@@ -2029,9 +2030,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Нажмите, чтобы проверить настройки."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Система"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Настройки"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Переход в режим ожидания"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Устройство Android TV скоро выключится. Чтобы этого не произошло, нажмите любую кнопку."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Устройство скоро выключится. Чтобы этого не произошло, нажмите любую кнопку или коснитесь экрана."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"показ поверх других окон"</string>
@@ -2074,22 +2072,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Функция Direct Share недоступна."</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Список приложений"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Приложению не разрешено записывать звук, однако оно может делать это с помощью этого USB-устройства."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Главный экран"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Назад"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Недавние приложения"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Уведомления"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Быстрые настройки"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Диалоговое окно питания"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Включить или выключить разделение экрана"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Заблокированный экран"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Скриншот"</string>
 </resources>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index ee261a54..d48d78e 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;b&gt; වෙත මෙම උපාංගයේ ස්ථානය ලබා ගැනීමට ඉඩ දෙන්නද?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"ඔබ යෙදුම භාවිත කරන විට පමණක් යෙදුමට ස්ථානය වෙත ප්‍රවේශය ඇත"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; හට ඔබේ උපාංයේ ස්ථානය වෙත &lt;b&gt;සැම විටම&lt;/b&gt; ප්‍රවේශ වීමට ඉඩ දෙන්නේද?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"යෙදුමට දැනට ඔබ යෙදුම භාවිත කරන විට පමණක් ස්ථානය වෙත ප්‍රවේශ විය හැක"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"දින දර්ශනය"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ඔබේ දින දර්ශනයට පිවිසෙන්න"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;b&gt; වෙත ඔබගේ දින දර්ශනය ප්‍රවේශ කිරීමට ඉඩ දෙන්නද?"</string>
@@ -1965,9 +1966,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"අවහිර කර ඇති දේ පරීක්ෂා කිරීමට තට්ටු කරන්න."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"පද්ධතිය"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"සැකසීම්"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"පොරොත්තු"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV උපාංගය ඉක්මනින් ක්‍රියා විරහිත වනු ඇත; එය දිගටම ක්‍රියාත්මක කර තැබීමට බොත්තමක් ඔබන්න."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"උපාංගය ඉක්මනින් ක්‍රියා විරහිත වනු ඇත; එය දිගටම ක්‍රියාත්මක කර තැබීමට ඔබන්න."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"කැමරාව"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"මයික්‍රෆෝනය"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ඔබගේ තිරය මත වෙනත් යෙදුම්වලට උඩින් සංදර්ශනය කරමින්"</string>
@@ -2008,22 +2006,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"ඍජු බෙදා ගැනීම නොලැබේ"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"යෙදුම් ලැයිස්තුව"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"මෙම යෙදුමට පටිගත කිරීම් අවසරයක් ලබා දී නොමැති නමුත් මෙම USB උපාංගය හරහා ශ්‍රව්‍ය ග්‍රහණය කර ගත හැකිය."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"මුල් පිටුව"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"ආපසු"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"මෑත යෙදුම්"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"දැනුම්දීම්"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"ඉක්මන් සැකසීම්"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"බල සංවාදය"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"බෙදුම් තිරය ටොගල කරන්න"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"අගුලු තිරය"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"තිර රුව"</string>
 </resources>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index ed4f68c..7123dba 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -292,7 +292,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Povoliť aplikácii &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; prístup k polohe tohto zariadenia?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Aplikácia bude mať prístup k polohe iba vtedy, keď ju budete používať"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Chcete povoliť aplikácii <xliff:g id="APP_NAME">%1$s</xliff:g> prístup k polohe tohto zariadenia po celý čas?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Aplikácia má momentálne prístup k polohe iba vtedy, keď ju budete používať"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendár"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"prístup ku kalendáru"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Povoliť aplikácii &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; prístup ku kalendáru?"</string>
@@ -2029,9 +2030,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Klepnutím skontrolujete, čo je blokované."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Systém"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Nastavenia"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Pohotovostný režim"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Zariadenie Android TV sa čoskoro vypne. Ak ho chcete ponechať zapnuté, stlačte ľubovoľné tlačidlo."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Zariadenie sa čoskoro vypne. Ak ho chcete ponechať zapnuté, stlačte ľubovoľné tlačidlo."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Fotoaparát"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofón"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"sa zobrazuje cez ďalšie aplikácie na obrazovke"</string>
@@ -2074,22 +2072,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Priame zdieľanie nie je k dispozícii"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Zoznam aplikácií"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Tejto aplikácii nebolo udelené povolenie na nahrávanie, ale môže nasnímať zvuk cez toto zariadenie USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Domov"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Späť"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Nedávne aplikácie"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Upozornenia"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Rýchle nastavenia"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dialógové okno napájania"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Prepnúť rozdelenú obrazovku"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Uzamknúť obrazovku"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Snímka obrazovky"</string>
 </resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index dc162a8..852073e 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -292,7 +292,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Dovolite aplikaciji &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; dostop do lokacije te naprave?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Aplikacija bo imela dostop do lokacije samo, ko aplikacijo uporabljate"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Dovolite aplikaciji &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;, da &lt;b&gt;ves čas&lt;/b&gt; dostopa do lokacije te naprave?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Trenutno lahko aplikacija dostopa do lokacije samo, ko aplikacijo uporabljate"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Ta aplikacija bo morda želela imeti stalen dostop do vaše lokacije, tudi ko aplikacije ne boste uporabljali. Omogočite v "<annotation id="link">"nastavitvah"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Koledar"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"dostop do koledarja"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Dovolite aplikaciji &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; dostop do koledarja?"</string>
@@ -2029,9 +2029,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Dotaknite se, da preverite, kaj je blokirano."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistem"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Nastavitve"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Stanje pripravljenosti"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Naprava Android TV se bo kmalu izklopila. Če tega ne želite, pritisnite poljuben gumb."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Naprava se bo kmalu izklopila. Če tega ne želite, pritisnite."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Fotoaparat"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"prekriva druge aplikacije na zaslonu"</string>
@@ -2074,22 +2071,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Neposredna skupna raba ni na voljo"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Seznam aplikacij"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Ta aplikacija sicer nima dovoljenja za snemanje, vendar bi lahko zajemala zvok prek te naprave USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Začetni zaslon"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Nazaj"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Nedavne aplikacije"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Obvestila"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Hitre nastavitve"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Pogovorno okno o porabi energije"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Preklop razdeljenega zaslona"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Zaklenjen zaslon"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Posnetek zaslona"</string>
 </resources>
diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml
index 4973f9f..26b5932 100644
--- a/core/res/res/values-sq/strings.xml
+++ b/core/res/res/values-sq/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Të lejohet që &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; të ketë qasje te vendndodhja e kësaj pajisjeje?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Aplikacioni do të ketë qasje te vendndodhja vetëm kur po e përdor aplikacionin"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Të lejohet që &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; të qaset te vendndodhja e kësaj pajisjeje &lt;b&gt;gjatë të gjithë kohës&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Aplikacioni aktualisht mund të qaset te vendndodhja vetëm kur ti e përdor aplikacionin"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendari"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"qasje te kalendari yt"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Të lejohet që &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; të ketë qasje te kalendari yt?"</string>
@@ -1771,10 +1772,8 @@
     <string name="package_updated_device_owner" msgid="1847154566357862089">"Përditësuar nga administratori"</string>
     <string name="package_deleted_device_owner" msgid="2307122077550236438">"Fshirë nga administratori"</string>
     <string name="confirm_battery_saver" msgid="639106420541753635">"Në rregull"</string>
-    <!-- no translation found for battery_saver_description_with_learn_more (1002571337088673987) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (2307555792915978653) -->
-    <skip />
+    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"Për të rritur kohëzgjatjen e baterisë, \"Kursyesi i baterisë\":\n·Aktivizon \"Temën e errët\"\n·Çaktivizon ose kufizon aktivitetin në sfond, disa efekte vizuale dhe veçori të tjera si “Ok Google”\n\n"<annotation id="url">"Mëso më shumë"</annotation></string>
+    <string name="battery_saver_description" msgid="2307555792915978653">"Për të rritur kohëzgjatjen e baterisë, \"Kursyesi i baterisë\":\n·Aktivizon \"Temën e errët\"\n·Çaktivizon ose kufizon aktivitetin në sfond, disa efekte vizuale dhe veçori të tjera si “Ok Google”"</string>
     <string name="data_saver_description" msgid="6015391409098303235">"Për të ndihmuar në reduktimin e përdorimit të të dhënave, \"Kursyesi i të dhënave\" pengon që disa aplikacione të dërgojnë apo të marrin të dhëna në sfond. Një aplikacion që po përdor aktualisht mund të ketë qasje te të dhënat, por këtë mund ta bëjë më rrallë. Kjo mund të nënkuptojë, për shembull, se imazhet nuk shfaqen kur troket mbi to."</string>
     <string name="data_saver_enable_title" msgid="4674073932722787417">"Të aktivizohet \"Kursyesi i të dhënave\"?"</string>
     <string name="data_saver_enable_button" msgid="7147735965247211818">"Aktivizo"</string>
@@ -1965,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Trokit për të shënuar atë që është bllokuar"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistemi"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Cilësimet"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Në gatishmëri"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Pajisja Android TV së shpejti do të fiket. Shtyp një buton për ta mbajtur të ndezur."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Pajisja së shpejti do të fiket. Shtype për ta mbajtur të ndezur."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofoni"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"po shfaqet mbi aplikacionet e tjera në ekranin tënd"</string>
@@ -2008,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Ndarja e drejtpërdrejtë nuk ofrohet"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Lista e aplikacioneve"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Këtij aplikacioni nuk i është dhënë leje për regjistrim, por mund të regjistrojë audio përmes kësaj pajisjeje USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Ekrani bazë"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Prapa"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Aplikacionet e fundit"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Njoftimet"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Cilësimet e shpejta"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dialogu i energjisë"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Kalo tek ekrani i ndarë"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Ekrani i kyçjes"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Pamja e ekranit"</string>
 </resources>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 48658bb..f314601 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -289,7 +289,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Желите ли да омогућите да &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; приступа локацији овог уређаја?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Апликација ће имати приступ локацији само док користите апликацију"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Желите ли да дозволите да &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; приступа локацији уређаја &lt;b&gt;у било ком тренутку&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Апликација тренутно може да приступа локацији само када користите апликацију"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Ова апликација можда жели да приступа локацији све време, чак и када не користите апликацију. Омогућите у "<annotation id="link">"подешавањима"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"приступи календару"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Желите ли да омогућите да &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; приступа календару?"</string>
@@ -1996,9 +1996,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Додирните да бисте проверили шта је блокирано."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Систем"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Подешавања"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Стање приправности"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV ће се ускоро искључити. Притисните дугме да би остао укључен."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Уређај ће се ускоро искључити. Притисните да би остао укључен."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"приказује се на екрану док користите друге апликације"</string>
@@ -2040,22 +2037,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Директно дељење није доступно"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Листа апликација"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Ова апликација нема дозволу за снимање, али би могла да снима звук помоћу овог USB уређаја."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Почетак"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Назад"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Недавне апликације"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Обавештења"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Брза подешавања"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Дијалог напајања"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Укључите/искључите подељени екран"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Закључани екран"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Снимак екрана"</string>
 </resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 09a2513..d67ffa2 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Vill du ge &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; åtkomst till enhetens plats?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Appen får endast åtkomst till din plats när du använder den"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Vill du tillåta att &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; alltid får åtkomst till platsen för den här &lt;b&gt;enheten&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Appen har för närvarande endast åtkomst till din plats när du använder den"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"få tillgång till din kalender"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Vill du ge &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; åtkomst till din kalender?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Tryck om du vill se vad som blockeras."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"System"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Inställningar"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Viloläge"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV-enheten stängs snart av. Tryck på en knapp för att behålla den på."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Enheten stängs snart av. Tryck för att behålla den på."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"visar över andra appar på mobilen"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Dela direkt är inte tillgängligt"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Applista"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Appen har inte fått inspelningsbehörighet men kan spela in ljud via denna USB-enhet."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Startsida"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Tillbaka"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Senaste apparna"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Aviseringar"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Snabbinställningar"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dialogruta för ström"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Aktivera och inaktivera delad skärm"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Låsskärm"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Skärmdump"</string>
 </resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 483c39f..5713ef1 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Ungependa kuiruhusu &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; itambue mahali kifaa kilipo?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Programu itafikia data ya mahali ulipo unapoitumia tu"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Je, ungependa kuruhusu &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ifikie kifaa cha mahali &lt;b&gt;kila wakati&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Programu sasa inaweza kufikia data ya mahali wakati unapoitumia tu"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Huenda programu hii ikataka kufikia maelezo ya mahali ulipo kila wakati, hata wakati huitumii. Iruhusu katika "<annotation id="link">"mipangilio"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalenda"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ifikie kalenda yako"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Ungependa kuiruhusu &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ifikie kalenda yako?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Gusa ili uangalie kipengee ambacho kimezuiwa."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Mfumo"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Mipangilio"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Hali tuli"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Kifaa cha Android TV kitazima hivi karibuni; bonyeza kitufe ili kisizime."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Kifaa kitazima hivi karibuni; bonyeza ili kisizime."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Maikrofoni"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"inachomoza kwenye programu zingine katika skrini yako"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Huwezi kushiriki moja kwa moja"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Orodha ya programu"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Programu hii haijapewa ruhusa ya kurekodi lakini inaweza kurekodi sauti kupitia kifaa hiki cha USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Mwanzo"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Rudi nyuma"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Programu za Hivi Karibuni"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Arifa"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Mipangilio ya Haraka"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Kidirisha cha Nishati"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Geuza Skrini Iliyogawanywa"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Skrini Iliyofungwa"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Picha ya skrini"</string>
 </resources>
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index 0c4e20e..cae06c3 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; இந்தச் சாதனத்தின் இருப்பிடத்தை அணுகுவதற்கு அனுமதிக்கவா?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"இந்த ஆப்ஸை நீங்கள் உபயோகிக்கும்போது மட்டுமே இருப்பிடத்தை அணுகும்"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ஆப்ஸிற்கு &lt;b&gt;எப்போதும்&lt;/b&gt; இந்தச் சாதனத்தின் இருப்பிட அணுகலை அனுமதிக்கவா?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"நீங்கள் ஆப்ஸை உபயோகிக்கும்போது மட்டுமே அது இருப்பிடத்தை அணுக முடியும்"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"கேலெண்டர்"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"கேலெண்டரை அணுகலாம்"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"கேலெண்டரை அணுகுவதற்கு &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ஆப்ஸை அனுமதிக்கவா?"</string>
@@ -1342,7 +1343,7 @@
     <string name="alert_windows_notification_channel_group_name" msgid="1463953341148606396">"பிற ஆப்ஸின் மேலே காட்டு"</string>
     <string name="alert_windows_notification_channel_name" msgid="3116610965549449803">"<xliff:g id="NAME">%s</xliff:g> பிற ஆப்ஸின் மீது தோன்றுகிறது"</string>
     <string name="alert_windows_notification_title" msgid="3697657294867638947">"<xliff:g id="NAME">%s</xliff:g> பிற ஆப்ஸின் மீது தோன்றுகிறது"</string>
-    <string name="alert_windows_notification_message" msgid="8917232109522912560">"<xliff:g id="NAME">%s</xliff:g> இந்த அம்சத்தைப் பயன்படுத்த வேண்டாம் என நினைத்தால், அமைப்புகளைத் திறந்து அதை முடக்க, தட்டவும்."</string>
+    <string name="alert_windows_notification_message" msgid="8917232109522912560">"<xliff:g id="NAME">%s</xliff:g> இந்த அம்சத்தைப் பயன்படுத்த வேண்டாம் என நினைத்தால் இங்கு தட்டி அமைப்புகளைத் திறந்து இதை முடக்கவும்."</string>
     <string name="alert_windows_notification_turn_off_action" msgid="2902891971380544651">"ஆஃப் செய்"</string>
     <string name="ext_media_checking_notification_title" msgid="4411133692439308924">"<xliff:g id="NAME">%s</xliff:g>ஐச் சரிபார்க்கிறது…"</string>
     <string name="ext_media_checking_notification_message" msgid="410185170877285434">"தற்போதைய உள்ளடக்கத்தை மதிப்பாய்வு செய்கிறது"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"எவற்றையெல்லாம் தடுக்கிறது என்பதைப் பார்க்க, தட்டவும்."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"சிஸ்டம்"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"அமைப்புகள்"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"இயக்க நேரம்"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV விரைவில் ஆஃப் ஆகலாம். இதைத் தொடர்ந்து ஆனில் வைக்க ஒரு பட்டனைத் தட்டவும்."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"இந்தச் சாதனம் விரைவில் ஆஃப் ஆகலாம். இதைத் தொடர்ந்து ஆனில் வைக்கத் தட்டவும்."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"கேமரா"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"மைக்ரோஃபோன்"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"உங்கள் திரையில் உள்ள பிற ஆப்ஸின் மேல் காட்டுகிறது"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"நேரடிப் பகிர்வு இல்லை"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"ஆப்ஸ் பட்டியல்"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"இந்த ஆப்ஸிற்கு ரெக்கார்டு செய்வதற்கான அனுமதி வழங்கப்படவில்லை, எனினும் இந்த USB சாதனம் மூலம் ஆடியோவைப் பதிவுசெய்ய முடியும்."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"முகப்பு"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"பின் செல்"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"சமீபத்திய ஆப்ஸ்"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"அறிவிப்புகள்"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"விரைவு அமைப்புகள்"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"பவர் உரையாடல்"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"திரைப் பிரிப்பை நிலைமாற்று"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"பூட்டுத் திரை"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"ஸ்கிரீன்ஷாட்"</string>
 </resources>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index 1b3df6e..167cc9b 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"ఈ పరికరం యొక్క లొకేషన్‌ను యాక్సెస్ చేయడానికి &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;ను అనుమతించాలా?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"మీరు యాప్‌ను ఉపయోగిస్తున్నప్పుడు మాత్రమే స్థానానికి యాప్ యాక్సెస్ కలిగి ఉంటుంది"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"ఈ పరికరం యొక్క లొకేషన్‌ను &lt;b&gt;అన్ని సమయాలలో&lt;/b&gt; యాక్సెస్ చేయడానికి &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;ను అనుమతించాలా?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"యాప్ ప్రస్తుతం మీరు ఆ యాప్‌ను ఉపయోగిస్తున్నప్పుడు మాత్రమే స్థానాన్ని యాక్సెస్ చేయగలుగుతుంది"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"ఈ యాప్‌నకు మీ లొకేషన్ యాక్సెస్ అన్ని సమయాలలో, అంటే యాప్‌ను ఉపయోగించనప్పుడు కూడా, అవసరం ఉండవచ్చు. అనుమతిని ఇక్కడ ఇవ్వండి: "<annotation id="link">"సెట్టింగ్‌లు"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"క్యాలెండర్"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"మీ క్యాలెండర్‌ను యాక్సెస్ చేయడానికి"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"మీ క్యాలెండర్‌ని యాక్సెస్ చేయడానికి &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;ని అనుమతించాలా?"</string>
@@ -1340,9 +1340,9 @@
     <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="alert_windows_notification_channel_group_name" msgid="1463953341148606396">"ఇతర యాప్‌ల ఎగువన ప్రదర్శన"</string>
-    <string name="alert_windows_notification_channel_name" msgid="3116610965549449803">"<xliff:g id="NAME">%s</xliff:g> ఇతర అనువర్తనాలలో చూపబడుతోంది"</string>
-    <string name="alert_windows_notification_title" msgid="3697657294867638947">"<xliff:g id="NAME">%s</xliff:g> ఇతర అనువర్తనాలలో చూపబడుతోంది"</string>
-    <string name="alert_windows_notification_message" msgid="8917232109522912560">"<xliff:g id="NAME">%s</xliff:g> ఈ లక్షణాన్ని ఉపయోగించకూడదు అని మీరు అనుకుంటే, సెట్టింగ్‌లను తెరవడానికి నొక్కి, దీన్ని ఆఫ్ చేయండి."</string>
+    <string name="alert_windows_notification_channel_name" msgid="3116610965549449803">"<xliff:g id="NAME">%s</xliff:g> ఇతర యాప్‌లలో చూపబడుతోంది"</string>
+    <string name="alert_windows_notification_title" msgid="3697657294867638947">"<xliff:g id="NAME">%s</xliff:g> ఇతర యాప్‌లలో చూపబడుతోంది"</string>
+    <string name="alert_windows_notification_message" msgid="8917232109522912560">"<xliff:g id="NAME">%s</xliff:g> ఈ లక్షణాన్ని ఉపయోగించకూడదు అని మీరు అనుకుంటే, సెట్టింగ్‌లను తెరవడానికి ట్యాప్ చేసి, దీన్ని ఆఫ్ చేయండి."</string>
     <string name="alert_windows_notification_turn_off_action" msgid="2902891971380544651">"ఆఫ్ చేయి"</string>
     <string name="ext_media_checking_notification_title" msgid="4411133692439308924">"<xliff:g id="NAME">%s</xliff:g>ని తనిఖీ చేస్తోంది…"</string>
     <string name="ext_media_checking_notification_message" msgid="410185170877285434">"ప్రస్తుత కంటెంట్ సమీక్షించబడుతోంది"</string>
@@ -1771,10 +1771,8 @@
     <string name="package_updated_device_owner" msgid="1847154566357862089">"మీ నిర్వాహకులు నవీకరించారు"</string>
     <string name="package_deleted_device_owner" msgid="2307122077550236438">"మీ నిర్వాహకులు తొలగించారు"</string>
     <string name="confirm_battery_saver" msgid="639106420541753635">"సరే"</string>
-    <!-- no translation found for battery_saver_description_with_learn_more (1002571337088673987) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (2307555792915978653) -->
-    <skip />
+    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"బ్యాటరీ జీవితకాలాన్ని పెంచడానికి, బ్యాటరీ సేవర్:\n ముదురు రంగు·థీమ్‌ను ఆన్ చేస్తుంది\n·నేపథ్య కార్యకలాపం, కొన్ని విజువల్ ఎఫెక్ట్స్ మరియు “Hey Google” వంటి ఇతర ఫీచర్‌లను ఆపివేస్తుంది లేదా పరిమితం చేస్తుంది\n\n"<annotation id="url">"మరింత తెలుసుకోండి"</annotation></string>
+    <string name="battery_saver_description" msgid="2307555792915978653">"బ్యాటరీ జీవితకాలాన్ని పెంచడానికి, బ్యాటరీ సేవర్:\n ముదురు రంగు·థీమ్‌ను ఆన్ చేస్తుంది\n·నేపథ్య కార్యకలాపం, కొన్ని విజువల్ ఎఫెక్ట్స్ మరియు “Hey Google” వంటి ఇతర ఫీచర్‌లను ఆపివేస్తుంది లేదా పరిమితం చేస్తుంది"</string>
     <string name="data_saver_description" msgid="6015391409098303235">"డేటా వినియోగాన్ని తగ్గించడంలో డేటా సేవర్ సహాయకరంగా ఉంటుంది. బ్యాక్‌గ్రౌండ్‌లో కొన్ని యాప్‌లు డేటాను పంపకుండా లేదా స్వీకరించకుండా నిరోధిస్తుంది. మీరు ప్రస్తుతం ఉపయోగిస్తోన్న యాప్‌ డేటాను యాక్సెస్ చేయగలదు. కానీ అలా అరుదుగా చేయవచ్చు. ఉదాహరణకు, మీరు చిత్రాలను నొక్కే వరకు అవి ప్రదర్శించబడవు."</string>
     <string name="data_saver_enable_title" msgid="4674073932722787417">"డేటా సేవర్‌ను ఆన్ చేయాలా?"</string>
     <string name="data_saver_enable_button" msgid="7147735965247211818">"ఆన్ చేయి"</string>
@@ -1890,7 +1888,7 @@
     <string name="app_category_image" msgid="4867854544519846048">"ఫోటోలు &amp; చిత్రాలు"</string>
     <string name="app_category_social" msgid="5842783057834965912">"సామాజికం &amp; కమ్యూనికేషన్"</string>
     <string name="app_category_news" msgid="7496506240743986873">"వార్తలు &amp; వార్తాపత్రికలు"</string>
-    <string name="app_category_maps" msgid="5878491404538024367">"మ్యాప్స్ &amp; నావిగేషన్"</string>
+    <string name="app_category_maps" msgid="5878491404538024367">"Maps &amp; నావిగేషన్"</string>
     <string name="app_category_productivity" msgid="3742083261781538852">"ఉత్పాదకత"</string>
     <string name="device_storage_monitor_notification_channel" msgid="3295871267414816228">"పరికర నిల్వ"</string>
     <string name="adb_debugging_notification_channel_tv" msgid="5537766997350092316">"USB డీబగ్గింగ్"</string>
@@ -1965,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"బ్లాక్ చేయబడిన దాన్ని తనిఖీ చేయడానికి నొక్కండి."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"సిస్టమ్"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"సెట్టింగ్‌లు"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"స్టాండ్‌బై"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV పరికరం త్వరలో ఆపివేయబడుతుంది; దాన్ని ఆన్‌లో ఉంచడానికి బటన్‌ను నొక్కండి."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"పరికరం త్వరలో ఆపివేయబడుతుంది; దీన్ని ఆన్‌లో ఉంచడానికి నొక్కండి."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"కెమెరా"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"మైక్రోఫోన్"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"మీ స్క్రీన్‌పై ఇతర యాప్‌ల ద్వారా ప్రదర్శించబడుతోంది"</string>
@@ -2008,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"డైరెక్ట్ షేర్ అందుబాటులో లేదు"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"యాప్‌ల జాబితా"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"ఈ యాప్‌కు రికార్డ్ చేసే అనుమతి మంజూరు కాలేదు, అయినా ఈ USB పరికరం ద్వారా ఆడియోను క్యాప్చర్ చేయగలదు."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"హోమ్"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"వెనుకకు"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"ఇటీవలి యాప్‌లు"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"నోటిఫికేషన్‌లు"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"శీఘ్ర సెట్టింగ్‌లు"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"పవర్ డైలాగ్‌ను తెరువు"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"స్క్రీన్ విభజనను టోగుల్ చేయి"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"స్క్రీన్‌ను లాక్ చేయి"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"స్క్రీన్‌షాట్"</string>
 </resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index ff1ea21..ab35008 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"อนุญาตให้&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;เข้าถึงตำแหน่งของอุปกรณ์นี้ไหม"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"แอปจะมีสิทธิ์เข้าถึงตำแหน่งในขณะที่คุณใช้แอปเท่านั้น"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"อนุญาตให้ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; เข้าถึงตำแหน่งของอุปกรณ์นี้&lt;b&gt;ตลอดเวลา&lt;/b&gt;ไหม"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"ปัจจุบันแอปมีสิทธิ์เข้าถึงตำแหน่งในขณะที่คุณใช้แอปเท่านั้น"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"ปฏิทิน"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"เข้าถึงปฏิทิน"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"อนุญาตให้ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; เข้าถึงปฏิทินไหม"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"แตะเพื่อดูรายการที่ถูกบล็อก"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"ระบบ"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"การตั้งค่า"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"สแตนด์บาย"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"อุปกรณ์ Android TV จะปิดเครื่องในอีกไม่ช้า กดปุ่มเพื่อเปิดอุปกรณ์ต่อไป"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"อุปกรณ์จะปิดเครื่องในอีกไม่ช้า กดเพื่อเปิดอุปกรณ์ต่อไป"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"กล้อง"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ไมโครโฟน"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"แสดงทับแอปอื่นๆ บนหน้าจอ"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"การแชร์โดยตรงไม่พร้อมใช้งาน"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"รายชื่อแอป"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"แอปนี้ไม่ได้รับอนุญาตให้บันทึกเสียงแต่จะบันทึกเสียงผ่านอุปกรณ์ USB นี้ได้"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"หน้าแรก"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"กลับ"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"แอปล่าสุด"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"การแจ้งเตือน"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"การตั้งค่าด่วน"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"กล่องโต้ตอบพลังงาน"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"เปิด/ปิดการแบ่งหน้าจอ"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"หน้าจอล็อก"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"ภาพหน้าจอ"</string>
 </resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 79c040f..0dccb4b 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Payagan ang &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; na i-access ang lokasyon ng device na ito?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Magkakaroon lang ang app ng access sa lokasyon habang ginagamit mo ang app"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Payagan ang &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; na &lt;b&gt;palaging&lt;/b&gt; i-access ang lokasyon ng device na ito?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Kasalukuyang maa-access ng app ang lokasyon habang ginagamit mo lang ang app"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendaryo"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"i-access ang iyong kalendaryo"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Payagan ang &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; na i-access ang iyong kalendaryo?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"I-tap para tingnan kung ano ang naka-block."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"System"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Mga Setting"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Standby"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Mag-o-off na ang Android TV device; pumindot ng button para panatilihin itong naka-on."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Mag-o-off na ang device; pumindot para panatilihin itong naka-on."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Camera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikropono"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ipinapakita sa ibabaw ng ibang app sa iyong screen"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Hindi available ang direktang pagbabahagi"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Listahan ng mga app"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Hindi nabigyan ng pahintulot ang app na ito para mag-record pero nakakapag-capture ito ng audio sa pamamagitan ng USB device na ito."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Home"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Bumalik"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Mga Kamakailang Apps"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Mga Notification"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Mga Mabilisang Setting"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Dialog ng Power"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"I-toggle ang Split Screen"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Lock Screen"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Screenshot"</string>
 </resources>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index d6841f0..0a0e64d 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; uygulamasının bu cihazın konumuna erişmesine izin verilsin mi?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Bu uygulama konum bilgisine yalnızca kullanıldığı sırada erişebilecektir"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; uygulamasının bu cihazın konumuna &lt;b&gt;her zaman&lt;/b&gt; erişmesine izin verilsin mi?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Uygulama şu anda yalnızca siz kullanırken konuma erişebilir"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Takvim"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"takviminize erişme"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; uygulamasının takviminize erişmesine izin verilsin mi?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Nelerin engellendiğini kontrol etmek için dokunun."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Sistem"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Ayarlar"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Beklemeye alınıyor"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV cihazı kısa süre içinde kapanacak; açık tutmak için bir düğmeye basın."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Cihaz kısa süre içinde kapanacak; açık tutmak için düğmeye basın."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ekranınızdaki diğer uygulamaların üzerinde görüntüleniyor"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Doğrudan paylaşım mevcut değil"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Uygulama listesi"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Bu uygulamaya ses kaydetme izni verilmedi ancak bu USB cihazı üzerinden sesleri yakalayabilir."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Ana Ekran"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Geri"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Son Uygulamalar"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Bildirimler"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Hızlı Ayarlar"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Güç İletişim Kutusu"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Bölünmüş Ekranı aç/kapat"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Kilit Ekranı"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Ekran görüntüsü"</string>
 </resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 3412eb2..7cc5857 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -292,7 +292,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Надати додатку &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; доступ до геоданих пристрою?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Додаток матиме доступ до геоданих, лише коли ви ним користуєтеся"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Дозволити додатку &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; &lt;b&gt;завжди&lt;/b&gt; отримувати доступ до геоданих цього пристрою?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Зараз додаток має доступ до геоданих, лише коли ви ним користуєтеся"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"отримувати доступ до календаря"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Надати додатку &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; доступ до календаря?"</string>
@@ -2029,9 +2030,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Торкніться, щоб перевірити, що заблоковано."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Система"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Налаштування"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Режим очікування"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Незабаром пристрій Android TV буде вимкнено. Натисніть кнопку, щоб цього не сталося."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Незабаром пристрій буде вимкнено. Натисніть, щоб цього не сталося."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Мікрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"показ поверх інших додатків на екрані"</string>
@@ -2074,22 +2072,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Прямий обмін даними недоступний"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Список додатків"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Цей додаток не має дозволу на запис, але він може фіксувати звук через цей USB-пристрій."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"На головний екран"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Назад"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Нещодавні додатки"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Сповіщення"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Швидкі налаштування"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Відкрити вікно"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Розділити екран"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Заблокувати екран"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Знімок екрана"</string>
 </resources>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index 003fd54..51895ae 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"‏&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; کو اس آلہ کے مقام تک رسائی کی اجازت دیں؟"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"جب آپ ایپ استعمال کریں گے تبھی ایپ کو مقام تک رسائی حاصل ہوگی"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"‏‎&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;‎ کو اس آلہ کے مقام تک ‎&lt;b&gt;‎ہر وقت‎&lt;/b&gt;‎ رسائی حاصل کرنے کی اجازت دیں؟"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"ایپ کو فی الحال صرف اسی صورت میں مقام تک رسائی حاصل ہو سکتی ہے جب ایپ آپ کے زير استعمال ہو"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"کیلنڈر"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"اپنے کیلنڈر تک رسائی حاصل کریں"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"‏&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; کو آپ کے کیلنڈر تک رسائی کی اجازت دیں؟"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"مسدود کی گئی چیزوں کو چیک کرنے کے لیے تھپتھپائیں۔"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"سسٹم"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"ترتیبات"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"اسٹینڈ بائی"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"‏Android TV آلہ جلد ہی بند ہوجائے گا آن رکھنے کے ليے بٹن دبائیں۔"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"آلہ جلد ہی بند ہوجائے گا اسے آن رکھنے کے ليے دبائیں۔"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"کیمرا"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"مائیکروفون"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"آپ کی اسکرین پر دیگر ایپس پر دکھایا جا رہا ہے"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"بلاواسطہ اشتراک دستیاب نہیں ہے"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"ایپس کی فہرست"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"‏اس ایپ کو ریکارڈ کرنے کی اجازت عطا نہیں کی گئی ہے مگر اس USB آلہ کے ذریعے آڈیو کیپچر کر سکتی ہے۔"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"گھر"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"پیچھے"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"حالیہ ایپس"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"اطلاعات"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"فوری ترتیبات"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"پاور ڈائیلاگ"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"اسپلٹ اسکرین ٹوگل کریں"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"مقفل اسکرین"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"اسکرین شاٹ"</string>
 </resources>
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index 83e99b9..5640c4d 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; uchun bu qurilmaning joylashuvi haqidagi axborotdan foydalanish ruxsati berilsinmi?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Bu ilovadan foydalanilayotdangina u joylashuv axborotidan foydalana oladi"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; uchun bu qurilmaning joylashuvi haqidagi axborotdan &lt;b&gt;doim&lt;/b&gt; foydalanish ruxsati berilsinmi?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Ilova hozirda joylashuv axborotidan faqat ilova ishlatilayotgandagina foydalana oladi"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Bu ilova ishlamaganda ham joylashuvingiz axborotidan har doim foydalanmoqchi. Bunga "<annotation id="link">"sozlamalar"</annotation>" orqali ruxsat bering."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Taqvim"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"taqvimingizga kirish"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; uchun taqvimingizga ruxsat berilsinmi?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Nimalar bloklanganini tekshirish uchun bosing"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Tizim"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Sozlamalar"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Kutib turing"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV qurilmasi oʻchish arafasida, yoniq qolishi uchun istalgan tugmani bosing."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Qurilma oʻchish arafasida, yoniq qolishi uchun istalgan tugmani bosing"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ekranda boshqa ilovalar ustidan ochiladi"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Bevosita ulashuv ishlamaydi"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Ilovalar roʻyxati"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Bu ilovaga yozib olish ruxsati berilmagan, lekin shu USB orqali ovozlarni yozib olishi mumkin."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Bosh sahifa"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Orqaga"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Yaqinda ishlatilgan ilovalar"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Bildirishnomalar"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Tezkor sozlamalar"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Quvvat muloqot oynasi"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Ekranni ikkiga ajratish tugmasi"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Ekran qulfi"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Skrinshot"</string>
 </resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 7b17de7..9bf7729 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Cho phép &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; truy cập vào vị trí của thiết bị này?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Ứng dụng này sẽ chỉ có quyền truy cập vào vị trí khi bạn đang sử dụng ứng dụng này"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Bạn muốn cho phép &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; truy cập vào vị trí của thiết bị này &lt;b&gt;trong mọi trường hợp&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Hiện tại, ứng dụng này chỉ có thể truy cập vào vị trí trong khi bạn dùng"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Lịch"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"truy cập lịch của bạn"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Cho phép &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; truy cập vào lịch của bạn?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Nhấn để xem những thông báo bị chặn."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Hệ thống"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Cài đặt"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Chế độ chờ"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Thiết bị Android TV sẽ sớm tắt. Hãy nhấn vào một nút để thiết bị vẫn bật."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Thiết bị sẽ sớm tắt. Hãy nhấn vào một nút để thiết bị vẫn bật."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Máy ảnh"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Micrô"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"hiển thị qua các ứng dụng khác trên màn hình của bạn"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Không thể chia sẻ trực tiếp"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Danh sách ứng dụng"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Ứng dụng này chưa được cấp quyền ghi âm nhưng vẫn có thể ghi âm thông qua thiết bị USB này."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Màn hình chính"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Quay lại"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Ứng dụng gần đây"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Thông báo"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Cài đặt nhanh"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Hộp thoại thao tác với nguồn"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Bật/tắt chế độ chia đôi màn hình"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Khóa màn hình"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Chụp ảnh màn hình"</string>
 </resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index e29898f..7da1a07 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"要允许“<xliff:g id="APP_NAME">%1$s</xliff:g>”获取此设备的位置信息吗?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"只有当您使用该应用时,该应用才有权访问位置信息"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"要&lt;b&gt;一律允许&lt;/b&gt;允许&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;访问此设备的位置信息吗?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"目前只有当您使用该应用时,该应用才能访问位置信息"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"日历"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"访问您的日历"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"允许&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt;访问您的日历吗?"</string>
@@ -1771,10 +1772,8 @@
     <string name="package_updated_device_owner" msgid="1847154566357862089">"已由您的管理员更新"</string>
     <string name="package_deleted_device_owner" msgid="2307122077550236438">"已由您的管理员删除"</string>
     <string name="confirm_battery_saver" msgid="639106420541753635">"确定"</string>
-    <!-- no translation found for battery_saver_description_with_learn_more (1002571337088673987) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (2307555792915978653) -->
-    <skip />
+    <string name="battery_saver_description_with_learn_more" msgid="1002571337088673987">"为了延长电池续航时间,省电模式会执行以下操作:\n开启深色主题\n关闭或限制后台活动、部分视觉效果和其他功能,例如“Ok Google”\n\n"<annotation id="url">"了解详情"</annotation></string>
+    <string name="battery_saver_description" msgid="2307555792915978653">"为了延长电池续航时间,省电模式会执行以下操作:\n开启深色主题\n关闭或限制后台活动、部分视觉效果和其他功能,例如“Ok Google”"</string>
     <string name="data_saver_description" msgid="6015391409098303235">"为了减少流量消耗,流量节省程序会阻止某些应用在后台收发数据。您当前使用的应用可以收发数据,但频率可能会降低。举例而言,这可能意味着图片只有在您点按之后才会显示。"</string>
     <string name="data_saver_enable_title" msgid="4674073932722787417">"要开启流量节省程序吗?"</string>
     <string name="data_saver_enable_button" msgid="7147735965247211818">"开启"</string>
@@ -1965,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"点按即可查看屏蔽内容。"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"系统"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"设置"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"待机"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV 设备即将关闭;按一下相应的按钮即可让设备保持开启状态。"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"设备即将关闭;按一下即可让设备保持开启状态。"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"相机"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"麦克风"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"显示在屏幕上其他应用的上层"</string>
@@ -2008,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"无法使用直接分享功能"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"应用列表"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"此应用未获得录音权限,但能通过此 USB 设备录制音频。"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"主屏幕"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"返回"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"最近用过的应用"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"通知"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"快捷设置"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"电源对话框"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"开启/关闭分屏"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"锁定屏幕"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"屏幕截图"</string>
 </resources>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index 40f0c94..0640953 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」&lt;b&gt;&lt;/b&gt;存取此裝置的位置資訊嗎?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"只有在您使用此應用程式時,應用程式才能存取位置資訊"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"要允許&lt;b&gt;「<xliff:g id="APP_NAME">%1$s</xliff:g>」&lt;/b&gt;&lt;b&gt;長期&lt;/b&gt;存取此裝置的位置資訊嗎?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"只有在您使用此應用程式時,應用程式才能存取位置資訊"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"日曆"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"存取您的日曆"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」&lt;b&gt;&lt;/b&gt;存取您的日曆嗎?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"輕按即可查看封鎖內容。"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"系統"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"設定"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"待機"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV 裝置即將關閉,按下按鈕即可保持開啟。"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"裝置即將關閉,輕按即可保持開啟。"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"相機"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"麥克風"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"顯示在畫面上的其他應用程式上層"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"無法直接分享"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"應用程式清單"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"此應用程式尚未獲授予錄音權限,但可透過此 USB 裝置記錄音訊。"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"主頁"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"返回"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"最近使用的應用程式"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"通知"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"快速設定"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"電源對話框"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"切換分割螢幕"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"將畫面上鎖"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"螢幕截圖"</string>
 </resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 2fb155e..0263426 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -286,7 +286,8 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"要允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」存取這個裝置的位置資訊嗎?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"該應用程式只有在你使用時,才能存取位置資訊"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"要&lt;b&gt;一律允許&lt;/b&gt;「<xliff:g id="APP_NAME">%1$s</xliff:g>」存取這個裝置的位置資訊嗎?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"目前應用程式只有在你使用時,才能存取位置資訊"</string>
+    <!-- no translation found for permgroupbackgroundrequestdetail_location (6969122401786527350) -->
+    <skip />
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"日曆"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"存取你的日曆"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"要允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」存取你的日曆嗎?"</string>
@@ -1963,9 +1964,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"輕觸即可查看遭封鎖的項目。"</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"系統"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"設定"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"待機"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Android TV 裝置即將關閉。如要讓裝置保持開啟狀態,請按下任一按鈕。"</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"裝置即將關閉。輕觸螢幕或按下按鈕即可讓裝置保持開啟狀態。"</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"相機"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"麥克風"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"顯示在畫面上的其他應用程式上層"</string>
@@ -2006,22 +2004,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"無法使用直接分享功能"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"應用程式清單"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"這個應用程式未取得錄製內容的權限,但可以透過這部 USB 裝置錄製音訊。"</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"主螢幕"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"返回"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"最近使用的應用程式"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"通知"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"快速設定"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"開啟電源對話方塊"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"切換分割畫面模式"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"螢幕鎖定"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"擷取螢幕畫面"</string>
 </resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 2ecc835..bc02215 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -286,7 +286,7 @@
     <string name="permgrouprequest_location" msgid="3788275734953323491">"Vumela i-&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ukuthi ingene kundawo yale divayisi?"</string>
     <string name="permgrouprequestdetail_location" msgid="1347189607421252902">"Uhlelo lokusebenza luzoba nokufinyelela kuphela kundawo ngenkathi usebenzisa uhlelo lokusebenza"</string>
     <string name="permgroupbackgroundrequest_location" msgid="5039063878675613235">"Vumela i-&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ukuze ifinyelele indawo yale divayisi &lt;b&gt;ngaso sonke isikhathi&lt;/b&gt;?"</string>
-    <string name="permgroupbackgroundrequestdetail_location" msgid="4597006851453417387">"Uhlelo lokusebenza manje lungafinyelela kundawo kuphela ngenkathi usebenzisa uhlelo lokusebenza"</string>
+    <string name="permgroupbackgroundrequestdetail_location" msgid="6969122401786527350">"Lolu hlelo lokusebenza lungafuna ukufinyelela indawo yakho ngaso sonke isikhathi, ngisho noma ungasebenzisi uhlelo lokusebenza. Vumela kokuthi "<annotation id="link">"izilungiselelo"</annotation>"."</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Ikhalenda"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"finyelela kukhalenda yakho"</string>
     <string name="permgrouprequest_calendar" msgid="289900767793189421">"Vumela i-&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ukuthi ifinyelele kukhalenda yakho?"</string>
@@ -1963,9 +1963,6 @@
     <string name="zen_upgrade_notification_content" msgid="1794994264692424562">"Thepha ukuze uhlole ukuthi yini evinjelwe."</string>
     <string name="notification_app_name_system" msgid="4205032194610042794">"Isistimu"</string>
     <string name="notification_app_name_settings" msgid="7751445616365753381">"Izilungiselelo"</string>
-    <string name="standby_warning_title" msgid="9221585425153642453">"Ilindile"</string>
-    <string name="standby_warning_message" product="tv" msgid="6373301881876406323">"Idivayisi ye-Android TV maduze izovalwa, cindezela inkinobho ukuze uyigcine ivuliwe."</string>
-    <string name="standby_warning_message" product="default" msgid="5222741828239073484">"Idivayisi maduze izovalwa, cindezela ukuze uyigcine ivuliwe."</string>
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Ikhamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Imakrofoni"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"iboniswa ngaphezulu kwezinye izinhlelo zokusebenza kusikrini sakho"</string>
@@ -2006,22 +2003,13 @@
     <string name="chooser_no_direct_share_targets" msgid="997970693708458895">"Ukwabelana okuqondile akutholakali"</string>
     <string name="chooser_all_apps_button_label" msgid="3631524352936289457">"Uhlu lwezinhlelo zokusebenza"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="5701272284724577469">"Lolu hlelo lokusebenza alunikeziwe imvume yokurekhoda kodwa lungathwebula umsindo ngale divayisi ye-USB."</string>
-    <!-- no translation found for accessibility_system_action_home_label (6089400419441597916) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_back_label (8986628898117178971) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_recents_label (7607601657790855723) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_notifications_label (1578681904050072545) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_quick_settings_label (3885565587471448947) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_power_dialog_label (2299530700682199873) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_toggle_split_screen_label (2853334443686935668) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_lock_screen_label (2377933717780192594) -->
-    <skip />
-    <!-- no translation found for accessibility_system_action_screenshot_label (1933564892301816480) -->
-    <skip />
+    <string name="accessibility_system_action_home_label" msgid="6089400419441597916">"Ikhaya"</string>
+    <string name="accessibility_system_action_back_label" msgid="8986628898117178971">"Emuva"</string>
+    <string name="accessibility_system_action_recents_label" msgid="7607601657790855723">"Izinhlelo zokusebenza zakamuva"</string>
+    <string name="accessibility_system_action_notifications_label" msgid="1578681904050072545">"Izaziso"</string>
+    <string name="accessibility_system_action_quick_settings_label" msgid="3885565587471448947">"Izilungiselelo ezisheshayo"</string>
+    <string name="accessibility_system_action_power_dialog_label" msgid="2299530700682199873">"Ibhokisi lamandla"</string>
+    <string name="accessibility_system_action_toggle_split_screen_label" msgid="2853334443686935668">"Guqula ukuhlukanisa isikrini"</string>
+    <string name="accessibility_system_action_lock_screen_label" msgid="2377933717780192594">"Khiya isikrini"</string>
+    <string name="accessibility_system_action_screenshot_label" msgid="1933564892301816480">"Isithombe-skrini"</string>
 </resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 42e62d7..0f650e3 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -704,96 +704,57 @@
     <string name="permgrouplab_contacts">Contacts</string>
     <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgroupdesc_contacts">access your contacts</string>
-    <!-- Message shown to the user when the apps requests permission from this group. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgrouprequest_contacts">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to access your contacts?</string>
 
     <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgrouplab_location">Location</string>
     <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgroupdesc_location">access this device\'s location</string>
-    <!-- Message shown to the user when the apps requests permission from this group. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgrouprequest_location">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to access this device\'s location?</string>
-    <!-- Subtitle of the message shown to the user when the apps requests permission to use the location only while app is in foreground [CHAR LIMIT=150]-->
-    <string name="permgrouprequestdetail_location">The app will only have access to the location while you\u2019re using the app</string>
-    <!-- Message shown to the user when the apps requests permission to use the location while app is in foreground and background. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgroupbackgroundrequest_location">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to access this device\u2019s location &lt;b>all the time&lt;/b>?</string>
-    <!-- Subtitle of the message shown to the user when the apps requests permission to use the location while app is in foreground and background. Try to keep the link annotation at the end of the string [CHAR LIMIT=150] -->
-    <string name="permgroupbackgroundrequestdetail_location">This app may want to access your location all the time, even when you\u2019re not using the app. Allow in <annotation id="link">settings</annotation>.</string>
 
     <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgrouplab_calendar">Calendar</string>
     <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgroupdesc_calendar">access your calendar</string>
-    <!-- Message shown to the user when the apps requests permission from this group. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgrouprequest_calendar">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to access your calendar?</string>
 
     <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgrouplab_sms">SMS</string>
     <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgroupdesc_sms">send and view SMS messages</string>
-    <!-- Message shown to the user when the apps requests permission from this group. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgrouprequest_sms">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to send and view SMS messages?</string>
 
     <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgrouplab_storage">Storage</string>
     <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgroupdesc_storage">access photos, media, and files on your device</string>
-    <!-- Message shown to the user when the apps requests permission from this group. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgrouprequest_storage">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to access photos, media, and files on your device?</string>
 
     <!-- Title of a category of application permissioncds, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgrouplab_microphone">Microphone</string>
     <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgroupdesc_microphone">record audio</string>
-    <!-- Message shown to the user when the apps requests permission from this group. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgrouprequest_microphone">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to record audio?</string>
 
     <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=40]-->
     <string name="permgrouplab_activityRecognition">Physical activity</string>
     <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=40]-->
     <string name="permgroupdesc_activityRecognition">access your physical activity</string>
-    <!-- Message shown to the user when the apps requests permission from this group. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgrouprequest_activityRecognition">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to access your physical activity?</string>
 
     <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgrouplab_camera">Camera</string>
     <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgroupdesc_camera">take pictures and record video</string>
-    <!-- Message shown to the user when the apps requests permission from this group. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgrouprequest_camera">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to take pictures and record video?</string>
 
     <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgrouplab_calllog">Call logs</string>
     <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgroupdesc_calllog">read and write phone call log</string>
-    <!-- Message shown to the user when the apps requests permission from this group. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgrouprequest_calllog">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to access your phone call logs?</string>
 
     <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgrouplab_phone">Phone</string>
     <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgroupdesc_phone">make and manage phone calls</string>
     <!-- Message shown to the user when the apps requests permission from this group. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgrouprequest_phone">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to make and manage phone calls?</string>
 
     <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgrouplab_sensors">Body sensors</string>
     <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permgroupdesc_sensors">access sensor data about your vital signs</string>
-    <!-- Message shown to the user when the apps requests permission from this group. If ever possible this should stay below 80 characters (assuming the parameters takes 20 characters). Don't abbreviate until the message reaches 120 characters though. [CHAR LIMIT=120] -->
-    <string name="permgrouprequest_sensors">Allow
-        &lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to access sensor data about your vital signs?</string>
 
     <!-- Title for the capability of an accessibility service to retrieve window content. -->
     <string name="capability_title_canRetrieveWindowContent">Retrieve window content</string>
@@ -3064,9 +3025,9 @@
     <string name="ok">OK</string>
     <!-- Preference framework strings. -->
     <string name="cancel">Cancel</string>
-    <!-- Preference framework strings. -->
+    <!-- Preference framework strings. {@deprecated Do not use. Incorrectly matches android.R.string.ok rather than "yes".} -->
     <string name="yes">OK</string>
-    <!-- Preference framework strings. -->
+    <!-- Preference framework strings. {@deprecated Do not use. Incorrectly matches android.R.string.cancel rather than "no".} -->
     <string name="no">Cancel</string>
     <!-- This is the generic "attention" string to be used in attention dialogs.  Typically
          combined with setIconAttribute(android.R.attr.alertDialogIcon)
@@ -5359,4 +5320,7 @@
     <string name="accessibility_system_action_lock_screen_label">Lock Screen</string>
     <!-- Label for taking screenshot action [CHAR LIMIT=NONE] -->
     <string name="accessibility_system_action_screenshot_label">Screenshot</string>
+
+    <!-- Accessibility description of caption view -->
+    <string name="accessibility_freeform_caption"><xliff:g id="app_name">%1$s</xliff:g> app in Pop-up window.</string>
 </resources>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index e56bbf6..23402c1 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -3763,4 +3763,6 @@
   <java-symbol type="string" name="accessibility_system_action_recents_label" />
   <java-symbol type="string" name="accessibility_system_action_screenshot_label" />
   <java-symbol type="string" name="accessibility_system_action_toggle_split_screen_label" />
+
+  <java-symbol type="string" name="accessibility_freeform_caption" />
 </resources>
diff --git a/core/tests/coretests/src/android/hardware/display/BrightnessConfigurationTest.java b/core/tests/coretests/src/android/hardware/display/BrightnessConfigurationTest.java
index 823fca5..85aa118 100644
--- a/core/tests/coretests/src/android/hardware/display/BrightnessConfigurationTest.java
+++ b/core/tests/coretests/src/android/hardware/display/BrightnessConfigurationTest.java
@@ -23,13 +23,23 @@
 
 import android.os.Parcel;
 import android.util.Pair;
+import android.util.Xml;
 
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
 
+import com.android.internal.util.FastXmlSerializer;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlSerializer;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 
 @SmallTest
@@ -104,11 +114,15 @@
         });
     }
 
-
     @Test
     public void testParceledConfigIsEquivalent() {
         BrightnessConfiguration.Builder builder =
                 new BrightnessConfiguration.Builder(LUX_LEVELS, NITS_LEVELS);
+        builder.setShouldCollectColorSamples(true);
+        builder.addCorrectionByCategory(3,
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
+        builder.addCorrectionByPackageName("a.package.name",
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
         BrightnessConfiguration config = builder.build();
         Parcel p = Parcel.obtain();
         p.writeParcelable(config, 0 /*flags*/);
@@ -119,12 +133,49 @@
     }
 
     @Test
+    public void testWriteReadXml() throws IOException, XmlPullParserException {
+        BrightnessConfiguration.Builder builder =
+                new BrightnessConfiguration.Builder(LUX_LEVELS, NITS_LEVELS);
+        builder.setShouldCollectColorSamples(true);
+        builder.addCorrectionByCategory(3,
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
+        builder.addCorrectionByPackageName("a.package.name",
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
+        BrightnessConfiguration config = builder.build();
+
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        XmlSerializer out = new FastXmlSerializer();
+        out.setOutput(baos, StandardCharsets.UTF_8.name());
+        out.startDocument(null, true);
+        config.saveToXml(out);
+        out.endDocument();
+        baos.flush();
+
+        ByteArrayInputStream input = new ByteArrayInputStream(baos.toByteArray());
+        XmlPullParser parser = Xml.newPullParser();
+        parser.setInput(input, StandardCharsets.UTF_8.name());
+        BrightnessConfiguration loadedConfig = BrightnessConfiguration.loadFromXml(parser);
+
+        assertEquals(config, loadedConfig);
+    }
+
+    @Test
     public void testEquals() {
         BrightnessConfiguration.Builder builder =
                 new BrightnessConfiguration.Builder(LUX_LEVELS, NITS_LEVELS);
+        builder.setShouldCollectColorSamples(true);
+        builder.addCorrectionByCategory(3,
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
+        builder.addCorrectionByPackageName("a.package.name",
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
         BrightnessConfiguration baseConfig = builder.build();
 
         builder = new BrightnessConfiguration.Builder(LUX_LEVELS, NITS_LEVELS);
+        builder.setShouldCollectColorSamples(true);
+        builder.addCorrectionByCategory(3,
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
+        builder.addCorrectionByPackageName("a.package.name",
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
         BrightnessConfiguration identicalConfig = builder.build();
         assertEquals(baseConfig, identicalConfig);
         assertEquals("hashCodes must be equal for identical configs",
@@ -133,14 +184,37 @@
         float[] lux = Arrays.copyOf(LUX_LEVELS, LUX_LEVELS.length);
         lux[lux.length - 1] = lux[lux.length - 1] * 2;
         builder = new BrightnessConfiguration.Builder(lux, NITS_LEVELS);
+        builder.setShouldCollectColorSamples(true);
+        builder.addCorrectionByCategory(3,
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
+        builder.addCorrectionByPackageName("a.package.name",
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
         BrightnessConfiguration luxDifferConfig = builder.build();
         assertNotEquals(baseConfig, luxDifferConfig);
 
         float[] nits = Arrays.copyOf(NITS_LEVELS, NITS_LEVELS.length);
         nits[nits.length - 1] = nits[nits.length - 1] * 2;
         builder = new BrightnessConfiguration.Builder(LUX_LEVELS, nits);
+        builder.setShouldCollectColorSamples(true);
+        builder.addCorrectionByCategory(3,
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
+        builder.addCorrectionByPackageName("a.package.name",
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
         BrightnessConfiguration nitsDifferConfig = builder.build();
         assertNotEquals(baseConfig, nitsDifferConfig);
+
+        builder = new BrightnessConfiguration.Builder(LUX_LEVELS, NITS_LEVELS);
+        builder.addCorrectionByCategory(3,
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
+        builder.addCorrectionByPackageName("a.package.name",
+                BrightnessCorrection.createScaleAndTranslateLog(1.0f, 2.0f));
+        BrightnessConfiguration colorCollectionDiffers = builder.build();
+        assertNotEquals(baseConfig, colorCollectionDiffers);
+
+        builder = new BrightnessConfiguration.Builder(LUX_LEVELS, NITS_LEVELS);
+        builder.setShouldCollectColorSamples(true);
+        BrightnessConfiguration correctionsDiffer = builder.build();
+        assertNotEquals(baseConfig, correctionsDiffer);
     }
 
     private static void assertArrayEquals(float[] expected, float[] actual, String name) {
diff --git a/core/tests/screenshothelpertests/src/com/android/internal/util/ScreenshotHelperTest.java b/core/tests/screenshothelpertests/src/com/android/internal/util/ScreenshotHelperTest.java
index 8483645..e16d1ca 100644
--- a/core/tests/screenshothelpertests/src/com/android/internal/util/ScreenshotHelperTest.java
+++ b/core/tests/screenshothelpertests/src/com/android/internal/util/ScreenshotHelperTest.java
@@ -19,7 +19,7 @@
 import static android.view.WindowManager.TAKE_SCREENSHOT_FULLSCREEN;
 import static android.view.WindowManager.TAKE_SCREENSHOT_SELECTED_REGION;
 
-import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertNull;
 import static junit.framework.Assert.fail;
 
 import static org.mockito.ArgumentMatchers.any;
@@ -80,8 +80,8 @@
         CountDownLatch lock = new CountDownLatch(1);
         mScreenshotHelper.takeScreenshot(TAKE_SCREENSHOT_FULLSCREEN, false, false, timeoutMs,
                 mHandler,
-                worked -> {
-                    assertFalse(worked);
+                uri -> {
+                    assertNull(uri);
                     lock.countDown();
                 });
 
diff --git a/media/java/android/media/tv/OWNER b/media/java/android/media/tv/OWNER
deleted file mode 100644
index 64c0bb5..0000000
--- a/media/java/android/media/tv/OWNER
+++ /dev/null
@@ -1,5 +0,0 @@
-amyjojo@google.com
-nchalko@google.com
-shubang@google.com
-quxiangfang@google.com
-
diff --git a/media/java/android/media/tv/OWNERS b/media/java/android/media/tv/OWNERS
index 4a03b3c..64c0bb5 100644
--- a/media/java/android/media/tv/OWNERS
+++ b/media/java/android/media/tv/OWNERS
@@ -1,2 +1,5 @@
+amyjojo@google.com
 nchalko@google.com
+shubang@google.com
+quxiangfang@google.com
 
diff --git a/media/java/android/media/tv/tuner/FrontendSettings.java b/media/java/android/media/tv/tuner/FrontendSettings.java
new file mode 100644
index 0000000..3782cc6
--- /dev/null
+++ b/media/java/android/media/tv/tuner/FrontendSettings.java
@@ -0,0 +1,274 @@
+/*
+ * Copyright 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.media.tv.tuner;
+
+import android.media.tv.tuner.TunerConstants.FrontendSettingsType;
+
+import java.util.List;
+
+/**
+ * @hide
+ */
+public abstract class FrontendSettings {
+    protected int mFrequency;
+
+    /**
+     * Returns the frontend type.
+     */
+    @FrontendSettingsType
+    public abstract int getType();
+
+    public int getFrequency() {
+        return mFrequency;
+    }
+
+    // TODO: use hal constants for enum fields
+    // TODO: javaDoc
+    // TODO: add builders and getters for other settings type
+
+    /**
+     * Frontend settings for analog.
+     */
+    public static class FrontendAnalogSettings extends FrontendSettings {
+        private int mAnalogType;
+        private int mSifStandard;
+
+        @Override
+        public int getType() {
+            return TunerConstants.FRONTEND_TYPE_ANALOG;
+        }
+
+        public int getAnalogType() {
+            return mAnalogType;
+        }
+
+        public int getSifStandard() {
+            return mSifStandard;
+        }
+
+        /**
+         * Creates a new builder object.
+         */
+        public static Builder newBuilder() {
+            return new Builder();
+        }
+
+        private FrontendAnalogSettings(int frequency, int analogType, int sifStandard) {
+            mFrequency = frequency;
+            mAnalogType = analogType;
+            mSifStandard = sifStandard;
+        }
+
+        /**
+         * Builder for FrontendAnalogSettings.
+         */
+        public static class Builder {
+            private int mFrequency;
+            private int mAnalogType;
+            private int mSifStandard;
+
+            private Builder() {}
+
+            /**
+             * Sets frequency.
+             */
+            public Builder setFrequency(int frequency) {
+                mFrequency = frequency;
+                return this;
+            }
+
+            /**
+             * Sets analog type.
+             */
+            public Builder setAnalogType(int analogType) {
+                mAnalogType = analogType;
+                return this;
+            }
+
+            /**
+             * Sets sif standard.
+             */
+            public Builder setSifStandard(int sifStandard) {
+                mSifStandard = sifStandard;
+                return this;
+            }
+
+            /**
+             * Builds a FrontendAnalogSettings instance.
+             */
+            public FrontendAnalogSettings build() {
+                return new FrontendAnalogSettings(mFrequency, mAnalogType, mSifStandard);
+            }
+        }
+    }
+
+    /**
+     * Frontend settings for ATSC.
+     */
+    public static class FrontendAtscSettings extends FrontendSettings {
+        public int modulation;
+
+        @Override
+        public int getType() {
+            return TunerConstants.FRONTEND_TYPE_ATSC;
+        }
+    }
+
+    /**
+     * Frontend settings for ATSC-3.
+     */
+    public static class FrontendAtsc3Settings extends FrontendSettings {
+        public int bandwidth;
+        public byte demodOutputFormat;
+        public List<FrontendAtsc3PlpSettings> plpSettings;
+
+        @Override
+        public int getType() {
+            return TunerConstants.FRONTEND_TYPE_ATSC3;
+        }
+    }
+
+    /**
+     * Frontend settings for DVBS.
+     */
+    public static class FrontendDvbsSettings extends FrontendSettings {
+        public int modulation;
+        public FrontendDvbsCodeRate coderate;
+        public int symbolRate;
+        public int rolloff;
+        public int pilot;
+        public int inputStreamId;
+        public byte standard;
+
+        @Override
+        public int getType() {
+            return TunerConstants.FRONTEND_TYPE_DVBS;
+        }
+    }
+
+    /**
+     * Frontend settings for DVBC.
+     */
+    public static class FrontendDvbcSettings extends FrontendSettings {
+        public int modulation;
+        public long fec;
+        public int symbolRate;
+        public int outerFec;
+        public byte annex;
+        public int spectralInversion;
+
+        @Override
+        public int getType() {
+            return TunerConstants.FRONTEND_TYPE_DVBC;
+        }
+    }
+
+    /**
+     * Frontend settings for DVBT.
+     */
+    public static class FrontendDvbtSettings extends FrontendSettings {
+        public int transmissionMode;
+        public int bandwidth;
+        public int constellation;
+        public int hierarchy;
+        public int hpCoderate;
+        public int lpCoderate;
+        public int guardInterval;
+        public boolean isHighPriority;
+        public byte standard;
+        public boolean isMiso;
+        public int plpMode;
+        public byte plpId;
+        public byte plpGroupId;
+
+        @Override
+        public int getType() {
+            return TunerConstants.FRONTEND_TYPE_DVBT;
+        }
+    }
+
+    /**
+     * Frontend settings for ISDBS.
+     */
+    public static class FrontendIsdbsSettings extends FrontendSettings {
+        public int streamId;
+        public int streamIdType;
+        public int modulation;
+        public int coderate;
+        public int symbolRate;
+        public int rolloff;
+
+        @Override
+        public int getType() {
+            return TunerConstants.FRONTEND_TYPE_ISDBS;
+        }
+    }
+
+    /**
+     * Frontend settings for ISDBS-3.
+     */
+    public static class FrontendIsdbs3Settings extends FrontendSettings {
+        public int streamId;
+        public int streamIdType;
+        public int modulation;
+        public int coderate;
+        public int symbolRate;
+        public int rolloff;
+
+        @Override
+        public int getType() {
+            return TunerConstants.FRONTEND_TYPE_ISDBS3;
+        }
+    }
+
+    /**
+     * Frontend settings for ISDBT.
+     */
+    public static class FrontendIsdbtSettings extends FrontendSettings {
+        public int modulation;
+        public int bandwidth;
+        public int coderate;
+        public int guardInterval;
+        public int serviceAreaId;
+
+        @Override
+        public int getType() {
+            return TunerConstants.FRONTEND_TYPE_ISDBT;
+        }
+    }
+
+    /**
+     * PLP settings for ATSC-3.
+     */
+    public static class FrontendAtsc3PlpSettings {
+        public byte plpId;
+        public int modulation;
+        public int interleaveMode;
+        public int codeRate;
+        public int fec;
+    }
+
+    /**
+     * Code rate for DVBS.
+     */
+    public static class FrontendDvbsCodeRate {
+        public long fec;
+        public boolean isLinear;
+        public boolean isShortFrames;
+        public int bitsPer1000Symbol;
+    }
+}
diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java
index c91325a..82cef2e 100644
--- a/media/java/android/media/tv/tuner/Tuner.java
+++ b/media/java/android/media/tv/tuner/Tuner.java
@@ -16,6 +16,7 @@
 
 package android.media.tv.tuner;
 
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.media.tv.tuner.TunerConstants.DemuxPidType;
 import android.os.Handler;
@@ -78,6 +79,7 @@
      * Native method to open frontend of the given ID.
      */
     private native Frontend nativeOpenFrontendById(int id);
+    private native int nativeTune(int type, FrontendSettings settings);
 
     private native Filter nativeOpenFilter(int type, int subType, int bufferSize);
 
@@ -207,6 +209,13 @@
         }
     }
 
+    /**
+     * Tunes the frontend to using the settings given.
+     */
+    public int tune(@NonNull FrontendSettings settings) {
+        return nativeTune(settings.getType(), settings);
+    }
+
     private List<Integer> getFrontendIds() {
         mFrontendIds = nativeGetFrontendIds();
         return mFrontendIds;
diff --git a/media/java/android/media/tv/tuner/TunerConstants.java b/media/java/android/media/tv/tuner/TunerConstants.java
index 01f9367..458cb16 100644
--- a/media/java/android/media/tv/tuner/TunerConstants.java
+++ b/media/java/android/media/tv/tuner/TunerConstants.java
@@ -75,6 +75,21 @@
     public static final int DEMUX_T_PID = 1;
     public static final int DEMUX_MMPT_PID = 2;
 
+    @IntDef({FRONTEND_SETTINGS_ANALOG, FRONTEND_SETTINGS_ATSC, FRONTEND_SETTINGS_ATSC3,
+            FRONTEND_SETTINGS_DVBS, FRONTEND_SETTINGS_DVBC, FRONTEND_SETTINGS_DVBT,
+            FRONTEND_SETTINGS_ISDBS, FRONTEND_SETTINGS_ISDBS3, FRONTEND_SETTINGS_ISDBT})
+    public @interface FrontendSettingsType {}
+
+    public static final int FRONTEND_SETTINGS_ANALOG = 1;
+    public static final int FRONTEND_SETTINGS_ATSC = 2;
+    public static final int FRONTEND_SETTINGS_ATSC3 = 3;
+    public static final int FRONTEND_SETTINGS_DVBS = 4;
+    public static final int FRONTEND_SETTINGS_DVBC = 5;
+    public static final int FRONTEND_SETTINGS_DVBT = 6;
+    public static final int FRONTEND_SETTINGS_ISDBS = 7;
+    public static final int FRONTEND_SETTINGS_ISDBS3 = 8;
+    public static final int FRONTEND_SETTINGS_ISDBT = 9;
+
     private TunerConstants() {
     }
 }
diff --git a/media/jni/android_media_MediaDataSource.cpp b/media/jni/android_media_MediaDataSource.cpp
index 9705b91..0cb4b2d 100644
--- a/media/jni/android_media_MediaDataSource.cpp
+++ b/media/jni/android_media_MediaDataSource.cpp
@@ -26,7 +26,6 @@
 #include <nativehelper/JNIHelp.h>
 
 #include <binder/MemoryDealer.h>
-#include <drm/drm_framework_common.h>
 #include <media/stagefright/foundation/ADebug.h>
 #include <nativehelper/ScopedLocalRef.h>
 
@@ -161,8 +160,4 @@
     return String8::format("JMediaDataSource(pid %d, uid %d)", getpid(), getuid());
 }
 
-sp<DecryptHandle> JMediaDataSource::DrmInitialization(const char * /* mime */) {
-    return NULL;
-}
-
 }  // namespace android
diff --git a/media/jni/android_media_MediaDataSource.h b/media/jni/android_media_MediaDataSource.h
index 39405d2..378baf4 100644
--- a/media/jni/android_media_MediaDataSource.h
+++ b/media/jni/android_media_MediaDataSource.h
@@ -47,7 +47,6 @@
     virtual void close();
     virtual uint32_t getFlags();
     virtual String8 toString();
-    virtual sp<DecryptHandle> DrmInitialization(const char *mime);
 
 private:
     // Protect all member variables with mLock because this object will be
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index f5202fc..5216906 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -31,6 +31,9 @@
 using ::android::hardware::tv::tuner::V1_0::DemuxMmtpPid;
 using ::android::hardware::tv::tuner::V1_0::DemuxTpid;
 using ::android::hardware::tv::tuner::V1_0::DemuxTsFilterType;
+using ::android::hardware::tv::tuner::V1_0::FrontendAnalogSettings;
+using ::android::hardware::tv::tuner::V1_0::FrontendAnalogSifStandard;
+using ::android::hardware::tv::tuner::V1_0::FrontendAnalogType;
 using ::android::hardware::tv::tuner::V1_0::ITuner;
 using ::android::hardware::tv::tuner::V1_0::Result;
 
@@ -263,6 +266,15 @@
             id);
 }
 
+int JTuner::tune(const FrontendSettings& settings) {
+    if (mFe == NULL) {
+        ALOGE("frontend is not initialized");
+        return (int)Result::INVALID_STATE;
+    }
+    Result result = mFe->tune(settings);
+    return (int)result;
+}
+
 bool JTuner::openDemux() {
     if (mTuner == nullptr) {
         return false;
@@ -417,6 +429,32 @@
     return demuxPid;
 }
 
+static FrontendSettings getFrontendSettings(JNIEnv *env, int type, jobject settings) {
+    FrontendSettings frontendSettings;
+    jclass clazz = env->FindClass("android/media/tv/tuner/FrontendSettings");
+    jfieldID freqField = env->GetFieldID(clazz, "frequency", "I");
+    uint32_t freq = static_cast<uint32_t>(env->GetIntField(clazz, freqField));
+
+    // TODO: handle the other 8 types of settings
+    if (type == 1) {
+        // analog
+        clazz = env->FindClass("android/media/tv/tuner/FrontendSettings$FrontendAnalogSettings");
+        FrontendAnalogType analogType =
+                static_cast<FrontendAnalogType>(
+                        env->GetIntField(settings, env->GetFieldID(clazz, "mAnalogType", "I")));
+        FrontendAnalogSifStandard sifStandard =
+                static_cast<FrontendAnalogSifStandard>(
+                        env->GetIntField(settings, env->GetFieldID(clazz, "mSifStandard", "I")));
+        FrontendAnalogSettings frontendAnalogSettings {
+                .frequency = freq,
+                .type = analogType,
+                .sifStandard = sifStandard,
+        };
+        frontendSettings.analog(frontendAnalogSettings);
+    }
+    return frontendSettings;
+}
+
 static sp<IFilter> getFilter(JNIEnv *env, jobject filter) {
     return (IFilter *)env->GetLongField(filter, gFields.filterContext);
 }
@@ -476,6 +514,11 @@
     return tuner->openFrontendById(id);
 }
 
+static int android_media_tv_Tuner_tune(JNIEnv *env, jobject thiz, jint type, jobject settings) {
+    sp<JTuner> tuner = getTuner(env, thiz);
+    return tuner->tune(getFrontendSettings(env, type, settings));
+}
+
 static jobject android_media_tv_Tuner_get_lnb_ids(JNIEnv *env, jobject thiz) {
     sp<JTuner> tuner = getTuner(env, thiz);
     return tuner->getLnbIds();
@@ -612,6 +655,8 @@
             (void *)android_media_tv_Tuner_get_frontend_ids },
     { "nativeOpenFrontendById", "(I)Landroid/media/tv/tuner/Tuner$Frontend;",
             (void *)android_media_tv_Tuner_open_frontend_by_id },
+    { "nativeTune", "(ILandroid/media/tv/tuner/FrontendSettings;)I",
+            (void *)android_media_tv_Tuner_tune },
     { "nativeOpenFilter", "(III)Landroid/media/tv/tuner/Tuner$Filter;",
             (void *)android_media_tv_Tuner_open_filter },
     { "nativeGetLnbIds", "()Ljava/util/List;",
diff --git a/media/jni/android_media_tv_Tuner.h b/media/jni/android_media_tv_Tuner.h
index 3bf6ec8..f856791 100644
--- a/media/jni/android_media_tv_Tuner.h
+++ b/media/jni/android_media_tv_Tuner.h
@@ -34,6 +34,7 @@
 using ::android::hardware::tv::tuner::V1_0::FrontendId;
 using ::android::hardware::tv::tuner::V1_0::FrontendScanMessage;
 using ::android::hardware::tv::tuner::V1_0::FrontendScanMessageType;
+using ::android::hardware::tv::tuner::V1_0::FrontendSettings;
 using ::android::hardware::tv::tuner::V1_0::IDemux;
 using ::android::hardware::tv::tuner::V1_0::IDescrambler;
 using ::android::hardware::tv::tuner::V1_0::IDvr;
@@ -95,6 +96,7 @@
     sp<ITuner> getTunerService();
     jobject getFrontendIds();
     jobject openFrontendById(int id);
+    int tune(const FrontendSettings& settings);
     jobject getLnbIds();
     jobject openLnbById(int id);
     jobject openFilter(DemuxFilterType type, int bufferSize);
diff --git a/packages/CarSystemUI/res/values/integers_car.xml b/packages/CarSystemUI/res/values/integers_car.xml
index d6c16cb..e53446e 100644
--- a/packages/CarSystemUI/res/values/integers_car.xml
+++ b/packages/CarSystemUI/res/values/integers_car.xml
@@ -20,11 +20,6 @@
     <!-- Full screen user switcher column number TODO: move to support library-->
     <integer name="user_fullscreen_switcher_num_col">3</integer>
 
-    <!-- Number of milliseconds user can spend driving with the keyguard up. After that, we switch to Guest. -->
-    <!-- If the number is negative, the feature is disabled.
-         If it's zero, we switch to guest immediately as we start driving. -->
-    <integer name="driving_on_keyguard_timeout_ms">-1</integer>
-
     <!--Percentage of the screen height, from the bottom, that a notification panel being
     partially closed at will result in it remaining open if released-->
     <integer name="notification_settle_open_percentage">20</integer>
diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
index 4e5a3a6..bef769d 100644
--- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
@@ -24,7 +24,6 @@
 import android.annotation.Nullable;
 import android.app.ActivityManager;
 import android.car.Car;
-import android.car.drivingstate.CarDrivingStateEvent;
 import android.car.drivingstate.CarUxRestrictionsManager;
 import android.car.hardware.power.CarPowerManager.CarPowerStateListener;
 import android.content.Context;
@@ -114,6 +113,7 @@
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 import com.android.systemui.statusbar.phone.LightBarController;
 import com.android.systemui.statusbar.phone.LightsOutNotifController;
+import com.android.systemui.statusbar.phone.LockscreenLockIconController;
 import com.android.systemui.statusbar.phone.LockscreenWallpaper;
 import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper;
 import com.android.systemui.statusbar.phone.NotificationGroupManager;
@@ -121,6 +121,7 @@
 import com.android.systemui.statusbar.phone.StatusBar;
 import com.android.systemui.statusbar.phone.StatusBarIconController;
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
+import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter;
 import com.android.systemui.statusbar.phone.StatusBarWindowController;
 import com.android.systemui.statusbar.phone.StatusBarWindowViewController;
 import com.android.systemui.statusbar.policy.BatteryController;
@@ -153,7 +154,10 @@
     private static final float FLING_ANIMATION_MAX_TIME = 0.5f;
     // acceleration rate for the fling animation
     private static final float FLING_SPEED_UP_FACTOR = 0.6f;
+
     private final ScrimController mScrimController;
+    private final StatusBarWindowViewController mStatusBarWindowViewController;
+    private final LockscreenLockIconController mLockscreenLockIconController;
 
     private float mOpeningVelocity = DEFAULT_FLING_VELOCITY;
     private float mClosingVelocity = DEFAULT_FLING_VELOCITY;
@@ -175,10 +179,8 @@
     private final CarServiceProvider mCarServiceProvider;
 
     private DeviceProvisionedController mDeviceProvisionedController;
-    private DrivingStateHelper mDrivingStateHelper;
     private PowerManagerHelper mPowerManagerHelper;
     private FlingAnimationUtils mFlingAnimationUtils;
-    private SwitchToGuestTimer mSwitchToGuestTimer;
     private NotificationDataManager mNotificationDataManager;
     private NotificationClickHandlerFactory mNotificationClickHandlerFactory;
     private ScreenLifecycle mScreenLifecycle;
@@ -287,7 +289,8 @@
             NotificationListener notificationListener,
             ConfigurationController configurationController,
             StatusBarWindowController statusBarWindowController,
-            StatusBarWindowViewController.Builder statusBarWindowViewControllerBuild,
+            StatusBarWindowViewController statusBarWindowViewController,
+            LockscreenLockIconController lockscreenLockIconController,
             DozeParameters dozeParameters,
             ScrimController scrimController,
             Lazy<LockscreenWallpaper> lockscreenWallpaperLazy,
@@ -304,6 +307,8 @@
             Optional<Divider> dividerOptional,
             SuperStatusBarViewFactory superStatusBarViewFactory,
             LightsOutNotifController lightsOutNotifController,
+            StatusBarNotificationActivityStarter.Builder
+                    statusBarNotificationActivityStarterBuilder,
             StatusBarKeyguardViewManager statusBarKeyguardViewManager,
             ViewMediatorCallback viewMediatorCallback,
             DismissCallbackRegistry dismissCallbackRegistry,
@@ -363,7 +368,8 @@
                 notificationListener,
                 configurationController,
                 statusBarWindowController,
-                statusBarWindowViewControllerBuild,
+                statusBarWindowViewController,
+                lockscreenLockIconController,
                 dozeParameters,
                 scrimController,
                 null /* keyguardLiftController */,
@@ -380,11 +386,14 @@
                 remoteInputUriController,
                 dividerOptional,
                 lightsOutNotifController,
+                statusBarNotificationActivityStarterBuilder,
                 superStatusBarViewFactory,
                 statusBarKeyguardViewManager,
                 viewMediatorCallback,
                 dismissCallbackRegistry);
         mScrimController = scrimController;
+        mStatusBarWindowViewController = statusBarWindowViewController;
+        mLockscreenLockIconController = lockscreenLockIconController;
         mDeviceProvisionedController = deviceProvisionedController;
         mCarServiceProvider = carServiceProvider;
         mDrivingStateHelperLazy = drivingStateHelperLazy;
@@ -400,22 +409,22 @@
         mScreenLifecycle = Dependency.get(ScreenLifecycle.class);
         mScreenLifecycle.addObserver(mScreenObserver);
 
-      	// Notification bar related setup.
+        // Notification bar related setup.
         mInitialBackgroundAlpha = (float) mContext.getResources().getInteger(
-            R.integer.config_initialNotificationBackgroundAlpha) / 100;
+                R.integer.config_initialNotificationBackgroundAlpha) / 100;
         if (mInitialBackgroundAlpha < 0 || mInitialBackgroundAlpha > 100) {
             throw new RuntimeException(
-              "Unable to setup notification bar due to incorrect initial background alpha"
-                      + " percentage");
+                    "Unable to setup notification bar due to incorrect initial background alpha"
+                            + " percentage");
         }
         float finalBackgroundAlpha = Math.max(
-            mInitialBackgroundAlpha,
-            (float) mContext.getResources().getInteger(
-                R.integer.config_finalNotificationBackgroundAlpha) / 100);
+                mInitialBackgroundAlpha,
+                (float) mContext.getResources().getInteger(
+                        R.integer.config_finalNotificationBackgroundAlpha) / 100);
         if (finalBackgroundAlpha < 0 || finalBackgroundAlpha > 100) {
             throw new RuntimeException(
-              "Unable to setup notification bar due to incorrect final background alpha"
-                      + " percentage");
+                    "Unable to setup notification bar due to incorrect final background alpha"
+                            + " percentage");
         }
         mBackgroundAlphaDiff = finalBackgroundAlpha - mInitialBackgroundAlpha;
 
@@ -432,15 +441,6 @@
         createBatteryController();
         mCarBatteryController.startListening();
 
-        // Used by onDrivingStateChanged and it can be called inside
-        // DrivingStateHelper.connectToCarService()
-        mSwitchToGuestTimer = new SwitchToGuestTimer(mContext);
-
-        // Register a listener for driving state changes.
-        mDrivingStateHelper = mDrivingStateHelperLazy.get();
-        mDrivingStateHelper.setCarDrivingStateEventListener(this::onDrivingStateChanged);
-        mDrivingStateHelper.connectToCarService();
-
         mPowerManagerHelper = mPowerManagerHelperLazy.get();
         mPowerManagerHelper.setCarPowerStateListener(mCarPowerStateListener);
         mPowerManagerHelper.connectToCarService();
@@ -560,13 +560,6 @@
         });
         CarNotificationListener carNotificationListener = new CarNotificationListener();
         mCarUxRestrictionManagerWrapper = new CarUxRestrictionManagerWrapper();
-        mCarServiceProvider.addListener(car -> {
-            CarUxRestrictionsManager carUxRestrictionsManager =
-                    (CarUxRestrictionsManager)
-                            car.getCarManager(Car.CAR_UX_RESTRICTION_SERVICE);
-            mCarUxRestrictionManagerWrapper.setCarUxRestrictionsManager(
-                    carUxRestrictionsManager);
-        });
 
         mNotificationDataManager = new NotificationDataManager();
         mNotificationDataManager.setOnUnseenCountUpdateListener(
@@ -681,14 +674,21 @@
                 return handled || isTracking;
             }
         });
+        mCarServiceProvider.addListener(car -> {
+            CarUxRestrictionsManager carUxRestrictionsManager =
+                    (CarUxRestrictionsManager)
+                            car.getCarManager(Car.CAR_UX_RESTRICTION_SERVICE);
+            mCarUxRestrictionManagerWrapper.setCarUxRestrictionsManager(
+                    carUxRestrictionsManager);
 
-        mNotificationViewController = new NotificationViewController(
-                mNotificationView,
-                PreprocessingManager.getInstance(mContext),
-                carNotificationListener,
-                mCarUxRestrictionManagerWrapper,
-                mNotificationDataManager);
-        mNotificationViewController.enable();
+                    mNotificationViewController = new NotificationViewController(
+                            mNotificationView,
+                            PreprocessingManager.getInstance(mContext),
+                            carNotificationListener,
+                            mCarUxRestrictionManagerWrapper,
+                            mNotificationDataManager);
+                    mNotificationViewController.enable();
+        });
     }
 
     /**
@@ -906,20 +906,6 @@
         }
     }
 
-    private void onDrivingStateChanged(CarDrivingStateEvent notUsed) {
-        // Check if we need to start the timer every time driving state changes.
-        startSwitchToGuestTimerIfDrivingOnKeyguard();
-    }
-
-    private void startSwitchToGuestTimerIfDrivingOnKeyguard() {
-        if (mDrivingStateHelper.isCurrentlyDriving() && mState != StatusBarState.SHADE) {
-            // We're driving while keyguard is up.
-            mSwitchToGuestTimer.start();
-        } else {
-            mSwitchToGuestTimer.cancel();
-        }
-    }
-
     @Override
     protected void createUserSwitcher() {
         UserSwitcherController userSwitcherController =
@@ -945,8 +931,6 @@
     public void onStateChanged(int newState) {
         super.onStateChanged(newState);
 
-        startSwitchToGuestTimerIfDrivingOnKeyguard();
-
         if (newState != StatusBarState.FULLSCREEN_USER_SWITCHER) {
             hideUserSwitcher();
         } else {
diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
index 4813d6d..6529868 100644
--- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
@@ -73,12 +73,14 @@
 import com.android.systemui.statusbar.phone.KeyguardBypassController;
 import com.android.systemui.statusbar.phone.LightBarController;
 import com.android.systemui.statusbar.phone.LightsOutNotifController;
+import com.android.systemui.statusbar.phone.LockscreenLockIconController;
 import com.android.systemui.statusbar.phone.LockscreenWallpaper;
 import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper;
 import com.android.systemui.statusbar.phone.NotificationGroupManager;
 import com.android.systemui.statusbar.phone.ScrimController;
 import com.android.systemui.statusbar.phone.StatusBarIconController;
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
+import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter;
 import com.android.systemui.statusbar.phone.StatusBarWindowController;
 import com.android.systemui.statusbar.phone.StatusBarWindowViewController;
 import com.android.systemui.statusbar.policy.BatteryController;
@@ -160,7 +162,8 @@
             NotificationListener notificationListener,
             ConfigurationController configurationController,
             StatusBarWindowController statusBarWindowController,
-            StatusBarWindowViewController.Builder statusBarWindowViewControllerBuilder,
+            StatusBarWindowViewController statusBarWindowViewController,
+            LockscreenLockIconController lockscreenLockIconController,
             DozeParameters dozeParameters,
             ScrimController scrimController,
             Lazy<LockscreenWallpaper> lockscreenWallpaperLazy,
@@ -177,6 +180,8 @@
             Optional<Divider> dividerOptional,
             SuperStatusBarViewFactory superStatusBarViewFactory,
             LightsOutNotifController lightsOutNotifController,
+            StatusBarNotificationActivityStarter.Builder
+                    statusBarNotificationActivityStarterBuilder,
             StatusBarKeyguardViewManager statusBarKeyguardViewManager,
             ViewMediatorCallback viewMediatorCallback,
             DismissCallbackRegistry dismissCallbackRegistry,
@@ -235,7 +240,8 @@
                 notificationListener,
                 configurationController,
                 statusBarWindowController,
-                statusBarWindowViewControllerBuilder,
+                statusBarWindowViewController,
+                lockscreenLockIconController,
                 dozeParameters,
                 scrimController,
                 lockscreenWallpaperLazy,
@@ -252,6 +258,7 @@
                 dividerOptional,
                 superStatusBarViewFactory,
                 lightsOutNotifController,
+                statusBarNotificationActivityStarterBuilder,
                 statusBarKeyguardViewManager,
                 viewMediatorCallback,
                 dismissCallbackRegistry,
diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/SwitchToGuestTimer.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/SwitchToGuestTimer.java
deleted file mode 100644
index 0c91cba..0000000
--- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/SwitchToGuestTimer.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.car;
-
-import android.car.userlib.CarUserManagerHelper;
-import android.content.Context;
-import android.os.CountDownTimer;
-import android.util.Log;
-
-import androidx.annotation.GuardedBy;
-
-import com.android.systemui.R;
-
-/**
- * Wrapper for a countdown timer that switches to Guest if the user has been driving with
- * the keyguard up for configurable number of seconds.
- */
-public class SwitchToGuestTimer {
-    private static final String TAG = "SwitchToGuestTimer";
-
-    // After how many ms CountdownTimer.onTick gets triggered.
-    private static final int COUNTDOWN_INTERVAL_MS = 1000;
-
-    private final CarUserManagerHelper mCarUserManagerHelper;
-    private final Object mTimerLock;
-    private final String mGuestName;
-    private final int mTimeoutMs;
-    private final boolean mEnabled;
-
-    @GuardedBy("mTimerLock")
-    private CountDownTimer mSwitchToGuestTimer;
-
-    public SwitchToGuestTimer(Context context) {
-        mCarUserManagerHelper = new CarUserManagerHelper(context);
-        mGuestName = context.getResources().getString(R.string.car_guest);
-        mTimeoutMs = context.getResources().getInteger(R.integer.driving_on_keyguard_timeout_ms);
-
-        // Lock prevents multiple timers being started.
-        mTimerLock = new Object();
-
-        // If milliseconds to switch is a negative number, the feature is disabled.
-        mEnabled = mTimeoutMs >= 0;
-    }
-
-    /**
-     * Starts the timer if it's not already running.
-     */
-    public void start() {
-        if (!mEnabled) {
-            logD("Switching to guest after driving on keyguard is disabled.");
-            return;
-        }
-
-        synchronized (mTimerLock) {
-            if (mSwitchToGuestTimer != null) {
-                logD("Timer is already running.");
-                return;
-            }
-
-            mSwitchToGuestTimer = new CountDownTimer(mTimeoutMs, COUNTDOWN_INTERVAL_MS) {
-                @Override
-                public void onTick(long msUntilFinished) {
-                    logD("Ms until switching to guest: " + Long.toString(msUntilFinished));
-                }
-
-                @Override
-                public void onFinish() {
-                    mCarUserManagerHelper.startGuestSession(mGuestName);
-                    cancel();
-                }
-            };
-
-            logI("Starting timer");
-            mSwitchToGuestTimer.start();
-        }
-    }
-
-    /**
-     * Cancels the running timer.
-     */
-    public void cancel() {
-        synchronized (mTimerLock) {
-            if (mSwitchToGuestTimer != null) {
-                logI("Cancelling timer");
-                mSwitchToGuestTimer.cancel();
-                mSwitchToGuestTimer = null;
-            }
-        }
-    }
-
-    private void logD(String message) {
-        if (Log.isLoggable(TAG, Log.DEBUG)) {
-            Log.d(TAG, message);
-        }
-    }
-
-    private void logI(String message) {
-        if (Log.isLoggable(TAG, Log.INFO)) {
-            Log.i(TAG, message);
-        }
-    }
-}
diff --git a/packages/SettingsLib/HelpUtils/Android.bp b/packages/SettingsLib/HelpUtils/Android.bp
index af60185..285131d 100644
--- a/packages/SettingsLib/HelpUtils/Android.bp
+++ b/packages/SettingsLib/HelpUtils/Android.bp
@@ -4,6 +4,10 @@
     srcs: ["src/**/*.java"],
     resource_dirs: ["res"],
 
+    libs: [
+        "androidx.annotation_annotation",
+    ],
+
     sdk_version: "system_current",
     min_sdk_version: "21",
 }
diff --git a/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java b/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java
index 2d13b73..a77683d 100644
--- a/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java
+++ b/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java
@@ -33,6 +33,8 @@
 import android.view.MenuItem;
 import android.view.MenuItem.OnMenuItemClickListener;
 
+import androidx.annotation.VisibleForTesting;
+
 import com.android.settingslib.widget.R;
 
 import java.net.URISyntaxException;
@@ -45,7 +47,8 @@
 public class HelpUtils {
     private final static String TAG = HelpUtils.class.getSimpleName();
 
-    private static final int MENU_HELP = Menu.FIRST + 100;
+    @VisibleForTesting
+    static final int MENU_HELP = Menu.FIRST + 100;
 
     /**
      * Help URL query parameter key for the preferred language.
@@ -68,11 +71,16 @@
      */
     private static String sCachedVersionCode = null;
 
-    /** Static helper that is not instantiable*/
-    private HelpUtils() { }
+    /** Static helper that is not instantiable */
+    private HelpUtils() {
+    }
 
     public static boolean prepareHelpMenuItem(Activity activity, Menu menu, String helpUri,
             String backupContext) {
+        // menu contains help item, skip it
+        if (menu.findItem(MENU_HELP) != null) {
+            return false;
+        }
         MenuItem helpItem = menu.add(0, MENU_HELP, 0, R.string.help_feedback_label);
         helpItem.setIcon(R.drawable.ic_help_actionbar);
         return prepareHelpMenuItem(activity, helpItem, helpUri, backupContext);
@@ -80,6 +88,10 @@
 
     public static boolean prepareHelpMenuItem(Activity activity, Menu menu, int helpUriResource,
             String backupContext) {
+        // menu contains help item, skip it
+        if (menu.findItem(MENU_HELP) != null) {
+            return false;
+        }
         MenuItem helpItem = menu.add(0, MENU_HELP, 0, R.string.help_feedback_label);
         helpItem.setIcon(R.drawable.ic_help_actionbar);
         return prepareHelpMenuItem(activity, helpItem, activity.getString(helpUriResource),
@@ -90,11 +102,12 @@
      * Prepares the help menu item by doing the following.
      * - If the helpUrlString is empty or null, the help menu item is made invisible.
      * - Otherwise, this makes the help menu item visible and sets the intent for the help menu
-     *   item to view the URL.
+     * item to view the URL.
      *
      * @return returns whether the help menu item has been made visible.
      */
-    public static boolean prepareHelpMenuItem(final Activity activity, MenuItem helpMenuItem,
+    @VisibleForTesting
+    static boolean prepareHelpMenuItem(final Activity activity, MenuItem helpMenuItem,
             String helpUriString, String backupContext) {
         if (Global.getInt(activity.getContentResolver(), Global.DEVICE_PROVISIONED, 0) == 0) {
             return false;
@@ -117,10 +130,10 @@
                         /**
                          * TODO: Enable metrics logger for @SystemApi (b/111552654)
                          *
-                        MetricsLogger.action(activity,
-                            MetricsEvent.ACTION_SETTING_HELP_AND_FEEDBACK,
-                            intent.getStringExtra(EXTRA_CONTEXT));
-                        */
+                         MetricsLogger.action(activity,
+                         MetricsEvent.ACTION_SETTING_HELP_AND_FEEDBACK,
+                         intent.getStringExtra(EXTRA_CONTEXT));
+                         */
                         try {
                             activity.startActivityForResult(intent, 0);
                         } catch (ActivityNotFoundException exc) {
@@ -212,6 +225,7 @@
     /**
      * Adds two query parameters into the Uri, namely the language code and the version code
      * of the app's package as gotten via the context.
+     *
      * @return the uri with added query parameters
      */
     private static Uri uriWithAddedParameters(Context context, Uri baseUri) {
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index 97b2cb5..3ff5cf4 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Middelmatig"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Vinnig"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Baie vinnig"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Verval"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Ontkoppel"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Ontkoppel tans…"</string>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index 62d5dca..264d8de 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"መካከለኛ"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"ፈጣን"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"እጅግ በጣም ፈጣን"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"ጊዜው አልፏል"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"ተለያይቷል"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"በመለያየት ላይ..."</string>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index c786e09..c230236 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"متوسطة"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"سريعة"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"سريعة جدًا"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"منتهية الصلاحية"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"غير متصل"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"جارٍ قطع الاتصال..."</string>
diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml
index 552fbb8..ab0ed29 100644
--- a/packages/SettingsLib/res/values-as/strings.xml
+++ b/packages/SettingsLib/res/values-as/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"মধ্যমীয়া"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"দ্ৰুত"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"অতি দ্ৰুত"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"ম্যাদ উকলিছে"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"সংযোগ বিচ্ছিন্ন কৰা হ’ল"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"সংযোগ বিচ্ছিন্ন কৰি থকা হৈছে…"</string>
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index 3af2e25..fe62d31 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Orta"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Sürətli"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Çox Sürətli"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Vaxtı keçib"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Ayrıldı"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Ayrılır..."</string>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index 8a76242..1619584 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Srednja"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Brza"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Veoma brza"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Isteklo"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Veza je prekinuta"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Prekidanje veze..."</string>
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index 5ed4495..0f2df49 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Сярэдняя"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Хуткая"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Вельмі хуткая"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Тэрмін скончыўся"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Адключана"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Адключэнне..."</string>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index f7a7153..a3be2812 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Средна"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Бърза"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Много бърза"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Изтекло"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Изкл."</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Изключва се..."</string>
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index f4c677f..743de50 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"মাঝারি"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"দ্রুত"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"খুব দ্রুত"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"মেয়াদ শেষ হয়ে গেছে"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"ডিসকানেক্ট করা হয়েছে"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"ডিসকানেক্ট হচ্ছে..."</string>
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index fc653b7..75a4047 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Srednja brzina"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Brzo"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Veoma brzo"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Istekao"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Isključen"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Prekidanje veze…"</string>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index f79375e..8627cf3 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Mitjana"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Ràpida"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Molt ràpida"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Caducat"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Desconnectat"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"S\'està desconnectant..."</string>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index 64400a4..6fef07a 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Střední"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Rychlá"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Velmi rychlá"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Platnost vypršela"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Odpojeno"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Odpojování..."</string>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index de7a228..80ee95e 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Middel"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Hurtig"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Meget hurtig"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Udløbet"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> – <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Afbrudt"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Afbryder ..."</string>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index eafe9d0..7dee120 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Μέτρια"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Γρήγορη"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Πολύ γρήγορη"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Έληξε"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Αποσυνδέθηκε"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Αποσύνδεση..."</string>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index 840f5ee..41c817e 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Media"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Rápida"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Muy rápida"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Vencido"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Desconectado"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Desconectando…"</string>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index c86eb34..897eaa3 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Media"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Rápida"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Muy rápida"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Caducado"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Desconectado"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Desconectando…"</string>
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index f59b96a..9b94222 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Keskmine"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Kiire"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Väga kiire"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Aegunud"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Ühendus katkestatud"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Ühenduse katkestamine ..."</string>
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index 9648139..b0e4b26 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Tartekoa"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Bizkorra"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Oso bizkorra"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Iraungita"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Deskonektatuta"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Deskonektatzen…"</string>
@@ -455,7 +454,7 @@
     <string name="cancel" msgid="5665114069455378395">"Utzi"</string>
     <string name="okay" msgid="949938843324579502">"Ados"</string>
     <string name="zen_mode_enable_dialog_turn_on" msgid="6418297231575050426">"Aktibatu"</string>
-    <string name="zen_mode_settings_turn_on_dialog_title" msgid="2760567063190790696">"Aktibatu \"Ez molestatu\" modua"</string>
+    <string name="zen_mode_settings_turn_on_dialog_title" msgid="2760567063190790696">"Aktibatu ez molestatzeko modua"</string>
     <string name="zen_mode_settings_summary_off" msgid="3832876036123504076">"Inoiz ez"</string>
     <string name="zen_interruption_level_priority" msgid="5392140786447823299">"Lehentasuna dutenak soilik"</string>
     <string name="zen_mode_and_condition" msgid="8877086090066332516">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index 3e8de97..7298826 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"متوسط"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"سریع"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"خیلی سریع"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"منقضی‌شده"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"اتصال قطع شد"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"در حال قطع اتصال..."</string>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index 68ddf7d..6f58f03 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Kohtuullinen"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Nopea"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Hyvin nopea"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Vanhentunut"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Yhteys katkaistu"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Katkaistaan yhteyttä..."</string>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index ef4800c..a5526f3 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Moyenne"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Élevée"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Très rapide"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Expiré"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> : <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Déconnecté"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Déconnexion…"</string>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index 256ea03a..eaab027 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Media"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Rápida"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Moi rápida"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Caducou"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Desconectado"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Desconectando..."</string>
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index ed50f4b..00fd024 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"મધ્યમ"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"ઝડપી"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"ખૂબ ઝડપી"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"સમય સમાપ્ત થયો"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"ડિસ્કનેક્ટ કર્યું"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"ડિસ્કનેક્ટ થઈ રહ્યું છે..."</string>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 550eaf8..96aec94 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"मध्यम"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"तेज़"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"अत्‍यधिक तेज़"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"समयसीमा खत्म हो गई"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"डिसकनेक्ट किया गया"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"डिस्‍कनेक्‍ट हो रहा है..."</string>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index 18ea1de..6df46ca 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Srednje"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Brzo"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Vrlo brzo"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Isteklo"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Niste povezani"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Isključivanje…"</string>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index 7baa044..6b5b05e 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Közepes"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Gyors"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Nagyon gyors"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Lejárt"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Szétkapcsolva"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Szétkapcsolás..."</string>
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index a5b03ea..c4002b9 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Միջին"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Արագ"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Շատ արագ"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Սպառվել է"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Անջատված է"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Անջատվում է..."</string>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index dea51a8..753f225 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Sedang"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Cepat"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Sangat Cepat"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Sudah tidak berlaku"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Sambungan terputus"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Memutus sambungan..."</string>
diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml
index 0a85d06..b1d40bf 100644
--- a/packages/SettingsLib/res/values-is/strings.xml
+++ b/packages/SettingsLib/res/values-is/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Miðlungshratt"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Hratt"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Mjög hratt"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Útrunninn"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Aftengt"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Aftengist…"</string>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index 980bdf9..7f2bd3e 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Media"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Veloce"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Molto veloce"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Scaduto"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Disconnesso"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Disconnessione..."</string>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index 77fd156..bdd1bab 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"בינונית"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"מהירה"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"מהירה מאוד"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"התוקף פג"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"מנותק"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"מתנתק..."</string>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index 1d6b3d5..a6192a4 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"普通"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"速い"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"非常に速い"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"期限切れ"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"切断"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"切断中..."</string>
diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml
index a69713a..a3633f6 100644
--- a/packages/SettingsLib/res/values-ka/strings.xml
+++ b/packages/SettingsLib/res/values-ka/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"საშუალო"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"სწრაფი"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"ძალიან სწრაფი"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"ვადაგასულია"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"კავშირი გაწყვეტილია"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"მიმდინარეობს გათიშვა…"</string>
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index 380d648..0962e55 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Орташа"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Жылдам"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Өте жылдам"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Мерзімі өтті."</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Ажыратылған"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Ажыратылуда…"</string>
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index 478e036..45620e8 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"មធ្យម"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"លឿន"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"លឿន​ណាស់"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"ផុតកំណត់"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"បាន​ផ្ដាច់"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"កំពុង​ផ្ដាច់…"</string>
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index 73aa998..1fc2e4a 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"ಮಧ್ಯಮ"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"ವೇಗ"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"ತುಂಬಾ ವೇಗವಾಗಿದೆ"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"ಅವಧಿ ಮುಕ್ತಾಯವಾಗಿದೆ"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗುತ್ತಿದೆ..."</string>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index 3ecde32..8e7c697 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"보통"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"빠름"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"매우 빠름"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"만료됨"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"연결 끊김"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"연결을 끊는 중…"</string>
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index ca8992f..18a1468 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Орто"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Ылдам"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Абдан ылдам"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Мөөнөтү бүткөн"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Ажыратылган"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Ажыратылууда…"</string>
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index b8a9322..808d5a7 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"ປານກາງ"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"ໄວ"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"ໄວຫຼາຍ"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"ໝົດອາຍຸແລ້ວ"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"ຕັດການເຊື່ອມຕໍ່ແລ້ວ"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"ກຳລັງຢຸດການເຊື່ອມຕໍ່..."</string>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index 3d6dfbb..78d1b1b 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Vidutinis"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Greitas"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Labai greitas"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Baigėsi galiojimo laikas"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Atsijungęs (-usi)"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Atjungiama..."</string>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index bf0c97d..0ae10aa 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Vidējs"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Ātrs"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Ļoti ātrs"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Beidzies derīguma termiņš"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Atvienots"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Notiek atvienošana..."</string>
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index 53b0d4c..9850ac5 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Средна"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Брза"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Многу брза"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Истечено"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Исклучено"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Се исклучува..."</string>
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index 66ff005..2692a30 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"ഇടത്തരം"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"വേഗത്തിൽ"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"വളരെ വേഗത്തിൽ"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"കാലഹരണപ്പെട്ടത്"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"വിച്ഛേദിച്ചു"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"വിച്‌ഛേദിക്കുന്നു..."</string>
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index 75633ab..966cdff 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"मध्‍यम"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"जलद"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"खूप जलद"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"मुदत संपली"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"डिस्कनेक्ट केले"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"डिस्कनेक्ट करत आहे..."</string>
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index fad37fe..88d7c7d 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Sederhana"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Laju"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Sangat Laju"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Tamat tempoh"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Diputuskan sambungan"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Memutuskan sambungan..."</string>
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index fd626f6c..6dfd290 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"အတော်အသင့်"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"မြန်"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"အလွန်မြန်"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"သက်တမ်းကုန်သွားပါပြီ"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"ချိတ်ဆက်မှုပြတ်တောက်သည်"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"အဆက်အသွယ်ဖြတ်တောက်သည်"</string>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index baf3c64..760c409 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Middels"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Rask"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Veldig rask"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Utløpt"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Frakoblet"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Kobler fra…"</string>
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index 00a3022..77f87ff 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"मध्यम"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"छिटो"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"धेरै छिटो"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"म्याद सकियो"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"विच्छेदन गरियो"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"जडान हटाइँदै ..."</string>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index 533b0f2..55f56d9 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Gemiddeld"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Snel"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Zeer snel"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Verlopen"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Verbinding verbroken"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Verbinding verbreken..."</string>
diff --git a/packages/SettingsLib/res/values-or/strings.xml b/packages/SettingsLib/res/values-or/strings.xml
index 4a2ab80..98c302d 100644
--- a/packages/SettingsLib/res/values-or/strings.xml
+++ b/packages/SettingsLib/res/values-or/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"ମଧ୍ୟମ"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"ଦ୍ରୁତ"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"ଅତି ଦ୍ରୁତ"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"ମିଆଦ ଶେଷ ହୋଇଯାଇଛି"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"ବିଛିନ୍ନ ହେଲା"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"ବିଚ୍ଛିନ୍ନ କରୁଛି…"</string>
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index 62da49b..525ad2e 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"ਔਸਤ"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"ਤੇਜ਼"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"ਬਹੁਤ ਤੇਜ਼"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"ਮਿਆਦ ਮੁੱਕ ਗਈ"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"ਡਿਸਕਨੈਕਟ ਕੀਤਾ"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"ਡਿਸਕਨੈਕਟ ਕਰ ਰਿਹਾ ਹੈ..."</string>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 027afc3..69ebc59 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Średnia"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Szybka"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Bardzo szybka"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Ważność wygasła"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Rozłączona"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Rozłączanie..."</string>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 9259c03..62017f1 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Média"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Rápida"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Muito rápida"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Expirado"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Desconectado"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Desconectando…"</string>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index 0961b27..8304768 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Média"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Rápida"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Muito rápida"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Expirado"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Desligado"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"A desligar..."</string>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 9259c03..62017f1 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Média"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Rápida"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Muito rápida"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Expirado"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Desconectado"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Desconectando…"</string>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index 1fc1d35..50ea4a0 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Medie"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Rapidă"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Foarte rapidă"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Expirat"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Deconectat"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"În curs de deconectare..."</string>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index c3baea2..0582a0c 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Средняя"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Быстрая"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Очень быстрая"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Срок действия истек"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Нет подключения"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Отключение..."</string>
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index f8d2d08..43a4978 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"මධ්‍යම"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"වේගවත්"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"ඉතා වේගවත්"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"කල් ඉකුත් විය"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"විසන්ධි වුණි"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"විසන්ධි වෙමින්…"</string>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 0d576b4..3a3958f 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Stredná"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Vysoká"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Veľmi vysoká"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Platnosť vypršala"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Odpojený"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Prebieha odpájanie..."</string>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index 7c62d52..068f221 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Srednje hitra"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Hitra"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Zelo hitra"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Poteklo"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Prekinjena povezava"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Prekinjanje povezave ..."</string>
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index 7a1bdb5..54d4637 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Mesatare"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"E shpejtë"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Shumë e shpejtë"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Skaduar"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Shkëputur"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Po shkëputet..."</string>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index e809ab9..ab081ae 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Средња"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Брза"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Веома брза"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Истекло"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Веза је прекинута"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Прекидање везе..."</string>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index 52a82db..cab971f 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Medelsnabb"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Snabb"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Mycket snabb"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Har upphört att gälla"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Kopplas ifrån"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Kopplar ifrån…"</string>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index c83388a..df71b82 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Wastani"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Haraka"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Haraka Sana"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Muda umeisha"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Haijaunganishwa"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Inatenganisha..."</string>
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index 856fd4f..084ec16 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"நடுத்தரம்"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"வேகம்"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"மிகவும் வேகமானது"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"காலாவதியாகிவிட்டது"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"தொடர்பு துண்டிக்கப்பட்டது"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"துண்டிக்கிறது..."</string>
diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml
index cc17247..cbcaf1a 100644
--- a/packages/SettingsLib/res/values-te/strings.xml
+++ b/packages/SettingsLib/res/values-te/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"మధ్యస్థం"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"వేగవంతం"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"చాలా వేగవంతం"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"గడువు ముగిసింది"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"డిస్‌కనెక్ట్ చేయబడింది"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"డిస్‌కనెక్ట్ చేస్తోంది..."</string>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index 4feb0d6..fa8caa1 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"ปานกลาง"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"เร็ว"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"เร็วมาก"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"หมดอายุแล้ว"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"ตัดการเชื่อมต่อ"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"กำลังตัดการเชื่อมต่อ..."</string>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index e6963b9..21fe58c 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Katamtaman"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Mabilis"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Napakabilis"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Nag-expire na"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Hindi nakakonekta"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Nadidiskonekta..."</string>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index bd457d3..4e7f38d 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Orta"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Hızlı"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Çok Hızlı"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Süresi sona erdi"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Bağlantı kesildi"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Bağlantı kesiliyor…"</string>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index 36a82ea..9807417 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Середня"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Швидка"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Дуже швидка"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Термін дії минув"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>: <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Роз’єднано"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Відключення..."</string>
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index 50dc72e..e17b0b0 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"متوسط"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"تیز"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"بہت تیز"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"میعاد ختم ہو گئی"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"منقطع"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"منقطع کیا جارہا ہے…"</string>
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index 38edb6d0..ea51eba 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"O‘rtacha"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Tez"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Juda tez"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Muddati tugagan"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Uzildi"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Uzilyapti…"</string>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index e0798aa..0b71a8c 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Trung bình"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Nhanh"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Rất nhanh"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Đã hết hạn"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Đã ngắt kết nối"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Đang ngắt kết nối…"</string>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index 4303615..1805694 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"适中"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"快"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"很快"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"已失效"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"已断开连接"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"正在断开连接..."</string>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index f3b8653..1d217b5 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"適中"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"快"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"非常快"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"已過期"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"已中斷連線"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"正在中斷連線..."</string>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index 53b54c4..ee68665 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"適中"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"快"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"非常快"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"已失效"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"已中斷連線"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"正在中斷連線…"</string>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index 249e73c..820aa77 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -61,8 +61,7 @@
     <string name="speed_label_medium" msgid="9078405312828606976">"Okumaphakathi"</string>
     <string name="speed_label_fast" msgid="2677719134596044051">"Sheshayo"</string>
     <string name="speed_label_very_fast" msgid="8215718029533182439">"Kushesha kakhulu"</string>
-    <!-- no translation found for wifi_passpoint_expired (6540867261754427561) -->
-    <skip />
+    <string name="wifi_passpoint_expired" msgid="6540867261754427561">"Iphelelwe isikhathi"</string>
     <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="bluetooth_disconnected" msgid="7739366554710388701">"Ayixhunyiwe"</string>
     <string name="bluetooth_disconnecting" msgid="7638892134401574338">"Inqamula uxhumano kwi-inthanethi..."</string>
diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml
index a1ef831..80240af 100644
--- a/packages/SettingsLib/res/values/strings.xml
+++ b/packages/SettingsLib/res/values/strings.xml
@@ -609,6 +609,9 @@
     <string name="bluetooth_select_a2dp_codec_sample_rate">Bluetooth Audio Sample Rate</string>
     <!-- UI debug setting: Trigger Bluetooth Audio Codec Selection: Sample Rate -->
     <string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title">Trigger Bluetooth Audio Codec\u000ASelection: Sample Rate</string>
+    <!-- UI debug setting: Label for unsupported Bluetooth Audio Codec. [CHAR LIMIT=none] -->
+    <string name="bluetooth_select_a2dp_codec_type_help_info">Gray-out means not supported by phone
+        or headset</string>
 
     <!-- UI debug setting: Trigger Bluetooth Audio Bits Per Sample Selection -->
     <string name="bluetooth_select_a2dp_codec_bits_per_sample">Bluetooth Audio Bits Per Sample</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractImsStatusPreferenceController.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractImsStatusPreferenceController.java
index a5f4036..4c3e605 100644
--- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractImsStatusPreferenceController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractImsStatusPreferenceController.java
@@ -44,7 +44,7 @@
     private static final String[] CONNECTIVITY_INTENTS = {
             BluetoothAdapter.ACTION_STATE_CHANGED,
             ConnectivityManager.CONNECTIVITY_ACTION,
-            WifiManager.LINK_CONFIGURATION_CHANGED_ACTION,
+            WifiManager.ACTION_LINK_CONFIGURATION_CHANGED,
             WifiManager.NETWORK_STATE_CHANGED_ACTION,
     };
 
diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractIpAddressPreferenceController.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractIpAddressPreferenceController.java
index 24da72e..3bb3a0c 100644
--- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractIpAddressPreferenceController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractIpAddressPreferenceController.java
@@ -42,7 +42,7 @@
 
     private static final String[] CONNECTIVITY_INTENTS = {
             ConnectivityManager.CONNECTIVITY_ACTION,
-            WifiManager.LINK_CONFIGURATION_CHANGED_ACTION,
+            WifiManager.ACTION_LINK_CONFIGURATION_CHANGED,
             WifiManager.NETWORK_STATE_CHANGED_ACTION,
     };
 
diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractWifiMacAddressPreferenceController.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractWifiMacAddressPreferenceController.java
index 097c028..b5f275b 100644
--- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractWifiMacAddressPreferenceController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractWifiMacAddressPreferenceController.java
@@ -44,7 +44,7 @@
 
     private static final String[] CONNECTIVITY_INTENTS = {
             ConnectivityManager.CONNECTIVITY_ACTION,
-            WifiManager.LINK_CONFIGURATION_CHANGED_ACTION,
+            WifiManager.ACTION_LINK_CONFIGURATION_CHANGED,
             WifiManager.NETWORK_STATE_CHANGED_ACTION,
     };
 
diff --git a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
index ea3c1d9..092cbf3 100644
--- a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
@@ -222,7 +222,8 @@
             }
         }
 
-        return TelephonyManager.from(mContext).createForSubscriptionId(subscriptionId);
+        return mContext.getSystemService(
+                TelephonyManager.class).createForSubscriptionId(subscriptionId);
     }
 
     public void setMobileDataEnabled(boolean enabled) {
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
index ab274b5..9518f5c 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
@@ -748,20 +748,7 @@
                 || (mConfig != null && mConfig.shared != config.shared)) {
             return false;
         }
-
-        final int configSecurity = getSecurity(config);
-        final WifiManager wifiManager = getWifiManager();
-        switch (security) {
-            case SECURITY_PSK_SAE_TRANSITION:
-                return configSecurity == SECURITY_PSK
-                        || (wifiManager.isWpa3SaeSupported() && configSecurity == SECURITY_SAE);
-            case SECURITY_OWE_TRANSITION:
-                return configSecurity == SECURITY_NONE
-                        || (wifiManager.isEnhancedOpenSupported()
-                                && configSecurity == SECURITY_OWE);
-            default:
-                return security == configSecurity;
-        }
+        return security == getSecurity(config);
     }
 
     public WifiConfiguration getConfig() {
@@ -1334,34 +1321,10 @@
         mAccessPointListener = listener;
     }
 
-    private static final String sPskSuffix = "," + String.valueOf(SECURITY_PSK);
-    private static final String sSaeSuffix = "," + String.valueOf(SECURITY_SAE);
-    private static final String sPskSaeSuffix = "," + String.valueOf(SECURITY_PSK_SAE_TRANSITION);
-    private static final String sOweSuffix = "," + String.valueOf(SECURITY_OWE);
-    private static final String sOpenSuffix = "," + String.valueOf(SECURITY_NONE);
-    private static final String sOweTransSuffix = "," + String.valueOf(SECURITY_OWE_TRANSITION);
-
     private boolean isKeyEqual(String compareTo) {
         if (mKey == null) {
             return false;
         }
-
-        if (compareTo.endsWith(sPskSuffix) || compareTo.endsWith(sSaeSuffix)) {
-            if (mKey.endsWith(sPskSaeSuffix)) {
-                // Special handling for PSK-SAE transition mode. If the AP has advertised both,
-                // we compare the key with both PSK and SAE for a match.
-                return TextUtils.equals(mKey.substring(0, mKey.lastIndexOf(',')),
-                        compareTo.substring(0, compareTo.lastIndexOf(',')));
-            }
-        }
-        if (compareTo.endsWith(sOpenSuffix) || compareTo.endsWith(sOweSuffix)) {
-            if (mKey.endsWith(sOweTransSuffix)) {
-                // Special handling for OWE/Open networks. If AP advertises OWE in transition mode
-                // and we have an Open network saved, allow this connection to be established.
-                return TextUtils.equals(mKey.substring(0, mKey.lastIndexOf(',')),
-                        compareTo.substring(0, compareTo.lastIndexOf(',')));
-            }
-        }
         return mKey.equals(compareTo);
     }
 
@@ -1698,8 +1661,6 @@
     private static int getSecurity(ScanResult result) {
         if (result.capabilities.contains("WEP")) {
             return SECURITY_WEP;
-        } else if (result.capabilities.contains("PSK+SAE")) {
-            return SECURITY_PSK_SAE_TRANSITION;
         } else if (result.capabilities.contains("SAE")) {
             return SECURITY_SAE;
         } else if (result.capabilities.contains("PSK")) {
@@ -1708,8 +1669,6 @@
             return SECURITY_EAP_SUITE_B;
         } else if (result.capabilities.contains("EAP")) {
             return SECURITY_EAP;
-        } else if (result.capabilities.contains("OWE_TRANSITION")) {
-            return SECURITY_OWE_TRANSITION;
         } else if (result.capabilities.contains("OWE")) {
             return SECURITY_OWE;
         }
@@ -1756,10 +1715,6 @@
             return "SUITE_B";
         } else if (security == SECURITY_OWE) {
             return "OWE";
-        } else if (security == SECURITY_PSK_SAE_TRANSITION) {
-            return "PSK+SAE";
-        } else if (security == SECURITY_OWE_TRANSITION) {
-            return "OWE_TRANSITION";
         }
         return "NONE";
     }
@@ -1937,4 +1892,16 @@
             }
         }
     }
+
+    /**
+     * Lets the caller know if the network was cloned from another network
+     *
+     * @return true if the network is cloned
+     */
+    public boolean isCloned() {
+        if (mConfig == null) {
+            return false;
+        }
+        return mConfig.clonedNetworkConfigKey != null;
+    }
 }
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
index d3bab5f..97fddc0 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
@@ -180,7 +180,7 @@
         filter.addAction(WifiManager.NETWORK_IDS_CHANGED_ACTION);
         filter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);
         filter.addAction(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION);
-        filter.addAction(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION);
+        filter.addAction(WifiManager.ACTION_LINK_CONFIGURATION_CHANGED);
         filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
         filter.addAction(WifiManager.RSSI_CHANGED_ACTION);
 
@@ -866,7 +866,7 @@
 
                 fetchScansAndConfigsAndUpdateAccessPoints();
             } else if (WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION.equals(action)
-                    || WifiManager.LINK_CONFIGURATION_CHANGED_ACTION.equals(action)) {
+                    || WifiManager.ACTION_LINK_CONFIGURATION_CHANGED.equals(action)) {
                 fetchScansAndConfigsAndUpdateAccessPoints();
             } else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) {
                 // TODO(sghuman): Refactor these methods so they cannot result in duplicate
diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java
index 7fac812..942ee4f 100644
--- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java
+++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java
@@ -902,7 +902,7 @@
         tracker.mReceiver.onReceive(
                 mContext, new Intent(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION));
         tracker.mReceiver.onReceive(
-                mContext, new Intent(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION));
+                mContext, new Intent(WifiManager.ACTION_LINK_CONFIGURATION_CHANGED));
 
 
         verify(mockWifiListener, never()).onAccessPointsChanged();
@@ -920,7 +920,7 @@
         tracker.mReceiver.onReceive(
                 mContext, new Intent(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION));
         tracker.mReceiver.onReceive(
-                mContext, new Intent(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION));
+                mContext, new Intent(WifiManager.ACTION_LINK_CONFIGURATION_CHANGED));
 
         verify(mockWifiListener, never()).onAccessPointsChanged();
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/HelpUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/HelpUtilsTest.java
index 4d76331..4811d950 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/HelpUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/HelpUtilsTest.java
@@ -16,11 +16,15 @@
 
 package com.android.settingslib;
 
+import static com.android.settingslib.HelpUtils.MENU_HELP;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -35,6 +39,7 @@
 import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.provider.Settings;
+import android.view.Menu;
 import android.view.MenuItem;
 
 import org.junit.Before;
@@ -171,4 +176,34 @@
         verify(item).setVisible(true);
         verify(item).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
     }
+
+    @Test
+    public void prepareHelpMenuItem_noItem_addItem() {
+        final Menu item = mock(Menu.class);
+        when(item.findItem(MENU_HELP)).thenReturn(null);
+        when(item.add(0, MENU_HELP, 0,
+                com.android.settingslib.widget.R.string.help_feedback_label)).thenReturn(
+                mock(MenuItem.class));
+
+        HelpUtils.prepareHelpMenuItem(mActivity, item, TEST_HELP_URL, "backup_url");
+        HelpUtils.prepareHelpMenuItem(mActivity, item, 0, "backup_url");
+
+        verify(item, times(2)).add(0, MENU_HELP, 0,
+                com.android.settingslib.widget.R.string.help_feedback_label);
+    }
+
+    @Test
+    public void prepareHelpMenuItem_hasItem_notAddItem() {
+        final Menu item = mock(Menu.class);
+        when(item.findItem(MENU_HELP)).thenReturn(mock(MenuItem.class));
+        when(item.add(0, MENU_HELP, 0,
+                com.android.settingslib.widget.R.string.help_feedback_label)).thenReturn(
+                mock(MenuItem.class));
+
+        HelpUtils.prepareHelpMenuItem(mActivity, item, TEST_HELP_URL, "backup_url");
+        HelpUtils.prepareHelpMenuItem(mActivity, item, 0, "backup_url");
+
+        verify(item, never()).add(0, MENU_HELP, 0,
+                com.android.settingslib.widget.R.string.help_feedback_label);
+    }
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/IpAddressPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/IpAddressPreferenceControllerTest.java
index 76a26d9..a83d7e0 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/IpAddressPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/IpAddressPreferenceControllerTest.java
@@ -63,7 +63,7 @@
                 new ConcreteIpAddressPreferenceController(mContext, mLifecycle);
         final List<String> expectedIntents = Arrays.asList(
                 ConnectivityManager.CONNECTIVITY_ACTION,
-                WifiManager.LINK_CONFIGURATION_CHANGED_ACTION,
+                WifiManager.ACTION_LINK_CONFIGURATION_CHANGED,
                 WifiManager.NETWORK_STATE_CHANGED_ACTION);
 
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java
index 7c2f0a8..40b9b13 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java
@@ -84,7 +84,7 @@
     public void testHasIntentFilters() {
         final List<String> expectedIntents = Arrays.asList(
                 ConnectivityManager.CONNECTIVITY_ACTION,
-                WifiManager.LINK_CONFIGURATION_CHANGED_ACTION,
+                WifiManager.ACTION_LINK_CONFIGURATION_CHANGED,
                 WifiManager.NETWORK_STATE_CHANGED_ACTION);
 
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java
index 3da5e76..f7bee30 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java
@@ -75,7 +75,7 @@
     public void setUp() throws RemoteException {
         MockitoAnnotations.initMocks(this);
         when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
-        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
         when(mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE))
                 .thenReturn(mSubscriptionManager);
         when(mContext.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager);
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
index cd64a388..ab433d2 100644
--- a/packages/SystemUI/AndroidManifest.xml
+++ b/packages/SystemUI/AndroidManifest.xml
@@ -232,9 +232,6 @@
     <!-- to read and change hvac values in a car -->
     <uses-permission android:name="android.car.permission.CONTROL_CAR_CLIMATE" />
 
-    <!-- to be able to detect the driving state in a car-->
-    <uses-permission android:name="android.car.permission.CAR_DRIVING_STATE" />
-
     <!-- Permission necessary to change car audio volume through CarAudioManager -->
     <uses-permission android:name="android.car.permission.CAR_CONTROL_AUDIO_VOLUME" />
 
diff --git a/packages/SystemUI/src/com/android/systemui/ActivityIntentHelper.java b/packages/SystemUI/src/com/android/systemui/ActivityIntentHelper.java
index 2b62e04..63840bc 100644
--- a/packages/SystemUI/src/com/android/systemui/ActivityIntentHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/ActivityIntentHelper.java
@@ -24,14 +24,20 @@
 
 import java.util.List;
 
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
 /**
  * Contains useful methods for querying properties of an Activity Intent.
  */
+@Singleton
 public class ActivityIntentHelper {
 
     private final Context mContext;
 
+    @Inject
     public ActivityIntentHelper(Context context) {
+        // TODO: inject a package manager, not a context.
         mContext = context;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java b/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java
index 741c95f..e31e44e 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java
@@ -33,7 +33,6 @@
 import android.view.LayoutInflater;
 
 import com.android.internal.logging.MetricsLogger;
-import com.android.internal.statusbar.IStatusBarService;
 import com.android.internal.widget.LockPatternUtils;
 import com.android.keyguard.ViewMediatorCallback;
 import com.android.systemui.broadcast.BroadcastDispatcher;
@@ -103,14 +102,12 @@
         return Looper.getMainLooper();
     }
 
-    @Singleton
     @Provides
     @BgHandler
     public Handler provideBgHandler(@BgLooper Looper bgLooper) {
         return new Handler(bgLooper);
     }
 
-    @Singleton
     @Provides
     @MainHandler
     public Handler provideMainHandler(@MainLooper Looper mainLooper) {
@@ -143,13 +140,6 @@
         return new DisplayMetrics();
     }
 
-    @Singleton
-    @Provides
-    public IStatusBarService provideIStatusBarService() {
-        return IStatusBarService.Stub.asInterface(
-                ServiceManager.getService(Context.STATUS_BAR_SERVICE));
-    }
-
     /** */
     @Singleton
     @Provides
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java
index fffba8c..0d4cc01 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java
@@ -22,6 +22,7 @@
 import android.app.AlarmManager;
 import android.app.IActivityManager;
 import android.app.IWallpaperManager;
+import android.app.KeyguardManager;
 import android.app.WallpaperManager;
 import android.content.Context;
 import android.content.res.Resources;
@@ -30,10 +31,13 @@
 import android.os.PowerManager;
 import android.os.ServiceManager;
 import android.os.UserHandle;
+import android.service.dreams.DreamService;
+import android.service.dreams.IDreamManager;
 import android.view.IWindowManager;
 import android.view.WindowManager;
 import android.view.WindowManagerGlobal;
 
+import com.android.internal.statusbar.IStatusBarService;
 import com.android.internal.util.LatencyTracker;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.systemui.dagger.qualifiers.BgHandler;
@@ -64,6 +68,20 @@
     }
 
     @Provides
+    @Singleton
+    static IDreamManager provideIDreamManager() {
+        return IDreamManager.Stub.asInterface(
+                ServiceManager.checkService(DreamService.DREAM_SERVICE));
+    }
+
+    @Singleton
+    @Provides
+    static IStatusBarService provideIStatusBarService() {
+        return IStatusBarService.Stub.asInterface(
+                ServiceManager.getService(Context.STATUS_BAR_SERVICE));
+    }
+
+    @Provides
     @Nullable
     static IWallpaperManager provideIWallPaperManager() {
         return IWallpaperManager.Stub.asInterface(
@@ -78,6 +96,12 @@
 
     @Singleton
     @Provides
+    static KeyguardManager provideKeyguardManager(Context context) {
+        return context.getSystemService(KeyguardManager.class);
+    }
+
+    @Singleton
+    @Provides
     static LatencyTracker provideLatencyTracker(Context context) {
         return LatencyTracker.getInstance(context);
     }
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
index 7963203..e790c1d 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
@@ -87,6 +87,7 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
+import java.util.function.Consumer;
 import java.util.function.Function;
 
 import javax.inject.Inject;
@@ -107,7 +108,7 @@
         public Context context;
         public Bitmap image;
         public Uri imageUri;
-        public Runnable finisher;
+        public Consumer<Uri> finisher;
         public Function<PendingIntent, Void> onEditReady;
         public int iconSize;
         public int previewWidth;
@@ -260,7 +261,7 @@
      * Creates a new worker thread and saves the screenshot to the media store.
      */
     private void saveScreenshotInWorkerThread(
-            Runnable finisher, @Nullable Function<PendingIntent, Void> onEditReady) {
+            Consumer<Uri> finisher, @Nullable Function<PendingIntent, Void> onEditReady) {
         SaveImageInBackgroundData data = new SaveImageInBackgroundData();
         data.context = mContext;
         data.image = mScreenBitmap;
@@ -276,15 +277,15 @@
                 .execute();
     }
 
-    private void saveScreenshotInWorkerThread(Runnable finisher) {
+    private void saveScreenshotInWorkerThread(Consumer<Uri> finisher) {
         saveScreenshotInWorkerThread(finisher, null);
     }
 
     /**
      * Takes a screenshot of the current display and shows an animation.
      */
-    private void takeScreenshot(Runnable finisher, boolean statusBarVisible, boolean navBarVisible,
-            Rect crop) {
+    private void takeScreenshot(Consumer<Uri> finisher, boolean statusBarVisible,
+            boolean navBarVisible, Rect crop) {
         int rot = mDisplay.getRotation();
         int width = crop.width();
         int height = crop.height();
@@ -294,7 +295,7 @@
         if (mScreenBitmap == null) {
             notifyScreenshotError(mContext, mNotificationManager,
                     R.string.screenshot_failed_to_capture_text);
-            finisher.run();
+            finisher.accept(null);
             return;
         }
 
@@ -307,7 +308,7 @@
                 statusBarVisible, navBarVisible);
     }
 
-    void takeScreenshot(Runnable finisher, boolean statusBarVisible, boolean navBarVisible) {
+    void takeScreenshot(Consumer<Uri> finisher, boolean statusBarVisible, boolean navBarVisible) {
         mDisplay.getRealMetrics(mDisplayMetrics);
         takeScreenshot(finisher, statusBarVisible, navBarVisible,
                 new Rect(0, 0, mDisplayMetrics.widthPixels, mDisplayMetrics.heightPixels));
@@ -316,7 +317,7 @@
     /**
      * Displays a screenshot selector
      */
-    void takeScreenshotPartial(final Runnable finisher, final boolean statusBarVisible,
+    void takeScreenshotPartial(final Consumer<Uri> finisher, final boolean statusBarVisible,
             final boolean navBarVisible) {
         mWindowManager.addView(mScreenshotLayout, mWindowLayoutParams);
         mScreenshotSelectorView.setOnTouchListener(new View.OnTouchListener() {
@@ -392,8 +393,8 @@
     /**
      * Starts the animation after taking the screenshot
      */
-    private void startAnimation(final Runnable finisher, int w, int h, boolean statusBarVisible,
-            boolean navBarVisible) {
+    private void startAnimation(final Consumer<Uri> finisher, int w, int h,
+            boolean statusBarVisible, boolean navBarVisible) {
         // If power save is on, show a toast so there is some visual indication that a screenshot
         // has been taken.
         PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java b/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java
index 083f971..e9dbe02 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java
@@ -453,7 +453,7 @@
                         mNotificationBuilder.build());
             }
         }
-        mParams.finisher.run();
+        mParams.finisher.accept(mParams.imageUri);
         mParams.clearContext();
     }
 
@@ -462,7 +462,7 @@
         // If we are cancelled while the task is running in the background, we may get null
         // params. The finisher is expected to always be called back, so just use the baked-in
         // params from the ctor in any case.
-        mParams.finisher.run();
+        mParams.finisher.accept(null);
         mParams.clearImage();
         mParams.clearContext();
 
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java b/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java
index fd63506..6243b4b 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java
@@ -18,6 +18,7 @@
 
 import android.app.Service;
 import android.content.Intent;
+import android.net.Uri;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
@@ -27,6 +28,8 @@
 import android.util.Log;
 import android.view.WindowManager;
 
+import java.util.function.Consumer;
+
 import javax.inject.Inject;
 
 public class TakeScreenshotService extends Service {
@@ -39,10 +42,10 @@
         @Override
         public void handleMessage(Message msg) {
             final Messenger callback = msg.replyTo;
-            Runnable finisher = new Runnable() {
+            Consumer<Uri> finisher = new Consumer<Uri>() {
                 @Override
-                public void run() {
-                    Message reply = Message.obtain(null, 1);
+                public void accept(Uri uri) {
+                    Message reply = Message.obtain(null, 1, uri);
                     try {
                         callback.send(reply);
                     } catch (RemoteException e) {
@@ -55,7 +58,7 @@
             // animation and error notification.
             if (!mUserManager.isUserUnlocked()) {
                 Log.w(TAG, "Skipping screenshot because storage is locked!");
-                post(finisher);
+                post(() -> finisher.accept(null));
                 return;
             }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java b/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java
index bc7c22d..9398e6f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SuperStatusBarViewFactory.java
@@ -21,6 +21,8 @@
 import android.view.ViewGroup;
 
 import com.android.systemui.R;
+import com.android.systemui.statusbar.phone.LockIcon;
+import com.android.systemui.statusbar.phone.NotificationPanelView;
 import com.android.systemui.statusbar.phone.StatusBarWindowView;
 import com.android.systemui.util.InjectionInflationController;
 
@@ -66,6 +68,11 @@
         return mStatusBarWindowView;
     }
 
+    /** Gets the {@link LockIcon} inside of {@link R.layout#super_status_bar}. */
+    public LockIcon getLockIcon() {
+        return getStatusBarWindowView().findViewById(R.id.lock_icon);
+    }
+
     /**
      * Gets the inflated {@link NotificationShelf} from
      * {@link R.layout#status_bar_notification_shelf}.
@@ -89,4 +96,13 @@
         }
         return mNotificationShelf;
     }
+
+    public NotificationPanelView getNotificationPanelView() {
+        StatusBarWindowView statusBarWindowView = getStatusBarWindowView();
+        if (statusBarWindowView == null) {
+            return null;
+        }
+
+        return mStatusBarWindowView.findViewById(R.id.notification_panel);
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
index e48e819..9b31234 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
@@ -125,21 +125,22 @@
         return mAnimationRunning;
     }
 
-    private class AnimationRunner extends IRemoteAnimationRunner.Stub {
+    class AnimationRunner extends IRemoteAnimationRunner.Stub {
 
-        private ExpandableNotificationRow mSourceNotification;
-        private final ExpandAnimationParameters mParams = new ExpandAnimationParameters();
+        private final ExpandableNotificationRow mSourceNotification;
+        private final ExpandAnimationParameters mParams;
         private final Rect mWindowCrop = new Rect();
         private final float mNotificationCornerRadius;
         private float mCornerRadius;
         private boolean mIsFullScreenLaunch = true;
         private final SyncRtSurfaceTransactionApplier mSyncRtTransactionApplier;
 
-        AnimationRunner(ExpandableNotificationRow sourceNotification) {
-            mSourceNotification = sourceNotification;
-            mSyncRtTransactionApplier = new SyncRtSurfaceTransactionApplier(sourceNotification);
-            mNotificationCornerRadius = Math.max(sourceNotification.getCurrentTopRoundness(),
-                    sourceNotification.getCurrentBottomRoundness());
+        public AnimationRunner(ExpandableNotificationRow sourceNofitication) {
+            mSourceNotification = sourceNofitication;
+            mParams = new ExpandAnimationParameters();
+            mSyncRtTransactionApplier = new SyncRtSurfaceTransactionApplier(mSourceNotification);
+            mNotificationCornerRadius = Math.max(mSourceNotification.getCurrentTopRoundness(),
+                    mSourceNotification.getCurrentBottomRoundness());
         }
 
         @Override
@@ -154,7 +155,6 @@
                     setAnimationPending(false);
                     invokeCallback(iRemoteAnimationFinishedCallback);
                     mNotificationPanel.collapse(false /* delayed */, 1.0f /* speedUpFactor */);
-                    mSourceNotification = null;
                     return;
                 }
 
@@ -254,7 +254,6 @@
                 mCallback.onExpandAnimationFinished(mIsFullScreenLaunch);
                 applyParamsToNotification(null);
                 applyParamsToNotificationList(null);
-                mSourceNotification = null;
             }
 
         }
@@ -282,7 +281,6 @@
             mSourceNotification.post(() -> {
                 setAnimationPending(false);
                 mCallback.onLaunchAnimationCancelled();
-                mSourceNotification = null;
             });
         }
     };
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java
index 6aee194..063ad85 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java
@@ -88,8 +88,9 @@
     private final PulseExpansionHandler mPulseExpansionHandler;
     private final StatusBarWindowController mStatusBarWindowController;
     private final NotificationWakeUpCoordinator mNotificationWakeUpCoordinator;
+    private final StatusBarWindowViewController mStatusBarWindowViewController;
+    private final LockscreenLockIconController mLockscreenLockIconController;
     private NotificationIconAreaController mNotificationIconAreaController;
-    private StatusBarWindowViewController mStatusBarWindowViewController;
     private StatusBarWindowView mStatusBarWindow;
     private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
     private NotificationPanelView mNotificationPanel;
@@ -110,7 +111,9 @@
             VisualStabilityManager visualStabilityManager,
             PulseExpansionHandler pulseExpansionHandler,
             StatusBarWindowController statusBarWindowController,
-            NotificationWakeUpCoordinator notificationWakeUpCoordinator) {
+            NotificationWakeUpCoordinator notificationWakeUpCoordinator,
+            StatusBarWindowViewController statusBarWindowViewController,
+            LockscreenLockIconController lockscreenLockIconController) {
         super();
         mDozeLog = dozeLog;
         mPowerManager = powerManager;
@@ -129,6 +132,8 @@
         mPulseExpansionHandler = pulseExpansionHandler;
         mStatusBarWindowController = statusBarWindowController;
         mNotificationWakeUpCoordinator = notificationWakeUpCoordinator;
+        mStatusBarWindowViewController = statusBarWindowViewController;
+        mLockscreenLockIconController = lockscreenLockIconController;
     }
 
     // TODO: we should try to not pass status bar in here if we can avoid it.
@@ -138,13 +143,11 @@
      */
     public void initialize(StatusBar statusBar,
             NotificationIconAreaController notificationIconAreaController,
-            StatusBarWindowViewController statusBarWindowViewController,
             StatusBarWindowView statusBarWindow,
             StatusBarKeyguardViewManager statusBarKeyguardViewManager,
             NotificationPanelView notificationPanel, View ambientIndicationContainer) {
         mStatusBar = statusBar;
         mNotificationIconAreaController = notificationIconAreaController;
-        mStatusBarWindowViewController = statusBarWindowViewController;
         mStatusBarWindow = statusBarWindow;
         mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
         mNotificationPanel = notificationPanel;
@@ -262,7 +265,7 @@
                 mKeyguardViewMediator.setPulsing(pulsing);
                 mNotificationPanel.setPulsing(pulsing);
                 mVisualStabilityManager.setPulsing(pulsing);
-                mStatusBarWindowViewController.setPulsing(pulsing);
+                mLockscreenLockIconController.setPulsing(pulsing);
                 mIgnoreTouchWhilePulsing = false;
                 if (mKeyguardUpdateMonitor != null && passiveAuthInterrupt) {
                     mKeyguardUpdateMonitor.onAuthInterruptDetected(pulsing /* active */);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
new file mode 100644
index 0000000..1e35b46
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.phone;
+
+import com.android.systemui.statusbar.SuperStatusBarViewFactory;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+/** Controls the {@link LockIcon} in the lockscreen. */
+@Singleton
+public class LockscreenLockIconController {
+
+    private final LockIcon mLockIcon;
+
+    @Inject
+    public LockscreenLockIconController(SuperStatusBarViewFactory superStatusBarViewFactory) {
+        mLockIcon = superStatusBarViewFactory.getLockIcon();
+    }
+
+    /**
+     * Called whenever the scrims become opaque, transparent or semi-transparent.
+     */
+    public void onScrimVisibilityChanged(Integer scrimsVisible) {
+        if (mLockIcon != null) {
+            mLockIcon.onScrimVisibilityChanged(scrimsVisible);
+        }
+    }
+
+    /**
+     * Propagate {@link StatusBar} pulsing state.
+     */
+    public void setPulsing(boolean pulsing) {
+        if (mLockIcon != null) {
+            mLockIcon.setPulsing(pulsing);
+        }
+    }
+
+    /**
+     * Called when the biometric authentication mode changes.
+     *
+     * @param wakeAndUnlock If the type is {@link BiometricUnlockController#isWakeAndUnlock()}
+     * @param isUnlock      If the type is {@link BiometricUnlockController#isBiometricUnlock()} ()
+     */
+    public void onBiometricAuthModeChanged(boolean wakeAndUnlock, boolean isUnlock) {
+        if (mLockIcon != null) {
+            mLockIcon.onBiometricAuthModeChanged(wakeAndUnlock, isUnlock);
+        }
+    }
+
+    /**
+     * When we're launching an affordance, like double pressing power to open camera.
+     */
+    public void onShowingLaunchAffordanceChanged(Boolean showing) {
+        if (mLockIcon != null) {
+            mLockIcon.onShowingLaunchAffordanceChanged(showing);
+        }
+    }
+
+    /** Sets whether the bouncer is showing. */
+    public void setBouncerShowingScrimmed(boolean bouncerShowing) {
+        if (mLockIcon != null) {
+            mLockIcon.setBouncerShowingScrimmed(bouncerShowing);
+        }
+    }
+
+    /**
+     * When {@link KeyguardBouncer} starts to be dismissed and starts to play its animation.
+     */
+    public void onBouncerPreHideAnimation() {
+        if (mLockIcon != null) {
+            mLockIcon.onBouncerPreHideAnimation();
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index fafdf6a..06183b7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -30,8 +30,6 @@
 import static android.view.WindowInsetsController.APPEARANCE_OPAQUE_TOP_BAR;
 
 import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME;
-import static com.android.systemui.Dependency.BG_HANDLER;
-import static com.android.systemui.Dependency.MAIN_HANDLER;
 import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_ASLEEP;
 import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_AWAKE;
 import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_WAKING;
@@ -123,7 +121,6 @@
 import com.android.internal.statusbar.IStatusBarService;
 import com.android.internal.statusbar.RegisterStatusBarResult;
 import com.android.internal.view.AppearanceRegion;
-import com.android.internal.widget.LockPatternUtils;
 import com.android.keyguard.KeyguardUpdateMonitor;
 import com.android.keyguard.KeyguardUpdateMonitorCallback;
 import com.android.keyguard.ViewMediatorCallback;
@@ -353,12 +350,12 @@
 
     private final Point mCurrentDisplaySize = new Point();
 
-    protected StatusBarWindowViewController mStatusBarWindowViewController;
     protected StatusBarWindowView mStatusBarWindow;
     protected PhoneStatusBarView mStatusBarView;
     private int mStatusBarWindowState = WINDOW_STATE_SHOWING;
     protected StatusBarWindowController mStatusBarWindowController;
     private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
+    private final LockscreenLockIconController mLockscreenLockIconController;
     @VisibleForTesting
     DozeServiceHost mDozeServiceHost;
     private boolean mWakeUpComingFromTouch;
@@ -380,12 +377,14 @@
     private final FalsingManager mFalsingManager;
     private final BroadcastDispatcher mBroadcastDispatcher;
     private final ConfigurationController mConfigurationController;
-    private final StatusBarWindowViewController.Builder mStatusBarWindowViewControllerBuilder;
+    private final StatusBarWindowViewController mStatusBarWindowViewController;
     private final DozeParameters mDozeParameters;
     private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
     private final PluginManager mPluginManager;
     private final RemoteInputUriController mRemoteInputUriController;
     private final Optional<Divider> mDividerOptional;
+    private final StatusBarNotificationActivityStarter.Builder
+            mStatusBarNotificationActivityStarterBuilder;
     private final SuperStatusBarViewFactory mSuperStatusBarViewFactory;
     private final LightsOutNotifController mLightsOutNotifController;
     private final DismissCallbackRegistry mDismissCallbackRegistry;
@@ -660,7 +659,8 @@
             NotificationListener notificationListener,
             ConfigurationController configurationController,
             StatusBarWindowController statusBarWindowController,
-            StatusBarWindowViewController.Builder statusBarWindowViewControllerBuilder,
+            StatusBarWindowViewController statusBarWindowViewController,
+            LockscreenLockIconController lockscreenLockIconController,
             DozeParameters dozeParameters,
             ScrimController scrimController,
             @Nullable KeyguardLiftController keyguardLiftController,
@@ -677,6 +677,8 @@
             RemoteInputUriController remoteInputUriController,
             Optional<Divider> dividerOptional,
             LightsOutNotifController lightsOutNotifController,
+            StatusBarNotificationActivityStarter.Builder
+                    statusBarNotificationActivityStarterBuilder,
             SuperStatusBarViewFactory superStatusBarViewFactory,
             StatusBarKeyguardViewManager statusBarKeyguardViewManager,
             ViewMediatorCallback viewMediatorCallback,
@@ -730,7 +732,8 @@
         mNotificationListener = notificationListener;
         mConfigurationController = configurationController;
         mStatusBarWindowController = statusBarWindowController;
-        mStatusBarWindowViewControllerBuilder = statusBarWindowViewControllerBuilder;
+        mStatusBarWindowViewController = statusBarWindowViewController;
+        mLockscreenLockIconController = lockscreenLockIconController;
         mDozeServiceHost = dozeServiceHost;
         mPowerManager = powerManager;
         mDozeParameters = dozeParameters;
@@ -746,7 +749,7 @@
         mPluginManager = pluginManager;
         mRemoteInputUriController = remoteInputUriController;
         mDividerOptional = dividerOptional;
-
+        mStatusBarNotificationActivityStarterBuilder = statusBarNotificationActivityStarterBuilder;
         mSuperStatusBarViewFactory = superStatusBarViewFactory;
         mLightsOutNotifController =  lightsOutNotifController;
         mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
@@ -892,7 +895,7 @@
 
         mKeyguardUpdateMonitor.registerCallback(mUpdateCallback);
         mDozeServiceHost.initialize(this, mNotificationIconAreaController,
-                mStatusBarWindowViewController, mStatusBarWindow, mStatusBarKeyguardViewManager,
+                mStatusBarWindow, mStatusBarKeyguardViewManager,
                 mNotificationPanel, mAmbientIndicationContainer);
 
         Dependency.get(ActivityStarterDelegate.class).setActivityStarterImpl(this);
@@ -965,7 +968,7 @@
 
         // TODO: Deal with the ugliness that comes from having some of the statusbar broken out
         // into fragments, but the rest here, it leaves some awkward lifecycle and whatnot.
-        mNotificationPanel = mStatusBarWindow.findViewById(R.id.notification_panel);
+        mNotificationPanel = mSuperStatusBarViewFactory.getNotificationPanelView();
 
         mStackScroller = mStatusBarWindow.findViewById(R.id.notification_stack_scroller);
         NotificationListContainer notifListContainer = (NotificationListContainer) mStackScroller;
@@ -1091,7 +1094,7 @@
         mScrimController.setScrimVisibleListener(scrimsVisible -> {
             mStatusBarWindowController.setScrimsVisibility(scrimsVisible);
             if (mStatusBarWindow != null) {
-                mStatusBarWindowViewController.onScrimVisibilityChanged(scrimsVisible);
+                mLockscreenLockIconController.onScrimVisibilityChanged(scrimsVisible);
             }
         });
         mScrimController.attachViews(scrimBehind, scrimInFront, scrimForBubble);
@@ -1109,7 +1112,7 @@
         }
 
         mNotificationPanel.setLaunchAffordanceListener(
-                mStatusBarWindowViewController::onShowingLaunchAffordanceChanged);
+                mLockscreenLockIconController::onShowingLaunchAffordanceChanged);
 
         // Set up the quick settings tile panel
         View container = mStatusBarWindow.findViewById(R.id.qs_frame);
@@ -1226,6 +1229,7 @@
                         mStatusBarStateController,
                         mNotificationLogger);
 
+        // TODO: inject this.
         mPresenter = new StatusBarNotificationPresenter(mContext, mNotificationPanel,
                 mHeadsUpManager, mStatusBarWindow, mStackScroller, mDozeScrimController,
                 mScrimController, mActivityLaunchAnimator, mDynamicPrivacyController,
@@ -1240,20 +1244,12 @@
         mNotificationShelf.setOnActivatedListener(mPresenter);
         mRemoteInputManager.getController().addCallback(mStatusBarWindowController);
 
-        final StatusBarRemoteInputCallback mStatusBarRemoteInputCallback =
-                (StatusBarRemoteInputCallback) Dependency.get(
-                        NotificationRemoteInputManager.Callback.class);
-        final ActivityStarter activityStarter = Dependency.get(ActivityStarter.class);
-
-        mNotificationActivityStarter = new StatusBarNotificationActivityStarter(mContext,
-                mCommandQueue, mAssistManagerLazy.get(), mNotificationPanel, mPresenter,
-                mEntryManager, mHeadsUpManager, activityStarter, mActivityLaunchAnimator,
-                mBarService, mStatusBarStateController, mKeyguardManager, mDreamManager,
-                mRemoteInputManager, mStatusBarRemoteInputCallback, mGroupManager,
-                mLockscreenUserManager, this, mKeyguardStateController,
-                mNotificationInterruptionStateProvider, mMetricsLogger,
-                new LockPatternUtils(mContext), Dependency.get(MAIN_HANDLER),
-                Dependency.get(BG_HANDLER), mActivityIntentHelper, mBubbleController);
+        mNotificationActivityStarter =
+                mStatusBarNotificationActivityStarterBuilder
+                        .setShadeController(this)
+                        .setActivityLaunchAnimator(mActivityLaunchAnimator)
+                        .setNotificationPresenter(mPresenter)
+                        .build();
 
         mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);
 
@@ -1386,9 +1382,7 @@
 
     protected void inflateStatusBarWindow(Context context) {
         mStatusBarWindow = mSuperStatusBarViewFactory.getStatusBarWindowView();
-        mStatusBarWindowViewController = mStatusBarWindowViewControllerBuilder
-                .setShadeController(this)
-                .build();
+        mStatusBarWindowViewController.setupExpandedStatusBar();
     }
 
     protected void startKeyguard() {
@@ -3693,7 +3687,7 @@
         mBouncerShowing = bouncerShowing;
         mKeyguardBypassController.setBouncerShowing(bouncerShowing);
         mPulseExpansionHandler.setBouncerShowing(bouncerShowing);
-        mStatusBarWindowViewController.setBouncerShowingScrimmed(isBouncerShowingScrimmed());
+        mLockscreenLockIconController.setBouncerShowingScrimmed(isBouncerShowingScrimmed());
         if (mStatusBarView != null) mStatusBarView.setBouncerShowing(bouncerShowing);
         updateHideIconsForBouncer(true /* animate */);
         mCommandQueue.recomputeDisableFlags(mDisplayId, true /* animate */);
@@ -3944,7 +3938,7 @@
     public void notifyBiometricAuthModeChanged() {
         mDozeServiceHost.updateDozing();
         updateScrimController();
-        mStatusBarWindowViewController.onBiometricAuthModeChanged(
+        mLockscreenLockIconController.onBiometricAuthModeChanged(
                 mBiometricUnlockController.isWakeAndUnlock(),
                 mBiometricUnlockController.isBiometricUnlock());
     }
@@ -4341,7 +4335,7 @@
      */
     public void onBouncerPreHideAnimation() {
         mNotificationPanel.onBouncerPreHideAnimation();
-        mStatusBarWindowViewController.onBouncerPreHideAnimation();
+        mLockscreenLockIconController.onBouncerPreHideAnimation();
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java
index 88f1c63..5d69409 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java
@@ -143,7 +143,8 @@
             NotificationListener notificationListener,
             ConfigurationController configurationController,
             StatusBarWindowController statusBarWindowController,
-            StatusBarWindowViewController.Builder statusBarWindowViewControllerBuilder,
+            StatusBarWindowViewController statusBarWindowViewController,
+            LockscreenLockIconController lockscreenLockIconController,
             DozeParameters dozeParameters,
             ScrimController scrimController,
             @Nullable KeyguardLiftController keyguardLiftController,
@@ -160,6 +161,8 @@
             RemoteInputUriController remoteInputUriController,
             Optional<Divider> dividerOptional,
             LightsOutNotifController lightsOutNotifController,
+            StatusBarNotificationActivityStarter.Builder
+                    statusBarNotificationActivityStarterBuilder,
             SuperStatusBarViewFactory superStatusBarViewFactory,
             StatusBarKeyguardViewManager statusBarKeyguardViewManager,
             ViewMediatorCallback viewMediatorCallback,
@@ -214,7 +217,8 @@
                 notificationListener,
                 configurationController,
                 statusBarWindowController,
-                statusBarWindowViewControllerBuilder,
+                statusBarWindowViewController,
+                lockscreenLockIconController,
                 dozeParameters,
                 scrimController,
                 keyguardLiftController,
@@ -231,6 +235,7 @@
                 remoteInputUriController,
                 dividerOptional,
                 lightsOutNotifController,
+                statusBarNotificationActivityStarterBuilder,
                 superStatusBarViewFactory,
                 statusBarKeyguardViewManager,
                 viewMediatorCallback,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java
index b340813..863874e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java
@@ -52,6 +52,8 @@
 import com.android.systemui.UiOffloadThread;
 import com.android.systemui.assist.AssistManager;
 import com.android.systemui.bubbles.BubbleController;
+import com.android.systemui.dagger.qualifiers.BgHandler;
+import com.android.systemui.dagger.qualifiers.MainHandler;
 import com.android.systemui.plugins.ActivityStarter;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.statusbar.CommandQueue;
@@ -60,6 +62,7 @@
 import com.android.systemui.statusbar.NotificationRemoteInputManager;
 import com.android.systemui.statusbar.RemoteInputController;
 import com.android.systemui.statusbar.StatusBarState;
+import com.android.systemui.statusbar.SuperStatusBarViewFactory;
 import com.android.systemui.statusbar.notification.ActivityLaunchAnimator;
 import com.android.systemui.statusbar.notification.NotificationActivityStarter;
 import com.android.systemui.statusbar.notification.NotificationEntryListener;
@@ -71,6 +74,11 @@
 import com.android.systemui.statusbar.policy.HeadsUpUtil;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
 
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+import dagger.Lazy;
+
 /**
  * Status bar implementation of {@link NotificationActivityStarter}.
  */
@@ -79,7 +87,7 @@
     private static final String TAG = "NotifActivityStarter";
     protected static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
-    private final AssistManager mAssistManager;
+    private final Lazy<AssistManager> mAssistManagerLazy;
     private final NotificationGroupManager mGroupManager;
     private final StatusBarRemoteInputCallback mStatusBarRemoteInputCallback;
     private final NotificationRemoteInputManager mRemoteInputManager;
@@ -108,32 +116,20 @@
 
     private boolean mIsCollapsingToShowActivityOverLockscreen;
 
-    public StatusBarNotificationActivityStarter(Context context,
-            CommandQueue commandQueue,
-            AssistManager assistManager,
-            NotificationPanelView panel,
-            NotificationPresenter presenter,
-            NotificationEntryManager entryManager,
-            HeadsUpManagerPhone headsUpManager,
-            ActivityStarter activityStarter,
-            ActivityLaunchAnimator activityLaunchAnimator,
-            IStatusBarService statusBarService,
-            StatusBarStateController statusBarStateController,
-            KeyguardManager keyguardManager,
-            IDreamManager dreamManager,
-            NotificationRemoteInputManager remoteInputManager,
-            StatusBarRemoteInputCallback remoteInputCallback,
-            NotificationGroupManager groupManager,
+    private StatusBarNotificationActivityStarter(Context context, CommandQueue commandQueue,
+            Lazy<AssistManager> assistManagerLazy, NotificationPanelView panel,
+            NotificationPresenter presenter, NotificationEntryManager entryManager,
+            HeadsUpManagerPhone headsUpManager, ActivityStarter activityStarter,
+            ActivityLaunchAnimator activityLaunchAnimator, IStatusBarService statusBarService,
+            StatusBarStateController statusBarStateController, KeyguardManager keyguardManager,
+            IDreamManager dreamManager, NotificationRemoteInputManager remoteInputManager,
+            StatusBarRemoteInputCallback remoteInputCallback, NotificationGroupManager groupManager,
             NotificationLockscreenUserManager lockscreenUserManager,
-            ShadeController shadeController,
-            KeyguardStateController keyguardStateController,
+            ShadeController shadeController, KeyguardStateController keyguardStateController,
             NotificationInterruptionStateProvider notificationInterruptionStateProvider,
-            MetricsLogger metricsLogger,
-            LockPatternUtils lockPatternUtils,
-            Handler mainThreadHandler,
-            Handler backgroundHandler,
-            ActivityIntentHelper activityIntentHelper,
-            BubbleController bubbleController) {
+            MetricsLogger metricsLogger, LockPatternUtils lockPatternUtils,
+            Handler mainThreadHandler, Handler backgroundHandler,
+            ActivityIntentHelper activityIntentHelper, BubbleController bubbleController) {
         mContext = context;
         mNotificationPanel = panel;
         mPresenter = presenter;
@@ -152,7 +148,7 @@
         mStatusBarStateController = statusBarStateController;
         mNotificationInterruptionStateProvider = notificationInterruptionStateProvider;
         mMetricsLogger = metricsLogger;
-        mAssistManager = assistManager;
+        mAssistManagerLazy = assistManagerLazy;
         mGroupManager = groupManager;
         mLockPatternUtils = lockPatternUtils;
         mBackgroundHandler = backgroundHandler;
@@ -318,7 +314,7 @@
             startNotificationIntent(intent, fillInIntent, row, wasOccluded, isActivityIntent);
         }
         if (isActivityIntent || isBubble) {
-            mAssistManager.hideAssist();
+            mAssistManagerLazy.get().hideAssist();
         }
         if (shouldCollapse()) {
             collapseOnMainThread();
@@ -490,4 +486,128 @@
             }
         });
     }
+
+    /**
+     * Public builder for {@link StatusBarNotificationActivityStarter}.
+     */
+    @Singleton
+    public static class Builder {
+        private final Context mContext;
+        private final CommandQueue mCommandQueue;
+        private final Lazy<AssistManager> mAssistManagerLazy;
+        private final NotificationEntryManager mEntryManager;
+        private final HeadsUpManagerPhone mHeadsUpManager;
+        private final ActivityStarter mActivityStarter;
+        private final IStatusBarService mStatusBarService;
+        private final StatusBarStateController mStatusBarStateController;
+        private final KeyguardManager mKeyguardManager;
+        private final IDreamManager mDreamManager;
+        private final NotificationRemoteInputManager mRemoteInputManager;
+        private final StatusBarRemoteInputCallback mRemoteInputCallback;
+        private final NotificationGroupManager mGroupManager;
+        private final NotificationLockscreenUserManager mLockscreenUserManager;
+        private final KeyguardStateController mKeyguardStateController;
+        private final NotificationInterruptionStateProvider mNotificationInterruptionStateProvider;
+        private final MetricsLogger mMetricsLogger;
+        private final LockPatternUtils mLockPatternUtils;
+        private final Handler mMainThreadHandler;
+        private final Handler mBackgroundHandler;
+        private final ActivityIntentHelper mActivityIntentHelper;
+        private final BubbleController mBubbleController;
+        private final SuperStatusBarViewFactory mSuperStatusBarViewFactory;
+        private ShadeController mShadeController;
+        private NotificationPresenter mNotificationPresenter;
+        private ActivityLaunchAnimator mActivityLaunchAnimator;
+
+        @Inject
+        public Builder(Context context,
+                CommandQueue commandQueue,
+                Lazy<AssistManager> assistManagerLazy,
+                NotificationEntryManager entryManager,
+                HeadsUpManagerPhone headsUpManager,
+                ActivityStarter activityStarter,
+                IStatusBarService statusBarService,
+                StatusBarStateController statusBarStateController,
+                KeyguardManager keyguardManager,
+                IDreamManager dreamManager,
+                NotificationRemoteInputManager remoteInputManager,
+                StatusBarRemoteInputCallback remoteInputCallback,
+                NotificationGroupManager groupManager,
+                NotificationLockscreenUserManager lockscreenUserManager,
+                KeyguardStateController keyguardStateController,
+                NotificationInterruptionStateProvider notificationInterruptionStateProvider,
+                MetricsLogger metricsLogger,
+                LockPatternUtils lockPatternUtils,
+                @MainHandler Handler mainThreadHandler,
+                @BgHandler Handler backgroundHandler,
+                ActivityIntentHelper activityIntentHelper,
+                BubbleController bubbleController,
+                SuperStatusBarViewFactory superStatusBarViewFactory) {
+            mContext = context;
+            mCommandQueue = commandQueue;
+            mAssistManagerLazy = assistManagerLazy;
+            mEntryManager = entryManager;
+            mHeadsUpManager = headsUpManager;
+            mActivityStarter = activityStarter;
+            mStatusBarService = statusBarService;
+            mStatusBarStateController = statusBarStateController;
+            mKeyguardManager = keyguardManager;
+            mDreamManager = dreamManager;
+            mRemoteInputManager = remoteInputManager;
+            mRemoteInputCallback = remoteInputCallback;
+            mGroupManager = groupManager;
+            mLockscreenUserManager = lockscreenUserManager;
+            mKeyguardStateController = keyguardStateController;
+            mNotificationInterruptionStateProvider = notificationInterruptionStateProvider;
+            mMetricsLogger = metricsLogger;
+            mLockPatternUtils = lockPatternUtils;
+            mMainThreadHandler = mainThreadHandler;
+            mBackgroundHandler = backgroundHandler;
+            mActivityIntentHelper = activityIntentHelper;
+            mBubbleController = bubbleController;
+            mSuperStatusBarViewFactory = superStatusBarViewFactory;
+        }
+        public Builder setShadeController(ShadeController shadeController) {
+            mShadeController = shadeController;
+            return this;
+        }
+
+        public Builder setNotificationPresenter(NotificationPresenter notificationPresenter) {
+            mNotificationPresenter = notificationPresenter;
+            return this;
+        }
+
+        public Builder setActivityLaunchAnimator(ActivityLaunchAnimator activityLaunchAnimator) {
+            mActivityLaunchAnimator = activityLaunchAnimator;
+            return this;
+        }
+
+        public StatusBarNotificationActivityStarter build() {
+            return new StatusBarNotificationActivityStarter(mContext,
+                    mCommandQueue, mAssistManagerLazy,
+                    mSuperStatusBarViewFactory.getNotificationPanelView(),
+                    mNotificationPresenter,
+                    mEntryManager,
+                    mHeadsUpManager,
+                    mActivityStarter,
+                    mActivityLaunchAnimator,
+                    mStatusBarService,
+                    mStatusBarStateController,
+                    mKeyguardManager,
+                    mDreamManager,
+                    mRemoteInputManager,
+                    mRemoteInputCallback,
+                    mGroupManager,
+                    mLockscreenUserManager,
+                    mShadeController,
+                    mKeyguardStateController,
+                    mNotificationInterruptionStateProvider,
+                    mMetricsLogger,
+                    mLockPatternUtils,
+                    mMainThreadHandler,
+                    mBackgroundHandler,
+                    mActivityIntentHelper,
+                    mBubbleController);
+        }
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java
index 322b23f..3e6ba4d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java
@@ -50,6 +50,8 @@
 import javax.inject.Inject;
 import javax.inject.Singleton;
 
+import dagger.Lazy;
+
 /**
  */
 @Singleton
@@ -60,7 +62,7 @@
     private final SysuiStatusBarStateController mStatusBarStateController;
     private final NotificationLockscreenUserManager mLockscreenUserManager;
     private final ActivityStarter mActivityStarter;
-    private final ShadeController mShadeController;
+    private final Lazy<ShadeController> mShadeControllerLazy;
     private final Context mContext;
     private final ActivityIntentHelper mActivityIntentHelper;
     private final NotificationGroupManager mGroupManager;
@@ -79,7 +81,7 @@
             NotificationLockscreenUserManager notificationLockscreenUserManager,
             KeyguardStateController keyguardStateController,
             StatusBarStateController statusBarStateController,
-            ActivityStarter activityStarter, ShadeController shadeController,
+            ActivityStarter activityStarter, Lazy<ShadeController> shadeControllerLazy,
             CommandQueue commandQueue) {
         mContext = context;
         mContext.registerReceiverAsUser(mChallengeReceiver, UserHandle.ALL,
@@ -87,7 +89,7 @@
         mLockscreenUserManager = notificationLockscreenUserManager;
         mKeyguardStateController = keyguardStateController;
         mStatusBarStateController = (SysuiStatusBarStateController) statusBarStateController;
-        mShadeController = shadeController;
+        mShadeControllerLazy = shadeControllerLazy;
         mActivityStarter = activityStarter;
         mStatusBarStateController.addCallback(this);
         mKeyguardManager = context.getSystemService(KeyguardManager.class);
@@ -116,7 +118,7 @@
         if (!row.isPinned()) {
             mStatusBarStateController.setLeaveOpenOnKeyguardHide(true);
         }
-        mShadeController.showBouncer(true /* scrimmed */);
+        mShadeControllerLazy.get().showBouncer(true /* scrimmed */);
         mPendingRemoteInputView = clicked;
     }
 
@@ -162,8 +164,8 @@
                     });
                 }
             };
-            mShadeController.postOnShadeExpanded(clickPendingViewRunnable);
-            mShadeController.instantExpandNotificationsPanel();
+            mShadeControllerLazy.get().postOnShadeExpanded(clickPendingViewRunnable);
+            mShadeControllerLazy.get().instantExpandNotificationsPanel();
         }
     }
 
@@ -251,7 +253,7 @@
                 boolean handled = defaultHandler.handleClick();
 
                 // close the shade if it was open and maybe wait for activity start.
-                return handled && mShadeController.closeShadeIfOpen();
+                return handled && mShadeControllerLazy.get().closeShadeIfOpen();
             }, null, afterKeyguardGone);
             return true;
         } else {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowViewController.java
index 6d6a1fe..feac5da 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowViewController.java
@@ -38,7 +38,6 @@
 import com.android.systemui.dock.DockManager;
 import com.android.systemui.doze.DozeLog;
 import com.android.systemui.plugins.FalsingManager;
-import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.shared.plugins.PluginManager;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.DragDownHelper;
@@ -58,21 +57,40 @@
 import java.io.PrintWriter;
 
 import javax.inject.Inject;
+import javax.inject.Singleton;
+
+import dagger.Lazy;
 
 /**
  * Controller for {@link StatusBarWindowView}.
  */
+@Singleton
 public class StatusBarWindowViewController {
-    private final StatusBarWindowView mView;
+    private final InjectionInflationController mInjectionInflationController;
+    private final NotificationWakeUpCoordinator mCoordinator;
+    private final PulseExpansionHandler mPulseExpansionHandler;
+    private final DynamicPrivacyController mDynamicPrivacyController;
+    private final KeyguardBypassController mBypassController;
+    private final PluginManager mPluginManager;
     private final FalsingManager mFalsingManager;
-    private final GestureDetector mGestureDetector;
+    private final TunerService mTunerService;
+    private final NotificationLockscreenUserManager mNotificationLockscreenUserManager;
+    private final NotificationEntryManager mNotificationEntryManager;
+    private final KeyguardStateController mKeyguardStateController;
+    private final SysuiStatusBarStateController mStatusBarStateController;
+    private final DozeLog mDozeLog;
+    private final DozeParameters mDozeParameters;
+    private final CommandQueue mCommandQueue;
+    private final StatusBarWindowView mView;
+    private final Lazy<ShadeController> mShadeControllerLazy;
+
+    private GestureDetector mGestureDetector;
     private View mBrightnessMirror;
     private boolean mTouchActive;
     private boolean mTouchCancelled;
     private boolean mExpandAnimationPending;
     private boolean mExpandAnimationRunning;
     private NotificationStackScrollLayout mStackScrollLayout;
-    private LockIcon mLockIcon;
     private PhoneStatusBarView mStatusBarView;
     private StatusBar mService;
     private DragDownHelper mDragDownHelper;
@@ -81,8 +99,8 @@
     private boolean mExpandingBelowNotch;
     private final DockManager mDockManager;
 
-    private StatusBarWindowViewController(
-            StatusBarWindowView view,
+    @Inject
+    public StatusBarWindowViewController(
             InjectionInflationController injectionInflationController,
             NotificationWakeUpCoordinator coordinator,
             PulseExpansionHandler pulseExpansionHandler,
@@ -91,7 +109,6 @@
             FalsingManager falsingManager,
             PluginManager pluginManager,
             TunerService tunerService,
-            ShadeController shadeController,
             NotificationLockscreenUserManager notificationLockscreenUserManager,
             NotificationEntryManager notificationEntryManager,
             KeyguardStateController keyguardStateController,
@@ -99,47 +116,68 @@
             DozeLog dozeLog,
             DozeParameters dozeParameters,
             CommandQueue commandQueue,
+            SuperStatusBarViewFactory superStatusBarViewFactory,
+            Lazy<ShadeController> shadeControllerLazy,
             DockManager dockManager) {
-        mView = view;
+        mInjectionInflationController = injectionInflationController;
+        mCoordinator = coordinator;
+        mPulseExpansionHandler = pulseExpansionHandler;
+        mDynamicPrivacyController = dynamicPrivacyController;
+        mBypassController = bypassController;
         mFalsingManager = falsingManager;
+        mPluginManager = pluginManager;
+        mTunerService = tunerService;
+        mNotificationLockscreenUserManager = notificationLockscreenUserManager;
+        mNotificationEntryManager = notificationEntryManager;
+        mKeyguardStateController = keyguardStateController;
+        mStatusBarStateController = statusBarStateController;
+        mDozeLog = dozeLog;
+        mDozeParameters = dozeParameters;
+        mCommandQueue = commandQueue;
+        mView = superStatusBarViewFactory.getStatusBarWindowView();
+        mShadeControllerLazy = shadeControllerLazy;
         mDockManager = dockManager;
 
+        // This view is not part of the newly inflated expanded status bar.
+        mBrightnessMirror = mView.findViewById(R.id.brightness_mirror);
+    }
+
+    /** Inflates the {@link R.layout#status_bar_expanded} layout and sets it up. */
+    public void setupExpandedStatusBar() {
         // TODO: create controller for NotificationPanelView
         NotificationPanelView notificationPanelView = new NotificationPanelView(
-                view.getContext(),
+                mView.getContext(),
                 null,
-                injectionInflationController,
-                coordinator,
-                pulseExpansionHandler,
-                dynamicPrivacyController,
-                bypassController,
-                falsingManager,
-                pluginManager,
-                shadeController,
-                notificationLockscreenUserManager,
-                notificationEntryManager,
-                keyguardStateController,
-                statusBarStateController,
-                dozeLog,
-                dozeParameters,
-                commandQueue);
+                mInjectionInflationController,
+                mCoordinator,
+                mPulseExpansionHandler,
+                mDynamicPrivacyController,
+                mBypassController,
+                mFalsingManager,
+                mPluginManager,
+                mShadeControllerLazy.get(),
+                mNotificationLockscreenUserManager,
+                mNotificationEntryManager,
+                mKeyguardStateController,
+                mStatusBarStateController,
+                mDozeLog,
+                mDozeParameters,
+                mCommandQueue);
         ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(
                 ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
         notificationPanelView.setVisibility(View.INVISIBLE);
         notificationPanelView.setId(R.id.notification_panel);
-        LayoutInflater li = injectionInflationController.injectable(
+        LayoutInflater li = mInjectionInflationController.injectable(
                 LayoutInflater.from(mView.getContext()));
 
         li.inflate(R.layout.status_bar_expanded, notificationPanelView);
         notificationPanelView.onChildrenAttached();
 
-        ViewStub statusBarExpanded = view.findViewById(R.id.status_bar_expanded);
+        ViewStub statusBarExpanded = mView.findViewById(R.id.status_bar_expanded);
         mView.addView(notificationPanelView, mView.indexOfChild(statusBarExpanded), lp);
         mView.removeView(statusBarExpanded);
 
         mStackScrollLayout = mView.findViewById(R.id.notification_stack_scroller);
-        mLockIcon = mView.findViewById(R.id.lock_icon);
-        mBrightnessMirror = mView.findViewById(R.id.brightness_mirror);
 
         TunerService.Tunable tunable = (key, newValue) -> {
             AmbientDisplayConfiguration configuration =
@@ -153,7 +191,7 @@
                     mSingleTapEnabled = configuration.tapGestureEnabled(UserHandle.USER_CURRENT);
             }
         };
-        tunerService.addTunable(tunable,
+        mTunerService.addTunable(tunable,
                 Settings.Secure.DOZE_DOUBLE_TAP_GESTURE,
                 Settings.Secure.DOZE_TAP_SCREEN_GESTURE);
 
@@ -225,7 +263,7 @@
                     }
                 }
                 if (isDown) {
-                    getStackScrollLayout().closeControlsIfOutsideTouch(ev);
+                    mStackScrollLayout.closeControlsIfOutsideTouch(ev);
                 }
                 if (mService.isDozing()) {
                     mService.mDozeScrimController.extendPulse();
@@ -266,10 +304,9 @@
 
             @Override
             public void didIntercept(MotionEvent ev) {
-                NotificationStackScrollLayout stackScrollLayout = getStackScrollLayout();
                 MotionEvent cancellation = MotionEvent.obtain(ev);
                 cancellation.setAction(MotionEvent.ACTION_CANCEL);
-                stackScrollLayout.onInterceptTouchEvent(cancellation);
+                mStackScrollLayout.onInterceptTouchEvent(cancellation);
                 notificationPanelView.onInterceptTouchEvent(cancellation);
                 cancellation.recycle();
             }
@@ -347,6 +384,13 @@
             public void onChildViewRemoved(View parent, View child) {
             }
         });
+
+        ExpandHelper.Callback expandHelperCallback = mStackScrollLayout.getExpandHelperCallback();
+        DragDownHelper.DragDownCallback dragDownCallback = mStackScrollLayout.getDragDownCallback();
+        setDragDownHelper(
+                new DragDownHelper(
+                        mView.getContext(), mView, expandHelperCallback,
+                        dragDownCallback, mFalsingManager));
     }
 
     public StatusBarWindowView getView() {
@@ -389,44 +433,8 @@
     }
 
     public void cancelExpandHelper() {
-        NotificationStackScrollLayout stackScrollLayout = getStackScrollLayout();
-        if (stackScrollLayout != null) {
-            stackScrollLayout.cancelExpandHelper();
-        }
-    }
-
-    @VisibleForTesting
-    protected NotificationStackScrollLayout getStackScrollLayout() {
-        return mStackScrollLayout;
-    }
-
-    /**
-     * Called whenever the scrims become opaque, transparent or semi-transparent.
-     */
-    public void onScrimVisibilityChanged(Integer scrimsVisible) {
-        if (mLockIcon != null) {
-            mLockIcon.onScrimVisibilityChanged(scrimsVisible);
-        }
-    }
-
-    /**
-     * Propagate {@link StatusBar} pulsing state.
-     */
-    public void setPulsing(boolean pulsing) {
-        if (mLockIcon != null) {
-            mLockIcon.setPulsing(pulsing);
-        }
-    }
-
-    /**
-     * Called when the biometric authentication mode changes.
-     *
-     * @param wakeAndUnlock If the type is {@link BiometricUnlockController#isWakeAndUnlock()}
-     * @param isUnlock      If the type is {@link BiometricUnlockController#isBiometricUnlock()} ()
-     */
-    public void onBiometricAuthModeChanged(boolean wakeAndUnlock, boolean isUnlock) {
-        if (mLockIcon != null) {
-            mLockIcon.onBiometricAuthModeChanged(wakeAndUnlock, isUnlock);
+        if (mStackScrollLayout != null) {
+            mStackScrollLayout.cancelExpandHelper();
         }
     }
 
@@ -436,138 +444,10 @@
 
     public void setService(StatusBar statusBar) {
         mService = statusBar;
-        NotificationStackScrollLayout stackScrollLayout = getStackScrollLayout();
-        ExpandHelper.Callback expandHelperCallback = stackScrollLayout.getExpandHelperCallback();
-        DragDownHelper.DragDownCallback dragDownCallback = stackScrollLayout.getDragDownCallback();
-        setDragDownHelper(
-                new DragDownHelper(
-                        mView.getContext(), mView, expandHelperCallback,
-                        dragDownCallback, mFalsingManager));
     }
 
     @VisibleForTesting
     void setDragDownHelper(DragDownHelper dragDownHelper) {
         mDragDownHelper = dragDownHelper;
     }
-
-    /**
-     * When we're launching an affordance, like double pressing power to open camera.
-     */
-    public void onShowingLaunchAffordanceChanged(Boolean showing) {
-        if (mLockIcon != null) {
-            mLockIcon.onShowingLaunchAffordanceChanged(showing);
-        }
-    }
-
-    public void setBouncerShowingScrimmed(boolean bouncerShowing) {
-        if (mLockIcon != null) {
-            mLockIcon.setBouncerShowingScrimmed(bouncerShowing);
-        }
-    }
-
-    /**
-     * When {@link KeyguardBouncer} starts to be dismissed and starts to play its animation.
-     */
-    public void onBouncerPreHideAnimation() {
-        if (mLockIcon != null) {
-            mLockIcon.onBouncerPreHideAnimation();
-        }
-    }
-
-    /**
-     * Builder for {@link StatusBarWindowViewController}.
-     */
-    public static class Builder {
-        private final InjectionInflationController mInjectionInflationController;
-        private final NotificationWakeUpCoordinator mCoordinator;
-        private final PulseExpansionHandler mPulseExpansionHandler;
-        private final DynamicPrivacyController mDynamicPrivacyController;
-        private final KeyguardBypassController mBypassController;
-        private final FalsingManager mFalsingManager;
-        private final PluginManager mPluginManager;
-        private final TunerService mTunerService;
-        private final KeyguardStateController mKeyguardStateController;
-        private final SysuiStatusBarStateController mStatusBarStateController;
-        private ShadeController mShadeController;
-        private final NotificationLockscreenUserManager mNotificationLockScreenUserManager;
-        private final NotificationEntryManager mNotificationEntryManager;
-        private final DozeLog mDozeLog;
-        private final DozeParameters mDozeParameters;
-        private final CommandQueue mCommandQueue;
-        private final SuperStatusBarViewFactory mSuperStatusBarViewFactory;
-        private final StatusBarWindowView mView;
-        private final DockManager mDockManager;
-
-        @Inject
-        public Builder(
-                InjectionInflationController injectionInflationController,
-                NotificationWakeUpCoordinator coordinator,
-                PulseExpansionHandler pulseExpansionHandler,
-                DynamicPrivacyController dynamicPrivacyController,
-                KeyguardBypassController bypassController,
-                FalsingManager falsingManager,
-                PluginManager pluginManager,
-                TunerService tunerService,
-                NotificationLockscreenUserManager notificationLockscreenUserManager,
-                NotificationEntryManager notificationEntryManager,
-                KeyguardStateController keyguardStateController,
-                StatusBarStateController statusBarStateController,
-                DozeLog dozeLog,
-                DozeParameters dozeParameters,
-                CommandQueue commandQueue,
-                SuperStatusBarViewFactory superStatusBarViewFactory,
-                DockManager dockManager) {
-            mInjectionInflationController = injectionInflationController;
-            mCoordinator = coordinator;
-            mPulseExpansionHandler = pulseExpansionHandler;
-            mDynamicPrivacyController = dynamicPrivacyController;
-            mBypassController = bypassController;
-            mFalsingManager = falsingManager;
-            mPluginManager = pluginManager;
-            mTunerService = tunerService;
-            mNotificationLockScreenUserManager = notificationLockscreenUserManager;
-            mNotificationEntryManager = notificationEntryManager;
-            mKeyguardStateController = keyguardStateController;
-            mStatusBarStateController = (SysuiStatusBarStateController) statusBarStateController;
-            mDozeLog = dozeLog;
-            mDozeParameters = dozeParameters;
-            mCommandQueue = commandQueue;
-            mSuperStatusBarViewFactory = superStatusBarViewFactory;
-            mView = mSuperStatusBarViewFactory.getStatusBarWindowView();
-            mDockManager = dockManager;
-        }
-
-        /**
-         * Provide {@link ShadeController} that this view needs.
-         */
-        public Builder setShadeController(ShadeController shadeController) {
-            mShadeController = shadeController;
-            return this;
-        }
-
-        /**
-         * Build a {@link StatusBarWindowView}.
-         */
-        public StatusBarWindowViewController build() {
-            return new StatusBarWindowViewController(
-                    mView,
-                    mInjectionInflationController,
-                    mCoordinator,
-                    mPulseExpansionHandler,
-                    mDynamicPrivacyController,
-                    mBypassController,
-                    mFalsingManager,
-                    mPluginManager,
-                    mTunerService,
-                    mShadeController,
-                    mNotificationLockScreenUserManager,
-                    mNotificationEntryManager,
-                    mKeyguardStateController,
-                    mStatusBarStateController,
-                    mDozeLog,
-                    mDozeParameters,
-                    mCommandQueue,
-                    mDockManager);
-        }
-    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
index f0f9420..dc80906 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
@@ -33,13 +33,13 @@
 import com.android.settingslib.fuelgauge.BatterySaverUtils;
 import com.android.settingslib.fuelgauge.Estimate;
 import com.android.settingslib.utils.PowerUtil;
-import com.android.systemui.Dependency;
 import com.android.systemui.broadcast.BroadcastDispatcher;
+import com.android.systemui.dagger.qualifiers.BgHandler;
+import com.android.systemui.dagger.qualifiers.MainHandler;
 import com.android.systemui.power.EnhancedEstimates;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
-import java.text.NumberFormat;
 import java.util.ArrayList;
 
 import javax.inject.Inject;
@@ -53,42 +53,39 @@
 public class BatteryControllerImpl extends BroadcastReceiver implements BatteryController {
     private static final String TAG = "BatteryController";
 
-    public static final String ACTION_LEVEL_TEST = "com.android.systemui.BATTERY_LEVEL_TEST";
+    private static final String ACTION_LEVEL_TEST = "com.android.systemui.BATTERY_LEVEL_TEST";
 
     private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
-    private static final int UPDATE_GRANULARITY_MSEC = 1000 * 60;
 
     private final EnhancedEstimates mEstimates;
     private final BroadcastDispatcher mBroadcastDispatcher;
-    private final ArrayList<BatteryController.BatteryStateChangeCallback> mChangeCallbacks = new ArrayList<>();
+    private final ArrayList<BatteryController.BatteryStateChangeCallback>
+            mChangeCallbacks = new ArrayList<>();
     private final ArrayList<EstimateFetchCompletion> mFetchCallbacks = new ArrayList<>();
     private final PowerManager mPowerManager;
-    private final Handler mHandler;
+    private final Handler mMainHandler;
+    private final Handler mBgHandler;
     private final Context mContext;
 
-    protected int mLevel;
-    protected boolean mPluggedIn;
-    protected boolean mCharging;
-    protected boolean mCharged;
-    protected boolean mPowerSave;
-    protected boolean mAodPowerSave;
+    private int mLevel;
+    private boolean mPluggedIn;
+    private boolean mCharging;
+    private boolean mCharged;
+    private boolean mPowerSave;
+    private boolean mAodPowerSave;
     private boolean mTestmode = false;
     private boolean mHasReceivedBattery = false;
     private Estimate mEstimate;
     private boolean mFetchingEstimate = false;
 
-    @Inject
-    public BatteryControllerImpl(Context context, EnhancedEstimates enhancedEstimates,
-            BroadcastDispatcher broadcastDispatcher) {
-        this(context, enhancedEstimates, context.getSystemService(PowerManager.class),
-                broadcastDispatcher);
-    }
-
     @VisibleForTesting
+    @Inject
     BatteryControllerImpl(Context context, EnhancedEstimates enhancedEstimates,
-            PowerManager powerManager, BroadcastDispatcher broadcastDispatcher) {
+            PowerManager powerManager, BroadcastDispatcher broadcastDispatcher,
+            @MainHandler Handler mainHandler, @BgHandler Handler bgHandler) {
         mContext = context;
-        mHandler = new Handler();
+        mMainHandler = mainHandler;
+        mBgHandler = bgHandler;
         mPowerManager = powerManager;
         mEstimates = enhancedEstimates;
         mBroadcastDispatcher = broadcastDispatcher;
@@ -162,7 +159,7 @@
             setPowerSave(intent.getBooleanExtra(PowerManager.EXTRA_POWER_SAVE_MODE, false));
         } else if (action.equals(ACTION_LEVEL_TEST)) {
             mTestmode = true;
-            mHandler.post(new Runnable() {
+            mMainHandler.post(new Runnable() {
                 int curLevel = 0;
                 int incr = 1;
                 int saveLevel = mLevel;
@@ -189,7 +186,7 @@
                     if (curLevel == 100) {
                         incr *= -1;
                     }
-                    mHandler.postDelayed(this, 200);
+                    mMainHandler.postDelayed(this, 200);
                 }
             });
         }
@@ -222,7 +219,6 @@
                 return null;
             }
 
-            String percentage = NumberFormat.getPercentInstance().format((double) mLevel / 100.0);
             return PowerUtil.getBatteryRemainingShortStringFormatted(
                     mContext, mEstimate.getEstimateMillis());
         }
@@ -235,7 +231,7 @@
         }
 
         mFetchingEstimate = true;
-        Dependency.get(Dependency.BG_HANDLER).post(() -> {
+        mBgHandler.post(() -> {
             // Only fetch the estimate if they are enabled
             synchronized (mFetchCallbacks) {
                 mEstimate = null;
@@ -244,7 +240,7 @@
                 }
             }
             mFetchingEstimate = false;
-            Dependency.get(Dependency.MAIN_HANDLER).post(this::notifyEstimateFetchCallbacks);
+            mMainHandler.post(this::notifyEstimateFetchCallbacks);
         });
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
index a441f66..5a43321 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
@@ -128,7 +128,7 @@
     }
 
     public void handleBootCompleted() {
-        mWifiManager.registerTrafficStateCallback(new WifiTrafficStateCallback(), null);
+        mWifiManager.registerTrafficStateCallback(new WifiTrafficStateCallback());
     }
 
     /**
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeServiceHostTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeServiceHostTest.java
index 105dbad..222fcb6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeServiceHostTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeServiceHostTest.java
@@ -90,6 +90,7 @@
     @Mock private NotificationPanelView mNotificationPanel;
     @Mock private View mAmbientIndicationContainer;
     @Mock private BiometricUnlockController mBiometricUnlockController;
+    @Mock private LockscreenLockIconController mLockscreenLockIconController;
 
     @Before
     public void setup() {
@@ -99,11 +100,11 @@
                 mBatteryController, mScrimController, () -> mBiometricUnlockController,
                 mKeyguardViewMediator, () -> mAssistManager, mDozeScrimController,
                 mKeyguardUpdateMonitor, mVisualStabilityManager, mPulseExpansionHandler,
-                mStatusBarWindowController, mNotificationWakeUpCoordinator);
+                mStatusBarWindowController, mNotificationWakeUpCoordinator,
+                mStatusBarWindowViewController, mLockscreenLockIconController);
 
-        mDozeServiceHost.initialize(mStatusBar, mNotificationIconAreaController,
-                mStatusBarWindowViewController, mStatusBarWindow, mStatusBarKeyguardViewManager,
-                mNotificationPanel, mAmbientIndicationContainer);
+        mDozeServiceHost.initialize(mStatusBar, mNotificationIconAreaController, mStatusBarWindow,
+                mStatusBarKeyguardViewManager, mNotificationPanel, mAmbientIndicationContainer);
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java
index 07be0d7..6f5cfbe 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java
@@ -64,6 +64,7 @@
 import com.android.systemui.statusbar.NotificationTestHelper;
 import com.android.systemui.statusbar.RemoteInputController;
 import com.android.systemui.statusbar.StatusBarState;
+import com.android.systemui.statusbar.SuperStatusBarViewFactory;
 import com.android.systemui.statusbar.notification.ActivityLaunchAnimator;
 import com.android.systemui.statusbar.notification.NotificationActivityStarter;
 import com.android.systemui.statusbar.notification.NotificationEntryManager;
@@ -116,8 +117,11 @@
     @Mock
     private Intent mContentIntentInner;
     @Mock
-
     private NotificationActivityStarter mNotificationActivityStarter;
+    @Mock
+    private SuperStatusBarViewFactory mSuperStatusBarViewFactory;
+    @Mock
+    private NotificationPanelView mNotificationPanelView;
 
     private NotificationTestHelper mNotificationTestHelper;
     private ExpandableNotificationRow mNotificationRow;
@@ -156,19 +160,25 @@
         mActiveNotifications.add(mBubbleNotificationRow.getEntry());
         when(mEntryManager.getVisibleNotifications()).thenReturn(mActiveNotifications);
         when(mStatusBarStateController.getState()).thenReturn(StatusBarState.SHADE);
+        when(mSuperStatusBarViewFactory.getNotificationPanelView())
+                .thenReturn(mNotificationPanelView);
 
-        mNotificationActivityStarter = new StatusBarNotificationActivityStarter(getContext(),
-                mock(CommandQueue.class), mAssistManager, mock(NotificationPanelView.class),
-                mock(NotificationPresenter.class), mEntryManager, mock(HeadsUpManagerPhone.class),
-                mActivityStarter, mock(ActivityLaunchAnimator.class), mStatusBarService,
+        mNotificationActivityStarter = (new StatusBarNotificationActivityStarter.Builder(
+                getContext(), mock(CommandQueue.class), () -> mAssistManager,
+                mEntryManager, mock(HeadsUpManagerPhone.class),
+                mActivityStarter, mStatusBarService,
                 mock(StatusBarStateController.class), mock(KeyguardManager.class),
                 mock(IDreamManager.class), mRemoteInputManager,
                 mock(StatusBarRemoteInputCallback.class), mock(NotificationGroupManager.class),
-                mock(NotificationLockscreenUserManager.class), mShadeController,
+                mock(NotificationLockscreenUserManager.class),
                 mKeyguardStateController,
                 mock(NotificationInterruptionStateProvider.class), mock(MetricsLogger.class),
                 mock(LockPatternUtils.class), mHandler, mHandler, mActivityIntentHelper,
-                mBubbleController);
+                mBubbleController, mSuperStatusBarViewFactory))
+                .setShadeController(mShadeController)
+                .setNotificationPresenter(mock(NotificationPresenter.class))
+                .setActivityLaunchAnimator(mock(ActivityLaunchAnimator.class))
+        .build();
 
         // set up dismissKeyguardThenExecute to synchronously invoke the OnDismissAction arg
         doAnswer(mCallOnDismiss).when(mActivityStarter).dismissKeyguardThenExecute(
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java
index b1b66b5..9d76b42 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java
@@ -72,7 +72,7 @@
         mRemoteInputCallback = spy(new StatusBarRemoteInputCallback(mContext,
                 mock(NotificationGroupManager.class), mNotificationLockscreenUserManager,
                 mKeyguardStateController, mStatusBarStateController, mActivityStarter,
-                mShadeController, new CommandQueue(mContext)));
+                () -> mShadeController, new CommandQueue(mContext)));
         mRemoteInputCallback.mChallengeReceiver = mRemoteInputCallback.new ChallengeReceiver();
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
index 1f2df65..e78fb9e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
@@ -216,7 +216,6 @@
     @Mock private NotificationGroupAlertTransferHelper mGroupAlertTransferHelper;
     @Mock private StatusBarWindowController mStatusBarWindowController;
     @Mock private NotificationIconAreaController mNotificationIconAreaController;
-    @Mock private StatusBarWindowViewController.Builder mStatusBarWindowViewControllerBuilder;
     @Mock private StatusBarWindowViewController mStatusBarWindowViewController;
     @Mock private DozeParameters mDozeParameters;
     @Mock private Lazy<LockscreenWallpaper> mLockscreenWallpaperLazy;
@@ -236,6 +235,9 @@
     @Mock private DismissCallbackRegistry mDismissCallbackRegistry;
     @Mock private ScreenPinningRequest mScreenPinningRequest;
     @Mock private NotificationEntryManager mEntryManager;
+    @Mock private LockscreenLockIconController mLockscreenLockIconController;
+    @Mock private StatusBarNotificationActivityStarter.Builder
+            mStatusBarNotificationActivityStarterBuilder;
 
     @Before
     public void setup() throws Exception {
@@ -295,9 +297,6 @@
         when(mColorExtractor.getNeutralColors()).thenReturn(mGradientColors);
         ConfigurationController configurationController = new ConfigurationControllerImpl(mContext);
 
-        when(mStatusBarWindowViewControllerBuilder.build())
-                .thenReturn(mStatusBarWindowViewController);
-
         when(mLockscreenWallpaperLazy.get()).thenReturn(mLockscreenWallpaper);
         when(mBiometricUnlockControllerLazy.get()).thenReturn(mBiometricUnlockController);
 
@@ -355,7 +354,8 @@
                 mNotificationListener,
                 configurationController,
                 mStatusBarWindowController,
-                mStatusBarWindowViewControllerBuilder,
+                mStatusBarWindowViewController,
+                mLockscreenLockIconController,
                 mDozeParameters,
                 mScrimController,
                 mKeyguardLiftController,
@@ -371,6 +371,7 @@
                 mRemoteInputUriController,
                 Optional.of(mDivider),
                 mLightsOutNotifController,
+                mStatusBarNotificationActivityStarterBuilder,
                 mSuperStatusBarViewFactory,
                 mStatusBarKeyguardViewManager,
                 mViewMediatorCallback,
@@ -397,7 +398,6 @@
         mStatusBar.mKeyguardIndicationController = mKeyguardIndicationController;
         mStatusBar.mBarService = mBarService;
         mStatusBar.mStackScroller = mStackScroller;
-        mStatusBar.mStatusBarWindowViewController = mStatusBarWindowViewController;
         mStatusBar.startKeyguard();
         Dependency.get(InitController.class).executePostInitTasks();
         notificationLogger.setUpWithContainer(mStackScroller);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java
index e08551a..ee9ea9f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java
@@ -88,7 +88,7 @@
         when(mSuperStatusBarViewFactory.getStatusBarWindowView()).thenReturn(mView);
         when(mDockManager.isDocked()).thenReturn(false);
 
-        mController = new StatusBarWindowViewController.Builder(
+        mController = new StatusBarWindowViewController(
                 new InjectionInflationController(
                         SystemUIFactory.getInstance().getRootComponent()),
                 mCoordinator,
@@ -106,9 +106,9 @@
                 mDozeParameters,
                 new CommandQueue(mContext),
                 mSuperStatusBarViewFactory,
-                mDockManager)
-                .setShadeController(mShadeController)
-                .build();
+                () -> mShadeController,
+                mDockManager);
+        mController.setupExpandedStatusBar();
         mController.setService(mStatusBar);
         mController.setDragDownHelper(mDragDownHelper);
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java
index 48ed4ba..05a4867 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java
@@ -20,6 +20,7 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Intent;
+import android.os.Handler;
 import android.os.PowerManager;
 import android.os.PowerSaveState;
 import android.test.suitebuilder.annotation.SmallTest;
@@ -53,7 +54,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mBatteryController = new BatteryControllerImpl(getContext(), mock(EnhancedEstimates.class),
-                mPowerManager, mBroadcastDispatcher);
+                mPowerManager, mBroadcastDispatcher, new Handler(), new Handler());
     }
 
     @Test
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 4bb29f0..3dc745b 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -346,7 +346,6 @@
 import com.android.server.Watchdog;
 import com.android.server.am.ActivityManagerServiceDumpProcessesProto.UidObserverRegistrationProto;
 import com.android.server.appop.AppOpsService;
-import com.android.server.compat.CompatConfig;
 import com.android.server.compat.PlatformCompat;
 import com.android.server.contentcapture.ContentCaptureManagerInternal;
 import com.android.server.firewall.IntentFirewall;
@@ -5032,8 +5031,9 @@
             bindApplicationTimeMillis = SystemClock.elapsedRealtime();
             mAtmInternal.preBindApplication(app.getWindowProcessController());
             final ActiveInstrumentation instr2 = app.getActiveInstrumentation();
-            long[] disabledCompatChanges = CompatConfig.get().getDisabledChanges(app.info);
+            long[] disabledCompatChanges = {};
             if (mPlatformCompat != null) {
+                disabledCompatChanges = mPlatformCompat.getDisabledChanges(app.info);
                 mPlatformCompat.resetReporting(app.info);
             }
             if (app.isolatedEntryPoint != null) {
diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
index 1f56176..908ec6b 100644
--- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
+++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
@@ -37,11 +37,13 @@
 import android.app.IUidObserver;
 import android.app.KeyguardManager;
 import android.app.ProfilerInfo;
+import android.app.UserSwitchObserver;
 import android.app.WaitResult;
 import android.app.usage.AppStandbyInfo;
 import android.app.usage.ConfigurationStats;
 import android.app.usage.IUsageStatsManager;
 import android.app.usage.UsageStatsManager;
+import android.compat.Compatibility;
 import android.content.ComponentCallbacks2;
 import android.content.ComponentName;
 import android.content.Context;
@@ -80,15 +82,17 @@
 import android.os.UserManager;
 import android.text.TextUtils;
 import android.util.ArrayMap;
+import android.util.ArraySet;
 import android.util.DebugUtils;
 import android.util.DisplayMetrics;
 import android.util.proto.ProtoOutputStream;
 import android.view.Display;
 
+import com.android.internal.compat.CompatibilityChangeConfig;
 import com.android.internal.util.HexDump;
 import com.android.internal.util.MemInfoReader;
 import com.android.internal.util.Preconditions;
-import com.android.server.compat.CompatConfig;
+import com.android.server.compat.PlatformCompat;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -1729,6 +1733,30 @@
         return 0;
     }
 
+    private void switchUserAndWaitForComplete(int userId) throws RemoteException {
+        // Register switch observer.
+        final CountDownLatch switchLatch = new CountDownLatch(1);
+        mInterface.registerUserSwitchObserver(
+                new UserSwitchObserver() {
+                    @Override
+                    public void onUserSwitchComplete(int newUserId) {
+                        if (userId == newUserId) {
+                            switchLatch.countDown();
+                        }
+                    }
+                }, ActivityManagerShellCommand.class.getName());
+
+        // Switch.
+        mInterface.switchUser(userId);
+
+        // Wait.
+        try {
+            switchLatch.await(USER_OPERATION_TIMEOUT_MS, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            getErrPrintWriter().println("Thread interrupted unexpectedly.");
+        }
+    }
+
     int runSwitchUser(PrintWriter pw) throws RemoteException {
         UserManager userManager = mInternal.mContext.getSystemService(UserManager.class);
         final int userSwitchable = userManager.getUserSwitchability();
@@ -1736,8 +1764,23 @@
             getErrPrintWriter().println("Error: " + userSwitchable);
             return -1;
         }
-        String user = getNextArgRequired();
-        mInterface.switchUser(Integer.parseInt(user));
+        boolean wait = false;
+        String opt;
+        while ((opt = getNextOption()) != null) {
+            if ("-w".equals(opt)) {
+                wait = true;
+            } else {
+                getErrPrintWriter().println("Error: unknown option: " + opt);
+                return -1;
+            }
+        }
+
+        int userId = Integer.parseInt(getNextArgRequired());
+        if (wait) {
+            switchUserAndWaitForComplete(userId);
+        } else {
+            mInterface.switchUser(userId);
+        }
         return 0;
     }
 
@@ -2862,56 +2905,49 @@
         return 0;
     }
 
-    private void killPackage(String packageName, PrintWriter pw) throws RemoteException {
-        int uid = mPm.getPackageUid(packageName, 0, mUserId);
-        if (uid < 0) {
-            // uid is negative if the package wasn't found.
-            pw.println("Didn't find package " + packageName + " on device.");
-        } else {
-            pw.println("Killing package " + packageName + " (UID " + uid + ").");
-            final long origId = Binder.clearCallingIdentity();
-            mInterface.killUid(UserHandle.getAppId(uid),
-                    UserHandle.USER_ALL, "killPackage");
-            Binder.restoreCallingIdentity(origId);
-        }
-    }
-
     private int runCompat(PrintWriter pw) throws RemoteException {
-        final CompatConfig config = CompatConfig.get();
+        final PlatformCompat platformCompat = (PlatformCompat)
+                ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE);
         String toggleValue = getNextArgRequired();
         long changeId;
         String changeIdString = getNextArgRequired();
         try {
             changeId = Long.parseLong(changeIdString);
         } catch (NumberFormatException e) {
-            changeId = config.lookupChangeId(changeIdString);
+            changeId = platformCompat.lookupChangeId(changeIdString);
         }
         if (changeId == -1) {
             pw.println("Unknown or invalid change: '" + changeIdString + "'.");
+            return -1;
         }
         String packageName = getNextArgRequired();
+        if (!platformCompat.isKnownChangeId(changeId)) {
+            pw.println("Warning! Change " + changeId + " is not known yet. Enabling/disabling it"
+                    + " could have no effect.");
+        }
+        ArraySet<Long> enabled = new ArraySet<>();
+        ArraySet<Long> disabled = new ArraySet<>();
         switch (toggleValue) {
             case "enable":
-                if (!config.addOverride(changeId, packageName, true)) {
-                    pw.println("Warning! Change " + changeId + " is not known yet. Enabling it"
-                            + " could have no effect.");
-                }
+                enabled.add(changeId);
                 pw.println("Enabled change " + changeId + " for " + packageName + ".");
-                killPackage(packageName, pw);
+                CompatibilityChangeConfig overrides =
+                        new CompatibilityChangeConfig(
+                                new Compatibility.ChangeConfig(enabled, disabled));
+                platformCompat.setOverrides(overrides, packageName);
                 return 0;
             case "disable":
-                if (!config.addOverride(changeId, packageName, false)) {
-                    pw.println("Warning! Change " + changeId + " is not known yet. Disabling it"
-                            + " could have no effect.");
-                }
+                disabled.add(changeId);
                 pw.println("Disabled change " + changeId + " for " + packageName + ".");
-                killPackage(packageName, pw);
+                overrides =
+                        new CompatibilityChangeConfig(
+                                new Compatibility.ChangeConfig(enabled, disabled));
+                platformCompat.setOverrides(overrides, packageName);
                 return 0;
             case "reset":
-                if (config.removeOverride(changeId, packageName)) {
+                if (platformCompat.clearOverride(changeId, packageName)) {
                     pw.println("Reset change " + changeId + " for " + packageName
                             + " to default value.");
-                    killPackage(packageName, pw);
                 } else {
                     pw.println("No override exists for changeId " + changeId + ".");
                 }
diff --git a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
index 5255316..0524f91 100644
--- a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
+++ b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
@@ -445,7 +445,7 @@
         if ((updateFlags & BatteryStatsImpl.ExternalStatsSync.UPDATE_RADIO) != 0) {
             // We were asked to fetch Telephony data.
             if (mTelephony == null) {
-                mTelephony = TelephonyManager.from(mContext);
+                mTelephony = mContext.getSystemService(TelephonyManager.class);
             }
 
             if (mTelephony != null) {
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index a47ea4f..8c60d0c 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -731,7 +731,7 @@
 
     public void notePhoneState(int state) {
         enforceCallingPermission();
-        int simState = TelephonyManager.getDefault().getSimState();
+        int simState = mContext.getSystemService(TelephonyManager.class).getSimState();
         synchronized (mStats) {
             mStats.notePhoneStateLocked(state, simState);
         }
diff --git a/services/core/java/com/android/server/biometrics/AuthService.java b/services/core/java/com/android/server/biometrics/AuthService.java
new file mode 100644
index 0000000..22cb507
--- /dev/null
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
@@ -0,0 +1,228 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.biometrics;
+
+
+// TODO(b/141025588): Create separate internal and external permissions for AuthService.
+// TODO(b/141025588): Get rid of the USE_FINGERPRINT permission.
+
+import static android.Manifest.permission.USE_BIOMETRIC;
+import static android.Manifest.permission.USE_BIOMETRIC_INTERNAL;
+import static android.Manifest.permission.USE_FINGERPRINT;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_IRIS;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.hardware.biometrics.IAuthService;
+import android.hardware.biometrics.IBiometricEnabledOnKeyguardCallback;
+import android.hardware.biometrics.IBiometricService;
+import android.hardware.biometrics.IBiometricServiceReceiver;
+import android.hardware.face.IFaceService;
+import android.hardware.fingerprint.IFingerprintService;
+import android.hardware.iris.IIrisService;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.util.Slog;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.SystemService;
+import com.android.server.biometrics.face.FaceAuthenticator;
+import com.android.server.biometrics.fingerprint.FingerprintAuthenticator;
+import com.android.server.biometrics.iris.IrisAuthenticator;
+
+/**
+ * System service that provides an interface for authenticating with biometrics and
+ * PIN/pattern/password to BiometricPrompt and lock screen.
+ */
+public class AuthService extends SystemService {
+    private static final String TAG = "AuthService";
+    private static final boolean DEBUG = false;
+
+    private final boolean mHasFeatureFace;
+    private final boolean mHasFeatureFingerprint;
+    private final boolean mHasFeatureIris;
+    private final Injector mInjector;
+
+    private IBiometricService mBiometricService;
+    @VisibleForTesting
+    final IAuthService.Stub mImpl;
+
+    /**
+     * Class for injecting dependencies into AuthService.
+     * TODO(b/141025588): Replace with a dependency injection framework (e.g. Guice, Dagger).
+     */
+    @VisibleForTesting
+    public static class Injector {
+
+        /**
+         * Allows to mock BiometricService for testing.
+         */
+        @VisibleForTesting
+        public IBiometricService getBiometricService() {
+            return IBiometricService.Stub.asInterface(
+                    ServiceManager.getService(Context.BIOMETRIC_SERVICE));
+        }
+
+        /**
+         * Allows to stub publishBinderService(...) for testing.
+         */
+        @VisibleForTesting
+        public void publishBinderService(AuthService service, IAuthService.Stub impl) {
+            service.publishBinderService(Context.AUTH_SERVICE, impl);
+        }
+    }
+
+    private final class AuthServiceImpl extends IAuthService.Stub {
+        @Override
+        public void authenticate(IBinder token, long sessionId, int userId,
+                IBiometricServiceReceiver receiver, String opPackageName, Bundle bundle)
+                throws RemoteException {
+            final int callingUserId = UserHandle.getCallingUserId();
+
+            // In the BiometricServiceBase, do the AppOps and foreground check.
+            if (userId == callingUserId) {
+                // Check the USE_BIOMETRIC permission here.
+                checkPermission();
+            } else {
+                // Only allow internal clients to authenticate with a different userId
+                Slog.w(TAG, "User " + callingUserId + " is requesting authentication of userid: "
+                        + userId);
+                checkInternalPermission();
+            }
+
+            if (token == null || receiver == null || opPackageName == null || bundle == null) {
+                Slog.e(TAG, "Unable to authenticate, one or more null arguments");
+                return;
+            }
+
+            mBiometricService.authenticate(token, sessionId, userId, receiver, opPackageName,
+                    bundle);
+        }
+
+        @Override
+        public int canAuthenticate(String opPackageName, int userId) throws RemoteException {
+            final int callingUserId = UserHandle.getCallingUserId();
+            Slog.d(TAG, "canAuthenticate, userId: " + userId
+                    + ", callingUserId: " + callingUserId);
+
+            if (userId != callingUserId) {
+                checkInternalPermission();
+            } else {
+                checkPermission();
+            }
+            return mBiometricService.canAuthenticate(opPackageName, userId);
+        }
+
+        @Override
+        public boolean hasEnrolledBiometrics(int userId, String opPackageName)
+                throws RemoteException {
+            checkInternalPermission();
+            return mBiometricService.hasEnrolledBiometrics(userId, opPackageName);
+        }
+
+        @Override
+        public void registerEnabledOnKeyguardCallback(IBiometricEnabledOnKeyguardCallback callback)
+                throws RemoteException {
+            checkInternalPermission();
+            mBiometricService.registerEnabledOnKeyguardCallback(callback);
+        }
+
+        @Override
+        public void setActiveUser(int userId) throws RemoteException {
+            checkInternalPermission();
+            mBiometricService.setActiveUser(userId);
+        }
+
+        @Override
+        public void resetLockout(byte[] token) throws RemoteException {
+            checkInternalPermission();
+            mBiometricService.resetLockout(token);
+        }
+    }
+
+    public AuthService(Context context) {
+        this(context, new Injector());
+    }
+
+    public AuthService(Context context, Injector injector) {
+        super(context);
+
+        mInjector = injector;
+        mImpl = new AuthServiceImpl();
+        final PackageManager pm = context.getPackageManager();
+        mHasFeatureFace = pm.hasSystemFeature(PackageManager.FEATURE_FACE);
+        mHasFeatureFingerprint = pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT);
+        mHasFeatureIris = pm.hasSystemFeature(PackageManager.FEATURE_IRIS);
+    }
+
+    @Override
+    public void onStart() {
+        mBiometricService = mInjector.getBiometricService();
+
+        if (mHasFeatureFace) {
+            final FaceAuthenticator faceAuthenticator = new FaceAuthenticator(
+                    IFaceService.Stub.asInterface(ServiceManager.getService(Context.FACE_SERVICE)));
+            try {
+                // TODO(b/141025588): Pass down the real id, strength, and modality.
+                mBiometricService.registerAuthenticator(0, 0, TYPE_FACE, faceAuthenticator);
+            } catch (RemoteException e) {
+                Slog.e(TAG, "Remote exception", e);
+            }
+        }
+        if (mHasFeatureFingerprint) {
+            final FingerprintAuthenticator fingerprintAuthenticator = new FingerprintAuthenticator(
+                    IFingerprintService.Stub.asInterface(
+                            ServiceManager.getService(Context.FINGERPRINT_SERVICE)));
+            try {
+                // TODO(b/141025588): Pass down the real id, strength, and modality.
+                mBiometricService.registerAuthenticator(1, 0, TYPE_FINGERPRINT,
+                        fingerprintAuthenticator);
+            } catch (RemoteException e) {
+                Slog.e(TAG, "Remote exception", e);
+            }
+        }
+        if (mHasFeatureIris) {
+            final IrisAuthenticator irisAuthenticator = new IrisAuthenticator(
+                    IIrisService.Stub.asInterface(ServiceManager.getService(Context.IRIS_SERVICE)));
+            try {
+                // TODO(b/141025588): Pass down the real id, strength, and modality.
+                mBiometricService.registerAuthenticator(2, 0, TYPE_IRIS, irisAuthenticator);
+            } catch (RemoteException e) {
+                Slog.e(TAG, "Remote exception", e);
+            }
+        }
+        mInjector.publishBinderService(this, mImpl);
+    }
+
+    private void checkInternalPermission() {
+        getContext().enforceCallingOrSelfPermission(USE_BIOMETRIC_INTERNAL,
+                "Must have USE_BIOMETRIC_INTERNAL permission");
+    }
+
+    private void checkPermission() {
+        if (getContext().checkCallingOrSelfPermission(USE_FINGERPRINT)
+                != PackageManager.PERMISSION_GRANTED) {
+            getContext().enforceCallingOrSelfPermission(USE_BIOMETRIC,
+                    "Must have USE_BIOMETRIC permission");
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/biometrics/BiometricService.java b/services/core/java/com/android/server/biometrics/BiometricService.java
index 44c81fc..5d36793 100644
--- a/services/core/java/com/android/server/biometrics/BiometricService.java
+++ b/services/core/java/com/android/server/biometrics/BiometricService.java
@@ -42,8 +42,6 @@
 import android.hardware.biometrics.IBiometricService;
 import android.hardware.biometrics.IBiometricServiceReceiver;
 import android.hardware.biometrics.IBiometricServiceReceiverInternal;
-import android.hardware.face.IFaceService;
-import android.hardware.fingerprint.IFingerprintService;
 import android.net.Uri;
 import android.os.Binder;
 import android.os.Bundle;
@@ -67,8 +65,6 @@
 import com.android.internal.os.SomeArgs;
 import com.android.internal.statusbar.IStatusBarService;
 import com.android.server.SystemService;
-import com.android.server.biometrics.face.FaceAuthenticator;
-import com.android.server.biometrics.fingerprint.FingerprintAuthenticator;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -215,9 +211,6 @@
     private final Injector mInjector;
     @VisibleForTesting
     final IBiometricService.Stub mImpl;
-    private final boolean mHasFeatureFace;
-    private final boolean mHasFeatureFingerprint;
-    private final boolean mHasFeatureIris;
     @VisibleForTesting
     final SettingObserver mSettingObserver;
     private final List<EnabledOnKeyguardCallback> mEnabledOnKeyguardCallbacks;
@@ -702,6 +695,8 @@
         @Override
         public void registerAuthenticator(int id, int strength, int modality,
                 IBiometricAuthenticator authenticator) {
+            checkInternalPermission();
+
             mAuthenticators.add(new AuthenticatorWrapper(id, strength, modality, authenticator));
         }
 
@@ -782,24 +777,6 @@
         }
 
         /**
-         * Allows to mock FaceAuthenticator for testing.
-         */
-        @VisibleForTesting
-        public IBiometricAuthenticator getFingerprintAuthenticator() {
-            return new FingerprintAuthenticator(IFingerprintService.Stub.asInterface(
-                    ServiceManager.getService(Context.FINGERPRINT_SERVICE)));
-        }
-
-        /**
-         * Allows to mock FaceAuthenticator for testing.
-         */
-        @VisibleForTesting
-        public IBiometricAuthenticator getFaceAuthenticator() {
-            return new FaceAuthenticator(
-                    IFaceService.Stub.asInterface(ServiceManager.getService(Context.FACE_SERVICE)));
-        }
-
-        /**
          * Allows to mock SettingObserver for testing.
          */
         @VisibleForTesting
@@ -853,11 +830,6 @@
         mSettingObserver = mInjector.getSettingObserver(context, mHandler,
                 mEnabledOnKeyguardCallbacks);
 
-        final PackageManager pm = context.getPackageManager();
-        mHasFeatureFace = pm.hasSystemFeature(PackageManager.FEATURE_FACE);
-        mHasFeatureFingerprint = pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT);
-        mHasFeatureIris = pm.hasSystemFeature(PackageManager.FEATURE_IRIS);
-
         try {
             injector.getActivityManagerService().registerUserSwitchObserver(
                     new UserSwitchObserver() {
@@ -875,28 +847,6 @@
 
     @Override
     public void onStart() {
-        // TODO(b/141025588): remove this code block once AuthService is integrated.
-        {
-            if (mHasFeatureFace) {
-                try {
-                    mImpl.registerAuthenticator(0, 0, TYPE_FACE, mInjector.getFaceAuthenticator());
-                } catch (RemoteException e) {
-                    Slog.e(TAG, "Remote exception", e);
-                }
-            }
-            if (mHasFeatureFingerprint) {
-                try {
-                    mImpl.registerAuthenticator(0, 0, TYPE_FINGERPRINT,
-                            mInjector.getFingerprintAuthenticator());
-                } catch (RemoteException e) {
-                    Slog.e(TAG, "Remote exception", e);
-                }
-            }
-            if (mHasFeatureIris) {
-                Slog.e(TAG, "Iris is not supported");
-            }
-        }
-
         mKeyStore = mInjector.getKeyStore();
         mStatusBarService = mInjector.getStatusBarService();
         mInjector.publishBinderService(this, mImpl);
diff --git a/services/core/java/com/android/server/compat/CompatConfig.java b/services/core/java/com/android/server/compat/CompatConfig.java
index d6ec22b..490cce3 100644
--- a/services/core/java/com/android/server/compat/CompatConfig.java
+++ b/services/core/java/com/android/server/compat/CompatConfig.java
@@ -43,13 +43,14 @@
 import java.util.Set;
 
 import javax.xml.datatype.DatatypeConfigurationException;
+
 /**
  * This class maintains state relating to platform compatibility changes.
  *
  * <p>It stores the default configuration for each change, and any per-package overrides that have
  * been configured.
  */
-public final class CompatConfig {
+final class CompatConfig {
 
     private static final String TAG = "CompatConfig";
 
@@ -61,13 +62,13 @@
     private final LongSparseArray<CompatChange> mChanges = new LongSparseArray<>();
 
     @VisibleForTesting
-    public CompatConfig() {
+    CompatConfig() {
     }
 
     /**
      * @return The static instance of this class to be used within the system server.
      */
-    public static CompatConfig get() {
+    static CompatConfig get() {
         return sInstance;
     }
 
@@ -77,7 +78,7 @@
      *
      * @param change The change to add. Any change with the same ID will be overwritten.
      */
-    public void addChange(CompatChange change) {
+    void addChange(CompatChange change) {
         synchronized (mChanges) {
             mChanges.put(change.getId(), change);
         }
@@ -89,10 +90,10 @@
      *
      * @param app The app in question
      * @return A sorted long array of change IDs. We use a primitive array to minimize memory
-     *      footprint: Every app process will store this array statically so we aim to reduce
-     *      overhead as much as possible.
+     * footprint: Every app process will store this array statically so we aim to reduce
+     * overhead as much as possible.
      */
-    public long[] getDisabledChanges(ApplicationInfo app) {
+    long[] getDisabledChanges(ApplicationInfo app) {
         LongArray disabled = new LongArray();
         synchronized (mChanges) {
             for (int i = 0; i < mChanges.size(); ++i) {
@@ -113,7 +114,7 @@
      * @param name Name of the change to look up
      * @return The change ID, or {@code -1} if no change with that name exists.
      */
-    public long lookupChangeId(String name) {
+    long lookupChangeId(String name) {
         synchronized (mChanges) {
             for (int i = 0; i < mChanges.size(); ++i) {
                 if (TextUtils.equals(mChanges.valueAt(i).getName(), name)) {
@@ -128,11 +129,11 @@
      * Find if a given change is enabled for a given application.
      *
      * @param changeId The ID of the change in question
-     * @param app App to check for
+     * @param app      App to check for
      * @return {@code true} if the change is enabled for this app. Also returns {@code true} if the
-     *      change ID is not known, as unknown changes are enabled by default.
+     * change ID is not known, as unknown changes are enabled by default.
      */
-    public boolean isChangeEnabled(long changeId, ApplicationInfo app) {
+    boolean isChangeEnabled(long changeId, ApplicationInfo app) {
         synchronized (mChanges) {
             CompatChange c = mChanges.get(changeId);
             if (c == null) {
@@ -150,14 +151,15 @@
      *
      * <p>Note, package overrides are not persistent and will be lost on system or runtime restart.
      *
-     * @param changeId The ID of the change to be overridden. Note, this call will succeed even if
-     *                 this change is not known; it will only have any effect if any code in the
-     *                 platform is gated on the ID given.
+     * @param changeId    The ID of the change to be overridden. Note, this call will succeed even
+     *                    if
+     *                    this change is not known; it will only have any effect if any code in the
+     *                    platform is gated on the ID given.
      * @param packageName The app package name to override the change for.
-     * @param enabled If the change should be enabled or disabled.
+     * @param enabled     If the change should be enabled or disabled.
      * @return {@code true} if the change existed before adding the override.
      */
-    public boolean addOverride(long changeId, String packageName, boolean enabled) {
+    boolean addOverride(long changeId, String packageName, boolean enabled) {
         boolean alreadyKnown = true;
         synchronized (mChanges) {
             CompatChange c = mChanges.get(changeId);
@@ -172,15 +174,27 @@
     }
 
     /**
+     * Check whether the change is known to the compat config.
+     *
+     * @return {@code true} if the change is known.
+     */
+    boolean isKnownChangeId(long changeId) {
+        synchronized (mChanges) {
+            CompatChange c = mChanges.get(changeId);
+            return c != null;
+        }
+    }
+
+    /**
      * Removes an override previously added via {@link #addOverride(long, String, boolean)}. This
      * restores the default behaviour for the given change and app, once any app processes have been
      * restarted.
      *
-     * @param changeId The ID of the change that was overridden.
+     * @param changeId    The ID of the change that was overridden.
      * @param packageName The app package name that was overridden.
      * @return {@code true} if an override existed;
      */
-    public boolean removeOverride(long changeId, String packageName) {
+    boolean removeOverride(long changeId, String packageName) {
         boolean overrideExists = false;
         synchronized (mChanges) {
             CompatChange c = mChanges.get(changeId);
@@ -191,22 +205,22 @@
         }
         return overrideExists;
     }
+
     /**
      * Overrides the enabled state for a given change and app. This method is intended to be used
      * *only* for debugging purposes.
      *
      * <p>Note, package overrides are not persistent and will be lost on system or runtime restart.
      *
-     * @param overrides list of overrides to default changes config.
+     * @param overrides   list of overrides to default changes config.
      * @param packageName app for which the overrides will be applied.
      */
-    public void addOverrides(
-            CompatibilityChangeConfig overrides, String packageName) {
+    void addOverrides(CompatibilityChangeConfig overrides, String packageName) {
         synchronized (mChanges) {
-            for (Long changeId: overrides.enabledChanges()) {
+            for (Long changeId : overrides.enabledChanges()) {
                 addOverride(changeId, packageName, true);
             }
-            for (Long changeId: overrides.disabledChanges()) {
+            for (Long changeId : overrides.disabledChanges()) {
                 addOverride(changeId, packageName, false);
             }
         }
@@ -221,7 +235,7 @@
      *
      * @param packageName The package for which the overrides should be purged.
      */
-    public void removePackageOverrides(String packageName) {
+    void removePackageOverrides(String packageName) {
         synchronized (mChanges) {
             for (int i = 0; i < mChanges.size(); ++i) {
                 mChanges.valueAt(i).removePackageOverride(packageName);
@@ -230,11 +244,11 @@
     }
 
     /**
-    * Dumps the current list of compatibility config information.
-    *
-    * @param pw The {@link PrintWriter} instance to which the information will be dumped.
-    */
-    public void dumpConfig(PrintWriter pw) {
+     * Dumps the current list of compatibility config information.
+     *
+     * @param pw The {@link PrintWriter} instance to which the information will be dumped.
+     */
+    void dumpConfig(PrintWriter pw) {
         synchronized (mChanges) {
             if (mChanges.size() == 0) {
                 pw.println("No compat overrides.");
@@ -252,10 +266,10 @@
      *
      * @param applicationInfo the {@link ApplicationInfo} for which the info should be dumped.
      * @return A {@link CompatibilityChangeConfig} which contains the compat config info for the
-     *         given app.
+     * given app.
      */
 
-    public CompatibilityChangeConfig getAppConfig(ApplicationInfo applicationInfo) {
+    CompatibilityChangeConfig getAppConfig(ApplicationInfo applicationInfo) {
         Set<Long> enabled = new HashSet<>();
         Set<Long> disabled = new HashSet<>();
         synchronized (mChanges) {
@@ -276,15 +290,15 @@
      *
      * @return An array of {@link CompatibilityChangeInfo} with the current changes.
      */
-    public CompatibilityChangeInfo[] dumpChanges() {
+    CompatibilityChangeInfo[] dumpChanges() {
         synchronized (mChanges) {
             CompatibilityChangeInfo[] changeInfos = new CompatibilityChangeInfo[mChanges.size()];
             for (int i = 0; i < mChanges.size(); ++i) {
                 CompatChange change = mChanges.valueAt(i);
                 changeInfos[i] = new CompatibilityChangeInfo(change.getId(),
-                                                      change.getName(),
-                                                      change.getEnableAfterTargetSdk(),
-                                                      change.getDisabled());
+                        change.getName(),
+                        change.getEnableAfterTargetSdk(),
+                        change.getDisabled());
             }
             return changeInfos;
         }
diff --git a/services/core/java/com/android/server/compat/PlatformCompat.java b/services/core/java/com/android/server/compat/PlatformCompat.java
index 75e2d22..709f3f8 100644
--- a/services/core/java/com/android/server/compat/PlatformCompat.java
+++ b/services/core/java/com/android/server/compat/PlatformCompat.java
@@ -16,9 +16,13 @@
 
 package com.android.server.compat;
 
+import android.app.ActivityManager;
+import android.app.IActivityManager;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
+import android.os.Binder;
+import android.os.RemoteException;
 import android.os.UserHandle;
 import android.util.Slog;
 import android.util.StatsLog;
@@ -106,12 +110,26 @@
     @Override
     public void setOverrides(CompatibilityChangeConfig overrides, String packageName) {
         CompatConfig.get().addOverrides(overrides, packageName);
+        killPackage(packageName);
+    }
+
+    @Override
+    public void setOverridesForTest(CompatibilityChangeConfig overrides, String packageName) {
+        CompatConfig.get().addOverrides(overrides, packageName);
     }
 
     @Override
     public void clearOverrides(String packageName) {
         CompatConfig config = CompatConfig.get();
         config.removePackageOverrides(packageName);
+        killPackage(packageName);
+    }
+
+    @Override
+    public boolean clearOverride(long changeId, String packageName) {
+        boolean existed = CompatConfig.get().removeOverride(changeId, packageName);
+        killPackage(packageName);
+        return existed;
     }
 
     @Override
@@ -124,6 +142,39 @@
         return CompatConfig.get().dumpChanges();
     }
 
+    /**
+     * Check whether the change is known to the compat config.
+     * @param changeId
+     * @return {@code true} if the change is known.
+     */
+    public boolean isKnownChangeId(long changeId) {
+        return CompatConfig.get().isKnownChangeId(changeId);
+
+    }
+
+    /**
+     * Retrieves the set of disabled changes for a given app. Any change ID not in the returned
+     * array is by default enabled for the app.
+     *
+     * @param appInfo The app in question
+     * @return A sorted long array of change IDs. We use a primitive array to minimize memory
+     *      footprint: Every app process will store this array statically so we aim to reduce
+     *      overhead as much as possible.
+     */
+    public long[] getDisabledChanges(ApplicationInfo appInfo) {
+        return CompatConfig.get().getDisabledChanges(appInfo);
+    }
+
+    /**
+     * Look up a change ID by name.
+     *
+     * @param name Name of the change to look up
+     * @return The change ID, or {@code -1} if no change with that name exists.
+     */
+    public long lookupChangeId(String name) {
+        return CompatConfig.get().lookupChangeId(name);
+    }
+
     @Override
     protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         if (!DumpUtils.checkDumpAndUsageStatsPermission(mContext, "platform_compat", pw)) return;
@@ -151,4 +202,34 @@
     private void reportChange(long changeId, int uid, int state) {
         mChangeReporter.reportChange(uid, changeId, state);
     }
+
+    private void killPackage(String packageName) {
+        int uid = -1;
+        try {
+            uid = mContext.getPackageManager().getPackageUid(packageName, 0);
+        } catch (PackageManager.NameNotFoundException e) {
+            Slog.w(TAG, "Didn't find package " + packageName + " on device.", e);
+            return;
+        }
+
+        Slog.d(TAG, "Killing package " + packageName + " (UID " + uid + ").");
+        killUid(UserHandle.getAppId(uid),
+                UserHandle.USER_ALL, "PlatformCompat overrides");
+    }
+
+    private void killUid(int appId, int userId, String reason) {
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            IActivityManager am = ActivityManager.getService();
+            if (am != null) {
+                try {
+                    am.killUid(appId, userId, reason);
+                } catch (RemoteException e) {
+                    /* ignore - same process */
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java
index b3804c4..acedc36 100644
--- a/services/core/java/com/android/server/connectivity/Tethering.java
+++ b/services/core/java/com/android/server/connectivity/Tethering.java
@@ -286,8 +286,8 @@
 
     private void startStateMachineUpdaters(Handler handler) {
         mCarrierConfigChange.startListening();
-        TelephonyManager.from(mContext).listen(mPhoneStateListener,
-                PhoneStateListener.LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE);
+        mContext.getSystemService(TelephonyManager.class).listen(
+                mPhoneStateListener, PhoneStateListener.LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE);
 
         IntentFilter filter = new IntentFilter();
         filter.addAction(UsbManager.ACTION_USB_STATE);
diff --git a/services/core/java/com/android/server/display/BrightnessTracker.java b/services/core/java/com/android/server/display/BrightnessTracker.java
index 126beef..eea1980 100644
--- a/services/core/java/com/android/server/display/BrightnessTracker.java
+++ b/services/core/java/com/android/server/display/BrightnessTracker.java
@@ -34,6 +34,7 @@
 import android.hardware.SensorManager;
 import android.hardware.display.AmbientBrightnessDayStats;
 import android.hardware.display.BrightnessChangeEvent;
+import android.hardware.display.BrightnessConfiguration;
 import android.hardware.display.ColorDisplayManager;
 import android.hardware.display.DisplayManager;
 import android.hardware.display.DisplayManagerInternal;
@@ -125,6 +126,7 @@
     private static final int MSG_BRIGHTNESS_CHANGED = 1;
     private static final int MSG_STOP_SENSOR_LISTENER = 2;
     private static final int MSG_START_SENSOR_LISTENER = 3;
+    private static final int MSG_BRIGHTNESS_CONFIG_CHANGED = 4;
 
     private static final SimpleDateFormat FORMAT = new SimpleDateFormat("MM-dd HH:mm:ss.SSS");
 
@@ -158,6 +160,7 @@
     private boolean mColorSamplingEnabled;
     private int mNoFramesToSample;
     private float mFrameRate;
+    private BrightnessConfiguration mBrightnessConfiguration;
     // End of block of members that should only be accessed on the mBgHandler thread.
 
     private @UserIdInt int mCurrentUserId = UserHandle.USER_NULL;
@@ -202,6 +205,14 @@
         mBgHandler.obtainMessage(MSG_BACKGROUND_START, (Float) initialBrightness).sendToTarget();
     }
 
+    /**
+     * Update tracker with new brightness configuration.
+     */
+    public void setBrightnessConfiguration(BrightnessConfiguration brightnessConfiguration) {
+        mBgHandler.obtainMessage(MSG_BRIGHTNESS_CONFIG_CHANGED,
+                brightnessConfiguration).sendToTarget();
+    }
+
     private void backgroundStart(float initialBrightness) {
         readEvents();
         readAmbientBrightnessStats();
@@ -759,7 +770,9 @@
     private void enableColorSampling() {
         if (!mInjector.isBrightnessModeAutomatic(mContentResolver)
                 || !mInjector.isInteractive(mContext)
-                || mColorSamplingEnabled) {
+                || mColorSamplingEnabled
+                || mBrightnessConfiguration == null
+                || !mBrightnessConfiguration.shouldCollectColorSamples()) {
             return;
         }
 
@@ -977,6 +990,18 @@
                     stopSensorListener();
                     disableColorSampling();
                     break;
+                case MSG_BRIGHTNESS_CONFIG_CHANGED:
+                    mBrightnessConfiguration = (BrightnessConfiguration) msg.obj;
+                    boolean shouldCollectColorSamples =
+                            mBrightnessConfiguration != null
+                                    && mBrightnessConfiguration.shouldCollectColorSamples();
+                    if (shouldCollectColorSamples && !mColorSamplingEnabled) {
+                        enableColorSampling();
+                    } else if (!shouldCollectColorSamples && mColorSamplingEnabled) {
+                        disableColorSampling();
+                    }
+                    break;
+
             }
         }
     }
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 5804fc8..e42545e 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -931,6 +931,10 @@
                     autoBrightnessAdjustmentChanged, mPowerRequest.policy);
         }
 
+        if (mBrightnessTracker != null) {
+            mBrightnessTracker.setBrightnessConfiguration(mBrightnessConfiguration);
+        }
+
         // Apply auto-brightness.
         boolean slowChange = false;
         if (brightness < 0) {
diff --git a/services/core/java/com/android/server/display/WifiDisplayController.java b/services/core/java/com/android/server/display/WifiDisplayController.java
index d9d46b8..283a78b 100644
--- a/services/core/java/com/android/server/display/WifiDisplayController.java
+++ b/services/core/java/com/android/server/display/WifiDisplayController.java
@@ -16,8 +16,6 @@
 
 package com.android.server.display;
 
-import com.android.internal.util.DumpUtils;
-
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -36,16 +34,18 @@
 import android.net.wifi.p2p.WifiP2pDeviceList;
 import android.net.wifi.p2p.WifiP2pGroup;
 import android.net.wifi.p2p.WifiP2pManager;
-import android.net.wifi.p2p.WifiP2pWfdInfo;
 import android.net.wifi.p2p.WifiP2pManager.ActionListener;
 import android.net.wifi.p2p.WifiP2pManager.Channel;
 import android.net.wifi.p2p.WifiP2pManager.GroupInfoListener;
 import android.net.wifi.p2p.WifiP2pManager.PeerListListener;
+import android.net.wifi.p2p.WifiP2pWfdInfo;
 import android.os.Handler;
 import android.provider.Settings;
 import android.util.Slog;
 import android.view.Surface;
 
+import com.android.internal.util.DumpUtils;
+
 import java.io.PrintWriter;
 import java.net.Inet4Address;
 import java.net.InetAddress;
@@ -292,11 +292,11 @@
 
                 WifiP2pWfdInfo wfdInfo = new WifiP2pWfdInfo();
                 wfdInfo.setWfdEnabled(true);
-                wfdInfo.setDeviceType(WifiP2pWfdInfo.WFD_SOURCE);
+                wfdInfo.setDeviceType(WifiP2pWfdInfo.DEVICE_TYPE_WFD_SOURCE);
                 wfdInfo.setSessionAvailable(true);
                 wfdInfo.setControlPort(DEFAULT_CONTROL_PORT);
                 wfdInfo.setMaxThroughput(MAX_THROUGHPUT);
-                mWifiP2pManager.setWFDInfo(mWifiP2pChannel, wfdInfo, new ActionListener() {
+                mWifiP2pManager.setWfdInfo(mWifiP2pChannel, wfdInfo, new ActionListener() {
                     @Override
                     public void onSuccess() {
                         if (DEBUG) {
@@ -324,7 +324,7 @@
             if (mWfdEnabled || mWfdEnabling) {
                 WifiP2pWfdInfo wfdInfo = new WifiP2pWfdInfo();
                 wfdInfo.setWfdEnabled(false);
-                mWifiP2pManager.setWFDInfo(mWifiP2pChannel, wfdInfo, new ActionListener() {
+                mWifiP2pManager.setWfdInfo(mWifiP2pChannel, wfdInfo, new ActionListener() {
                     @Override
                     public void onSuccess() {
                         if (DEBUG) {
@@ -508,7 +508,8 @@
                 Slog.d(TAG, "updateDesiredDevice: new information "
                         + describeWifiP2pDevice(device));
             }
-            mDesiredDevice.update(device);
+            mDesiredDevice.updateSupplicantDetails(device);
+            mDesiredDevice.status = device.status;
             if (mAdvertisedDisplay != null
                     && mAdvertisedDisplay.getDeviceAddress().equals(address)) {
                 readvertiseDisplay(createWifiDisplay(mDesiredDevice));
@@ -694,7 +695,7 @@
             config.wps = wps;
             config.deviceAddress = mConnectingDevice.deviceAddress;
             // Helps with STA & P2P concurrency
-            config.groupOwnerIntent = WifiP2pConfig.MIN_GROUP_OWNER_INTENT;
+            config.groupOwnerIntent = WifiP2pConfig.GROUP_OWNER_INTENT_MIN;
 
             WifiDisplay display = createWifiDisplay(mConnectingDevice);
             advertiseDisplay(display, null, 0, 0, 0);
@@ -824,6 +825,10 @@
         requestPeers();
     }
 
+    private static boolean contains(WifiP2pGroup group, WifiP2pDevice device) {
+        return group.getOwner().equals(device) || group.getClientList().contains(device);
+    }
+
     private void handleConnectionChanged(NetworkInfo networkInfo) {
         mNetworkInfo = networkInfo;
         if (mWfdEnabled && networkInfo.isConnected()) {
@@ -835,7 +840,7 @@
                             Slog.d(TAG, "Received group info: " + describeWifiP2pGroup(info));
                         }
 
-                        if (mConnectingDevice != null && !info.contains(mConnectingDevice)) {
+                        if (mConnectingDevice != null && !contains(info, mConnectingDevice)) {
                             Slog.i(TAG, "Aborting connection to Wifi display because "
                                     + "the current P2P group does not contain the device "
                                     + "we expected to find: " + mConnectingDevice.deviceName
@@ -844,7 +849,7 @@
                             return;
                         }
 
-                        if (mDesiredDevice != null && !info.contains(mDesiredDevice)) {
+                        if (mDesiredDevice != null && !contains(info, mDesiredDevice)) {
                             disconnect();
                             return;
                         }
@@ -1038,14 +1043,15 @@
     }
 
     private static boolean isWifiDisplay(WifiP2pDevice device) {
-        return device.wfdInfo != null
-                && device.wfdInfo.isWfdEnabled()
-                && isPrimarySinkDeviceType(device.wfdInfo.getDeviceType());
+        WifiP2pWfdInfo wfdInfo = device.getWfdInfo();
+        return wfdInfo != null
+                && wfdInfo.isWfdEnabled()
+                && isPrimarySinkDeviceType(wfdInfo.getDeviceType());
     }
 
     private static boolean isPrimarySinkDeviceType(int deviceType) {
-        return deviceType == WifiP2pWfdInfo.PRIMARY_SINK
-                || deviceType == WifiP2pWfdInfo.SOURCE_OR_PRIMARY_SINK;
+        return deviceType == WifiP2pWfdInfo.DEVICE_TYPE_PRIMARY_SINK
+                || deviceType == WifiP2pWfdInfo.DEVICE_TYPE_SOURCE_OR_PRIMARY_SINK;
     }
 
     private static String describeWifiP2pDevice(WifiP2pDevice device) {
@@ -1058,7 +1064,7 @@
 
     private static WifiDisplay createWifiDisplay(WifiP2pDevice device) {
         return new WifiDisplay(device.deviceAddress, device.deviceName, null,
-                true, device.wfdInfo.isSessionAvailable(), false);
+                true, device.getWfdInfo().isSessionAvailable(), false);
     }
 
     private final BroadcastReceiver mWifiP2pReceiver = new BroadcastReceiver() {
diff --git a/services/core/java/com/android/server/location/GnssNetworkConnectivityHandler.java b/services/core/java/com/android/server/location/GnssNetworkConnectivityHandler.java
index 2e72fbd..93227bd 100644
--- a/services/core/java/com/android/server/location/GnssNetworkConnectivityHandler.java
+++ b/services/core/java/com/android/server/location/GnssNetworkConnectivityHandler.java
@@ -321,7 +321,11 @@
 
     private void handleUpdateNetworkState(Network network, boolean isConnected,
             NetworkCapabilities capabilities) {
-        boolean networkAvailable = isConnected && TelephonyManager.getDefault().getDataEnabled();
+        boolean networkAvailable = false;
+        TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
+        if (telephonyManager != null) {
+            networkAvailable = isConnected && telephonyManager.getDataEnabled();
+        }
         NetworkAttributes networkAttributes = updateTrackedNetworksState(isConnected, network,
                 capabilities);
         String apn = networkAttributes.mApn;
diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java
index 41806ca..08c9426 100644
--- a/services/core/java/com/android/server/net/NetworkStatsService.java
+++ b/services/core/java/com/android/server/net/NetworkStatsService.java
@@ -337,7 +337,7 @@
                 powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
 
         NetworkStatsService service = new NetworkStatsService(context, networkManager, alarmManager,
-                wakeLock, getDefaultClock(), TelephonyManager.getDefault(),
+                wakeLock, getDefaultClock(), context.getSystemService(TelephonyManager.class),
                 new DefaultNetworkStatsSettings(context), new NetworkStatsFactory(),
                 new NetworkStatsObservers(), getDefaultSystemDir(), getDefaultBaseDir());
         service.registerLocalService();
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
index dd561e1..d66aa18 100644
--- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
+++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
@@ -2170,14 +2170,21 @@
         }
     }
 
+    @Deprecated
     @Override
     public ParcelFileDescriptor getWallpaper(String callingPkg, IWallpaperManagerCallback cb,
             final int which, Bundle outParams, int wallpaperUserId) {
+        return getWallpaperWithFeature(callingPkg, null, cb, which, outParams, wallpaperUserId);
+    }
+
+    @Override
+    public ParcelFileDescriptor getWallpaperWithFeature(String callingPkg, String callingFeatureId,
+            IWallpaperManagerCallback cb, final int which, Bundle outParams, int wallpaperUserId) {
         final int hasPrivilege = mContext.checkCallingOrSelfPermission(
                 android.Manifest.permission.READ_WALLPAPER_INTERNAL);
         if (hasPrivilege != PackageManager.PERMISSION_GRANTED) {
             mContext.getSystemService(StorageManager.class).checkPermissionReadImages(true,
-                    Binder.getCallingPid(), Binder.getCallingUid(), callingPkg);
+                    Binder.getCallingPid(), Binder.getCallingUid(), callingPkg, callingFeatureId);
         }
 
         wallpaperUserId = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index e80c9b3..8039724 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -4358,7 +4358,7 @@
         final boolean isDisplaySleeping = getDisplay().isSleeping()
                 && getDisplayId() != DEFAULT_DISPLAY;
         // Whether this activity is the top activity of this stack.
-        final boolean isTop = this == stack.getTopActivity();
+        final boolean isTop = this == stack.getTopNonFinishingActivity();
         // Exclude the case where this is the top activity in a pinned stack.
         final boolean isTopNotPinnedStack = stack.isAttached()
                 && stack.getDisplay().isTopNotPinnedStack(stack);
@@ -6171,8 +6171,7 @@
         // The rest of the condition is that only one side is smaller than the parent, but it still
         // needs to exclude the cases where the size is limited by the fixed aspect ratio.
         if (info.maxAspectRatio > 0) {
-            final float aspectRatio = (0.5f + Math.max(appWidth, appHeight))
-                    / Math.min(appWidth, appHeight);
+            final float aspectRatio = Math.max(appWidth, appHeight) / Math.min(appWidth, appHeight);
             if (aspectRatio >= info.maxAspectRatio) {
                 // The current size has reached the max aspect ratio.
                 return false;
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java
index a91998a..8385232 100644
--- a/services/core/java/com/android/server/wm/ActivityStack.java
+++ b/services/core/java/com/android/server/wm/ActivityStack.java
@@ -421,8 +421,6 @@
     /** Stores the override windowing-mode from before a transient mode change (eg. split) */
     private int mRestoreOverrideWindowingMode = WINDOWING_MODE_UNDEFINED;
 
-    private final ActivityOptions mTmpOptions = ActivityOptions.makeBasic();
-
     /** List for processing through a set of activities */
     private final ArrayList<ActivityRecord> mTmpActivities = new ArrayList<>();
 
@@ -750,7 +748,6 @@
             // Leaving a transient mode. Interpret UNDEFINED as "restore"
             windowingMode = mRestoreOverrideWindowingMode;
         }
-        mTmpOptions.setLaunchWindowingMode(windowingMode);
 
         // Need to make sure windowing mode is supported. If we in the process of creating the stack
         // no need to resolve the windowing mode again as it is already resolved to the right mode.
@@ -797,7 +794,7 @@
             return;
         }
 
-        final ActivityRecord topActivity = getTopActivity();
+        final ActivityRecord topActivity = getTopNonFinishingActivity();
 
         // For now, assume that the Stack's windowing mode is what will actually be used
         // by it's activities. In the future, there may be situations where this doesn't
@@ -1044,9 +1041,9 @@
         return null;
     }
 
-    ActivityRecord getTopActivity() {
+    ActivityRecord getTopNonFinishingActivity() {
         for (int taskNdx = getChildCount() - 1; taskNdx >= 0; --taskNdx) {
-            final ActivityRecord r = getChildAt(taskNdx).getTopActivity();
+            final ActivityRecord r = getChildAt(taskNdx).getTopNonFinishingActivity();
             if (r != null) {
                 return r;
             }
@@ -1267,7 +1264,7 @@
             }
 
             // Overlays should not be considered as the task's logical top activity.
-            final ActivityRecord r = task.getTopActivity(false /* includeOverlays */);
+            final ActivityRecord r = task.getTopNonFinishingActivity(false /* includeOverlays */);
             if (r == null || r.finishing || r.mUserId != userId ||
                     r.launchMode == ActivityInfo.LAUNCH_SINGLE_INSTANCE) {
                 if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Skipping " + task + ": mismatch root " + r);
@@ -1826,7 +1823,7 @@
     }
 
     boolean isTopActivityVisible() {
-        final ActivityRecord topActivity = getTopActivity();
+        final ActivityRecord topActivity = getTopNonFinishingActivity();
         return topActivity != null && topActivity.visible;
     }
 
@@ -2902,7 +2899,7 @@
             boolean startIt = true;
             for (int taskNdx = getChildCount() - 1; taskNdx >= 0; --taskNdx) {
                 task = getChildAt(taskNdx);
-                if (task.getTopActivity() == null) {
+                if (task.getTopNonFinishingActivity() == null) {
                     // All activities in task are finishing.
                     continue;
                 }
@@ -3383,7 +3380,7 @@
 
         int taskNdx = mChildren.indexOf(task);
         if (taskNdx >= 0) {
-            ActivityRecord newTop = getChildAt(taskNdx).getTopActivity();
+            ActivityRecord newTop = getChildAt(taskNdx).getTopNonFinishingActivity();
             if (newTop != null) {
                 taskTop = newTop;
             }
@@ -4005,7 +4002,8 @@
         if (DEBUG_SWITCH) Slog.v(TAG_SWITCH, "moveTaskToFront: " + tr);
 
         final ActivityStack topStack = getDisplay().getTopStack();
-        final ActivityRecord topActivity = topStack != null ? topStack.getTopActivity() : null;
+        final ActivityRecord topActivity = topStack != null
+                ? topStack.getTopNonFinishingActivity() : null;
         final int numTasks = getChildCount();
         final int index = mChildren.indexOf(tr);
         if (numTasks == 0 || index < 0)  {
@@ -4036,7 +4034,7 @@
             positionChildAtTop(tr);
 
             // Don't refocus if invisible to current user
-            final ActivityRecord top = tr.getTopActivity();
+            final ActivityRecord top = tr.getTopNonFinishingActivity();
             if (top == null || !top.okToShowLocked()) {
                 if (top != null) {
                     mStackSupervisor.mRecentTasks.add(top.getTask());
@@ -4355,7 +4353,7 @@
         int userId = UserHandle.getUserId(callingUid);
         for (int taskNdx = getChildCount() - 1; taskNdx >= 0; --taskNdx) {
             final Task task = getChildAt(taskNdx);
-            if (task.getTopActivity() == null) {
+            if (task.getTopNonFinishingActivity() == null) {
                 // Skip if there are no activities in the task
                 continue;
             }
diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
index 016654f..530fdcf 100644
--- a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
@@ -1428,7 +1428,7 @@
             moveHomeStackToFrontIfNeeded(flags, currentStack.getDisplay(), reason);
         }
 
-        final ActivityRecord r = task.getTopActivity();
+        final ActivityRecord r = task.getTopNonFinishingActivity();
         currentStack.moveTaskToFrontLocked(task, false /* noAnimation */, options,
                 r == null ? null : r.appTimeTracker, reason);
 
@@ -2077,7 +2077,7 @@
 
         // When launching tasks behind, update the last active time of the top task after the new
         // task has been shown briefly
-        final ActivityRecord top = stack.getTopActivity();
+        final ActivityRecord top = stack.getTopNonFinishingActivity();
         if (top != null) {
             top.getTask().touchActiveTime();
         }
@@ -2458,7 +2458,7 @@
 
     /** Notifies that the top activity of the task is forced to be resizeable. */
     private void handleForcedResizableTaskIfNeeded(Task task, int reason) {
-        final ActivityRecord topActivity = task.getTopActivity();
+        final ActivityRecord topActivity = task.getTopNonFinishingActivity();
         if (topActivity == null || topActivity.noDisplay
                 || !topActivity.isNonResizableOrForcedResizable(task.getWindowingMode())) {
             return;
@@ -2750,7 +2750,7 @@
             // Work Challenge is present) let startActivityInPackage handle the intercepting.
             if (!mService.mAmInternal.shouldConfirmCredentials(task.mUserId)
                     && task.getRootActivity() != null) {
-                final ActivityRecord targetActivity = task.getTopActivity();
+                final ActivityRecord targetActivity = task.getTopNonFinishingActivity();
 
                 mRootActivityContainer.sendPowerHintForLaunchStartIfNeeded(
                         true /* forceSend */, targetActivity);
@@ -2767,7 +2767,7 @@
                 }
 
                 mService.getActivityStartController().postStartActivityProcessingForLastStarter(
-                        task.getTopActivity(), ActivityManager.START_TASK_TO_FRONT,
+                        task.getTopNonFinishingActivity(), ActivityManager.START_TASK_TO_FRONT,
                         task.getStack());
                 return ActivityManager.START_TASK_TO_FRONT;
             }
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java
index 2218c72..be7f887 100644
--- a/services/core/java/com/android/server/wm/ActivityStarter.java
+++ b/services/core/java/com/android/server/wm/ActivityStarter.java
@@ -1502,7 +1502,8 @@
             return startResult;
         }
 
-        final ActivityRecord targetTaskTop = newTask ? null : targetTask.getTopActivity();
+        final ActivityRecord targetTaskTop = newTask
+                ? null : targetTask.getTopNonFinishingActivity();
         if (targetTaskTop != null) {
             // Recycle the target task for this launch.
             startResult = recycleTask(targetTask, targetTaskTop, reusedTask);
@@ -1559,8 +1560,8 @@
         mRootActivityContainer.sendPowerHintForLaunchStartIfNeeded(
                 false /* forceSend */, mStartActivity);
 
-        mTargetStack.startActivityLocked(mStartActivity, topStack.getTopActivity(), newTask,
-                mKeepCurTransition, mOptions);
+        mTargetStack.startActivityLocked(mStartActivity, topStack.getTopNonFinishingActivity(),
+                newTask, mKeepCurTransition, mOptions);
         if (mDoResume) {
             final ActivityRecord topTaskActivity =
                     mStartActivity.getTask().topRunningActivityLocked();
@@ -1612,7 +1613,7 @@
             return mInTask;
         } else {
             final ActivityRecord top = computeStackFocus(mStartActivity, false /* newTask */,
-                    mLaunchFlags, mOptions).getTopActivity();
+                    mLaunchFlags, mOptions).getTopNonFinishingActivity();
             if (top != null) {
                 return top.getTask();
             }
@@ -1727,7 +1728,8 @@
             return START_RETURN_INTENT_TO_CALLER;
         }
 
-        complyActivityFlags(targetTask, reusedTask != null ? reusedTask.getTopActivity() : null);
+        complyActivityFlags(targetTask,
+                reusedTask != null ? reusedTask.getTopNonFinishingActivity() : null);
 
         if (clearTaskForReuse) {
             // Clear task for re-use so later code to methods
@@ -1755,7 +1757,7 @@
         // FLAG_ACTIVITY_CLEAR_TOP flag. In that case, return the top running activity in the
         // task instead.
         mLastStartActivityRecord =
-                targetTaskTop.finishing ? targetTask.getTopActivity() : targetTaskTop;
+                targetTaskTop.finishing ? targetTask.getTopNonFinishingActivity() : targetTaskTop;
         return mMovedToFront ? START_TASK_TO_FRONT : START_DELIVERED_TO_TOP;
     }
 
@@ -1806,7 +1808,7 @@
      * task.
      */
     private void complyActivityFlags(Task targetTask, ActivityRecord reusedActivity) {
-        ActivityRecord targetTaskTop = targetTask.getTopActivity();
+        ActivityRecord targetTaskTop = targetTask.getTopNonFinishingActivity();
         final boolean resetTask =
                 reusedActivity != null && (mLaunchFlags & FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) != 0;
         if (resetTask) {
@@ -2037,7 +2039,8 @@
                 if (!mOptions.canTaskOverlayResume()) {
                     final Task task = mRootActivityContainer.anyTaskForId(
                             mOptions.getLaunchTaskId());
-                    final ActivityRecord top = task != null ? task.getTopActivity() : null;
+                    final ActivityRecord top = task != null
+                            ? task.getTopNonFinishingActivity() : null;
                     if (top != null && !top.isState(RESUMED)) {
 
                         // The caller specifies that we'd like to be avoided to be moved to the
@@ -2295,8 +2298,8 @@
 
         if (differentTopTask && !mAvoidMoveToFront) {
             mStartActivity.intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
-            if (mSourceRecord == null || (mSourceStack.getTopActivity() != null &&
-                    mSourceStack.getTopActivity().getTask()
+            if (mSourceRecord == null || (mSourceStack.getTopNonFinishingActivity() != null &&
+                    mSourceStack.getTopNonFinishingActivity().getTask()
                             == mSourceRecord.getTask())) {
                 // We really do want to push this one into the user's face, right now.
                 if (mLaunchTaskBehind && mSourceRecord != null) {
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 79c76b9..6977a45 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -2410,7 +2410,7 @@
             mStackSupervisor.findTaskToMoveToFront(task, flags, realOptions, "moveTaskToFront",
                     false /* forceNonResizable */);
 
-            final ActivityRecord topActivity = task.getTopActivity();
+            final ActivityRecord topActivity = task.getTopNonFinishingActivity();
             if (topActivity != null) {
 
                 // We are reshowing a task, use a starting window to hide the initial draw delay
@@ -2999,7 +2999,7 @@
     public boolean isTopOfTask(IBinder token) {
         synchronized (mGlobalLock) {
             ActivityRecord r = ActivityRecord.isInStackLocked(token);
-            return r != null && r.getTask().getTopActivity() == r;
+            return r != null && r.getTask().getTopNonFinishingActivity() == r;
         }
     }
 
@@ -3589,7 +3589,7 @@
                 "enqueueAssistContext()");
 
         synchronized (mGlobalLock) {
-            ActivityRecord activity = getTopDisplayFocusedStack().getTopActivity();
+            ActivityRecord activity = getTopDisplayFocusedStack().getTopNonFinishingActivity();
             if (activity == null) {
                 Slog.w(TAG, "getAssistContextExtras failed: no top activity");
                 return null;
@@ -3722,7 +3722,7 @@
                 return false;
             }
 
-            final ActivityRecord activity = focusedStack.getTopActivity();
+            final ActivityRecord activity = focusedStack.getTopNonFinishingActivity();
             if (activity == null) {
                 return false;
             }
@@ -3737,7 +3737,7 @@
         try {
             synchronized (mGlobalLock) {
                 ActivityRecord caller = ActivityRecord.forTokenLocked(token);
-                ActivityRecord top = getTopDisplayFocusedStack().getTopActivity();
+                ActivityRecord top = getTopDisplayFocusedStack().getTopNonFinishingActivity();
                 if (top != caller) {
                     Slog.w(TAG, "showAssistFromActivity failed: caller " + caller
                             + " is not current top " + top);
@@ -4355,7 +4355,7 @@
     public void startLocalVoiceInteraction(IBinder callingActivity, Bundle options) {
         Slog.i(TAG, "Activity tried to startLocalVoiceInteraction");
         synchronized (mGlobalLock) {
-            ActivityRecord activity = getTopDisplayFocusedStack().getTopActivity();
+            ActivityRecord activity = getTopDisplayFocusedStack().getTopNonFinishingActivity();
             if (ActivityRecord.forTokenLocked(callingActivity) != activity) {
                 throw new SecurityException("Only focused activity can call startVoiceInteraction");
             }
@@ -6576,7 +6576,7 @@
                             + " Requested task not found");
                     return null;
                 }
-                final ActivityRecord activity = task.getTopActivity();
+                final ActivityRecord activity = task.getTopNonFinishingActivity();
                 if (activity == null) {
                     Slog.w(TAG, "getApplicationThreadForTopActivity failed:"
                             + " Requested activity not found");
diff --git a/services/core/java/com/android/server/wm/DisplayRotation.java b/services/core/java/com/android/server/wm/DisplayRotation.java
index 0c68084..c76d03c 100644
--- a/services/core/java/com/android/server/wm/DisplayRotation.java
+++ b/services/core/java/com/android/server/wm/DisplayRotation.java
@@ -541,8 +541,8 @@
             }
             mService.mH.removeCallbacks(mDisplayRotationHandlerTimeout);
             mIsWaitingForRemoteRotation = false;
-            mService.mAtmService.applyContainerTransaction(t);
             mDisplayContent.sendNewConfiguration();
+            mService.mAtmService.applyContainerTransaction(t);
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/LockTaskController.java b/services/core/java/com/android/server/wm/LockTaskController.java
index 6810f8c..2ece6e2 100644
--- a/services/core/java/com/android/server/wm/LockTaskController.java
+++ b/services/core/java/com/android/server/wm/LockTaskController.java
@@ -239,7 +239,7 @@
     boolean activityBlockedFromFinish(ActivityRecord activity) {
         final Task task = activity.getTask();
         if (activity == task.getRootActivity()
-                && activity == task.getTopActivity()
+                && activity == task.getTopNonFinishingActivity()
                 && task.mLockTaskAuth != LOCK_TASK_AUTH_LAUNCHABLE_PRIV
                 && isRootTask(task)) {
             Slog.i(TAG, "Not finishing task in lock task mode");
diff --git a/services/core/java/com/android/server/wm/RecentTasks.java b/services/core/java/com/android/server/wm/RecentTasks.java
index 2f46937..f0e441f 100644
--- a/services/core/java/com/android/server/wm/RecentTasks.java
+++ b/services/core/java/com/android/server/wm/RecentTasks.java
@@ -717,7 +717,7 @@
                 // Only look at tasks for the user ID of interest.
                 continue;
             }
-            if (task.autoRemoveRecents && task.getTopActivity() == null) {
+            if (task.autoRemoveRecents && task.getTopNonFinishingActivity() == null) {
                 // This situation is broken, and we should just get rid of it now.
                 remove(task);
                 Slog.w(TAG, "Removing auto-remove without activity: " + task);
@@ -931,7 +931,7 @@
                 }
             }
 
-            if (task.autoRemoveRecents && task.getTopActivity() == null) {
+            if (task.autoRemoveRecents && task.getTopNonFinishingActivity() == null) {
                 // Don't include auto remove tasks that are finished or finishing.
                 if (DEBUG_RECENTS) {
                     Slog.d(TAG_RECENTS, "Skipping, auto-remove without activity: " + task);
diff --git a/services/core/java/com/android/server/wm/RecentsAnimation.java b/services/core/java/com/android/server/wm/RecentsAnimation.java
index caf95de..948ed79 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimation.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimation.java
@@ -429,7 +429,7 @@
         // 1) The next launching task is not being animated by the recents animation
         // 2) The next task is home activity. (i.e. pressing home key to back home in recents).
         if ((!controller.isAnimatingTask(stack.getTopChild())
-                || controller.isTargetApp(stack.getTopActivity()))
+                || controller.isTargetApp(stack.getTopNonFinishingActivity()))
                 && controller.shouldDeferCancelUntilNextTransition()) {
             // Always prepare an app transition since we rely on the transition callbacks to cleanup
             mWindowManager.prepareAppTransition(TRANSIT_NONE, false);
@@ -494,7 +494,7 @@
             final Task task = targetStack.getChildAt(i);
             if (task.mUserId == mUserId
                     && task.getBaseIntent().getComponent().equals(mTargetIntent.getComponent())) {
-                return task.getTopActivity();
+                return task.getTopNonFinishingActivity();
             }
         }
         return null;
diff --git a/services/core/java/com/android/server/wm/RootActivityContainer.java b/services/core/java/com/android/server/wm/RootActivityContainer.java
index 06cce52..0995df8 100644
--- a/services/core/java/com/android/server/wm/RootActivityContainer.java
+++ b/services/core/java/com/android/server/wm/RootActivityContainer.java
@@ -676,7 +676,7 @@
                 final ActivityStack stack = display.getChildAt(j);
                 // Get top activity from a visible stack and add it to the list.
                 if (stack.shouldBeVisible(null /* starting */)) {
-                    final ActivityRecord top = stack.getTopActivity();
+                    final ActivityRecord top = stack.getTopNonFinishingActivity();
                     if (top != null) {
                         if (stack == topFocusedStack) {
                             topActivityTokens.add(0, top.appToken);
@@ -1268,8 +1268,8 @@
             taskIds[i] = task.mTaskId;
             taskNames[i] = task.origActivity != null ? task.origActivity.flattenToString()
                     : task.realActivity != null ? task.realActivity.flattenToString()
-                    : task.getTopActivity() != null ? task.getTopActivity().packageName
-                    : "unknown";
+                    : task.getTopNonFinishingActivity() != null
+                            ? task.getTopNonFinishingActivity().packageName : "unknown";
             taskBounds[i] = mService.getTaskBounds(task.mTaskId);
             taskUserIds[i] = task.mUserId;
         }
@@ -2138,7 +2138,7 @@
      */
     private boolean taskTopActivityIsUser(Task task, @UserIdInt int userId) {
         // To handle the case that work app is in the task but just is not the top one.
-        final ActivityRecord activityRecord = task.getTopActivity();
+        final ActivityRecord activityRecord = task.getTopNonFinishingActivity();
         final ActivityRecord resultTo = (activityRecord != null ? activityRecord.resultTo : null);
 
         return (activityRecord != null && activityRecord.mUserId == userId)
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index b229a1d..96bac88 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -60,9 +60,7 @@
 import static com.android.server.EventLogTags.WM_TASK_REMOVED;
 import static com.android.server.am.TaskRecordProto.ACTIVITIES;
 import static com.android.server.am.TaskRecordProto.ACTIVITY_TYPE;
-import static com.android.server.am.TaskRecordProto.BOUNDS;
 import static com.android.server.am.TaskRecordProto.FULLSCREEN;
-import static com.android.server.am.TaskRecordProto.ID;
 import static com.android.server.am.TaskRecordProto.LAST_NON_FULLSCREEN_BOUNDS;
 import static com.android.server.am.TaskRecordProto.MIN_HEIGHT;
 import static com.android.server.am.TaskRecordProto.MIN_WIDTH;
@@ -89,10 +87,8 @@
 import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_DOCKED_DIVIDER;
 import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
 import static com.android.server.wm.TaskProto.APP_WINDOW_TOKENS;
-import static com.android.server.wm.TaskProto.BOUNDS;
 import static com.android.server.wm.TaskProto.DISPLAYED_BOUNDS;
 import static com.android.server.wm.TaskProto.FILLS_PARENT;
-import static com.android.server.wm.TaskProto.ID;
 import static com.android.server.wm.TaskProto.SURFACE_HEIGHT;
 import static com.android.server.wm.TaskProto.SURFACE_WIDTH;
 import static com.android.server.wm.TaskProto.WINDOW_CONTAINER;
@@ -314,6 +310,7 @@
     private final Rect mTmpNonDecorBounds = new Rect();
     private final Rect mTmpBounds = new Rect();
     private final Rect mTmpInsets = new Rect();
+    private final Rect mTmpFullBounds = new Rect();
 
     // Last non-fullscreen bounds the task was launched in or resized to.
     // The information is persisted and used to determine the appropriate stack to launch the
@@ -658,7 +655,7 @@
         }
 
         final int toStackWindowingMode = toStack.getWindowingMode();
-        final ActivityRecord topActivity = getTopActivity();
+        final ActivityRecord topActivity = getTopNonFinishingActivity();
 
         final boolean mightReplaceWindow = topActivity != null
                 && replaceWindowsOnTaskMove(getWindowingMode(), toStackWindowingMode);
@@ -1080,11 +1077,11 @@
         return getChildAt(rootActivityIndex);
     }
 
-    ActivityRecord getTopActivity() {
-        return getTopActivity(true /* includeOverlays */);
+    ActivityRecord getTopNonFinishingActivity() {
+        return getTopNonFinishingActivity(true /* includeOverlays */);
     }
 
-    ActivityRecord getTopActivity(boolean includeOverlays) {
+    ActivityRecord getTopNonFinishingActivity(boolean includeOverlays) {
         for (int i = getChildCount() - 1; i >= 0; --i) {
             final ActivityRecord r = getChildAt(i);
             if (r.finishing || (!includeOverlays && r.mTaskOverlay)) {
@@ -1331,9 +1328,9 @@
      * Completely remove all activities associated with an existing
      * task starting at a specified index.
      */
-    private void performClearTaskAtIndexLocked(int activityNdx, String reason) {
+    private void performClearTaskAtIndexLocked(String reason) {
         int numActivities = getChildCount();
-        for ( ; activityNdx < numActivities; ++activityNdx) {
+        for (int activityNdx = 0; activityNdx < numActivities; ++activityNdx) {
             final ActivityRecord r = getChildAt(activityNdx);
             if (r.finishing) {
                 continue;
@@ -1358,7 +1355,7 @@
      */
     void performClearTaskLocked() {
         mReuseTask = true;
-        performClearTaskAtIndexLocked(0, "clear-task-all");
+        performClearTaskAtIndexLocked("clear-task-all");
         mReuseTask = false;
     }
 
@@ -1428,7 +1425,7 @@
 
     void removeTaskActivitiesLocked(String reason) {
         // Just remove the entire task.
-        performClearTaskAtIndexLocked(0, reason);
+        performClearTaskAtIndexLocked(reason);
     }
 
     String lockTaskAuthToString() {
@@ -1673,7 +1670,9 @@
     }
 
     void adjustForMinimalTaskDimensions(Rect bounds, Rect previousBounds) {
-        if (bounds == null) {
+        final Rect parentBounds = getParent() != null ? getParent().getBounds() : null;
+        if (bounds == null
+                || (bounds.isEmpty() && (parentBounds == null || parentBounds.isEmpty()))) {
             return;
         }
         int minWidth = mMinWidth;
@@ -1697,6 +1696,14 @@
                 minHeight = defaultMinSize;
             }
         }
+        if (bounds.isEmpty()) {
+            // If inheriting parent bounds, check if parent bounds adhere to minimum size. If they
+            // do, we can just skip.
+            if (parentBounds.width() >= minWidth && parentBounds.height() >= minHeight) {
+                return;
+            }
+            bounds.set(parentBounds);
+        }
         final boolean adjustWidth = minWidth > bounds.width();
         final boolean adjustHeight = minHeight > bounds.height();
         if (!(adjustWidth || adjustHeight)) {
@@ -1948,10 +1955,19 @@
         }
         density *= DisplayMetrics.DENSITY_DEFAULT_SCALE;
 
-        final Rect bounds = inOutConfig.windowConfiguration.getBounds();
+        final Rect resolvedBounds = inOutConfig.windowConfiguration.getBounds();
+        if (resolvedBounds == null) {
+            mTmpFullBounds.setEmpty();
+        } else {
+            mTmpFullBounds.set(resolvedBounds);
+        }
+        if (mTmpFullBounds.isEmpty()) {
+            mTmpFullBounds.set(parentConfig.windowConfiguration.getBounds());
+        }
+
         Rect outAppBounds = inOutConfig.windowConfiguration.getAppBounds();
         if (outAppBounds == null || outAppBounds.isEmpty()) {
-            inOutConfig.windowConfiguration.setAppBounds(bounds);
+            inOutConfig.windowConfiguration.setAppBounds(mTmpFullBounds);
             outAppBounds = inOutConfig.windowConfiguration.getAppBounds();
         }
         // Non-null compatibility insets means the activity prefers to keep its original size, so
@@ -1974,7 +1990,7 @@
                 // area, i.e. the screen area without the system bars.
                 // The non decor inset are areas that could never be removed in Honeycomb. See
                 // {@link WindowManagerPolicy#getNonDecorInsetsLw}.
-                calculateInsetFrames(mTmpNonDecorBounds, mTmpStableBounds, bounds, di);
+                calculateInsetFrames(mTmpNonDecorBounds, mTmpStableBounds, mTmpFullBounds, di);
             } else {
                 // Apply the given non-decor and stable insets to calculate the corresponding bounds
                 // for screen size of configuration.
@@ -1983,8 +1999,8 @@
                     rotation = parentConfig.windowConfiguration.getRotation();
                 }
                 if (rotation != ROTATION_UNDEFINED && compatInsets != null) {
-                    mTmpNonDecorBounds.set(bounds);
-                    mTmpStableBounds.set(bounds);
+                    mTmpNonDecorBounds.set(mTmpFullBounds);
+                    mTmpStableBounds.set(mTmpFullBounds);
                     compatInsets.getDisplayBoundsByRotation(mTmpBounds, rotation);
                     intersectWithInsetsIfFits(mTmpNonDecorBounds, mTmpBounds,
                             compatInsets.mNonDecorInsets[rotation]);
@@ -2016,13 +2032,13 @@
                 if (WindowConfiguration.isFloating(windowingMode)) {
                     // For floating tasks, calculate the smallest width from the bounds of the task
                     inOutConfig.smallestScreenWidthDp = (int) (
-                            Math.min(bounds.width(), bounds.height()) / density);
+                            Math.min(mTmpFullBounds.width(), mTmpFullBounds.height()) / density);
                 } else if (WindowConfiguration.isSplitScreenWindowingMode(windowingMode)) {
                     // Iterating across all screen orientations, and return the minimum of the task
                     // width taking into account that the bounds might change because the snap
                     // algorithm snaps to a different value
                     inOutConfig.smallestScreenWidthDp =
-                            getSmallestScreenWidthDpForDockedBounds(bounds);
+                            getSmallestScreenWidthDpForDockedBounds(mTmpFullBounds);
                 }
                 // otherwise, it will just inherit
             }
@@ -2067,11 +2083,6 @@
                     newParentConfig.orientation);
         }
 
-        if (outOverrideBounds.isEmpty()) {
-            // If the task fills the parent, just inherit all the other configs from parent.
-            return;
-        }
-
         adjustForMinimalTaskDimensions(outOverrideBounds, mTmpBounds);
         if (windowingMode == WINDOWING_MODE_FREEFORM) {
             // by policy, make sure the window remains within parent somewhere
@@ -2118,7 +2129,7 @@
             // Use the top activity as the reference of orientation. Don't include overlays because
             // it is usually not the actual content or just temporarily shown.
             // E.g. ForcedResizableInfoActivity.
-            refActivity = getTopActivity(false /* includeOverlays */);
+            refActivity = getTopNonFinishingActivity(false /* includeOverlays */);
         }
 
         // If the task or the reference activity requires a different orientation (either by
@@ -2901,7 +2912,7 @@
         info.stackId = getStackId();
         info.taskId = mTaskId;
         info.displayId = mStack == null ? Display.INVALID_DISPLAY : mStack.mDisplayId;
-        info.isRunning = getTopActivity() != null;
+        info.isRunning = getTopNonFinishingActivity() != null;
         info.baseIntent = new Intent(getBaseIntent());
         info.baseActivity = mReuseActivitiesReport.base != null
                 ? mReuseActivitiesReport.base.intent.getComponent()
diff --git a/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java b/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java
index d7bc072..8ad8972 100644
--- a/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java
+++ b/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java
@@ -284,7 +284,8 @@
                     && outParams.mBounds.isEmpty()
                     && source.getDisplayId() == display.mDisplayId) {
                 // Set bounds to be not very far from source activity.
-                cascadeBounds(source.getBounds(), display, outParams.mBounds);
+                cascadeBounds(source.getConfiguration().windowConfiguration.getBounds(),
+                        display, outParams.mBounds);
             }
             getTaskBounds(root, display, layout, resolvedMode, hasInitialBounds, outParams.mBounds);
         }
diff --git a/services/core/java/com/android/server/wm/TaskPositioner.java b/services/core/java/com/android/server/wm/TaskPositioner.java
index f7b802d..a867a5d4 100644
--- a/services/core/java/com/android/server/wm/TaskPositioner.java
+++ b/services/core/java/com/android/server/wm/TaskPositioner.java
@@ -133,14 +133,15 @@
 
         @Override
         public void onInputEvent(InputEvent event) {
-            if (!(event instanceof MotionEvent)
-                    || (event.getSource() & InputDevice.SOURCE_CLASS_POINTER) == 0) {
-                return;
-            }
-            final MotionEvent motionEvent = (MotionEvent) event;
             boolean handled = false;
-
             try {
+                // All returns need to be in the try block to make sure the finishInputEvent is
+                // called correctly.
+                if (!(event instanceof MotionEvent)
+                        || (event.getSource() & InputDevice.SOURCE_CLASS_POINTER) == 0) {
+                    return;
+                }
+                final MotionEvent motionEvent = (MotionEvent) event;
                 if (mDragEnded) {
                     // The drag has ended but the clean-up message has not been processed by
                     // window manager. Drop events that occur after this until window manager
diff --git a/services/core/java/com/android/server/wm/WindowFrames.java b/services/core/java/com/android/server/wm/WindowFrames.java
index 84fcfbd..bafa38c 100644
--- a/services/core/java/com/android/server/wm/WindowFrames.java
+++ b/services/core/java/com/android/server/wm/WindowFrames.java
@@ -106,6 +106,16 @@
      */
     final Rect mLastFrame = new Rect();
 
+    /**
+     * mFrame but relative to the parent container.
+     */
+    final Rect mRelFrame = new Rect();
+
+    /**
+     * mLastFrame but relative to the parent container
+     */
+    final Rect mLastRelFrame = new Rect();
+
     private boolean mFrameSizeChanged = false;
 
     // Frame that is scaled to the application's coordinate space when in
diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java
index d63fbc21..41e88c8 100644
--- a/services/core/java/com/android/server/wm/WindowProcessController.java
+++ b/services/core/java/com/android/server/wm/WindowProcessController.java
@@ -554,7 +554,7 @@
             if (task == null) {
                 continue;
             }
-            ActivityRecord topActivity = task.getTopActivity();
+            ActivityRecord topActivity = task.getTopNonFinishingActivity();
             if (topActivity != null && topActivity.visible) {
                 return true;
             }
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index f98e307..db0f3bc 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -212,7 +212,6 @@
 import com.android.server.policy.WindowManagerPolicy;
 import com.android.server.protolog.common.ProtoLog;
 import com.android.server.wm.LocalAnimationAdapter.AnimationSpec;
-import com.android.server.wm.utils.InsetUtils;
 import com.android.server.wm.utils.WmDisplayCutout;
 
 import java.io.PrintWriter;
@@ -1129,6 +1128,22 @@
             }
         }
 
+        // Calculate relative frame
+        mWindowFrames.mRelFrame.set(mWindowFrames.mFrame);
+        WindowContainer parent = getParent();
+        int parentLeft = 0;
+        int parentTop = 0;
+        if (mIsChildWindow) {
+            parentLeft = ((WindowState) parent).mWindowFrames.mFrame.left;
+            parentTop = ((WindowState) parent).mWindowFrames.mFrame.top;
+        } else if (parent != null) {
+            final Rect parentBounds = parent.getDisplayedBounds();
+            parentLeft = parentBounds.left;
+            parentTop = parentBounds.top;
+        }
+        mWindowFrames.mRelFrame.offsetTo(mWindowFrames.mFrame.left - parentLeft,
+                mWindowFrames.mFrame.top - parentTop);
+
         if (DEBUG_LAYOUT || DEBUG) {
             Slog.v(TAG, "Resolving (mRequestedWidth="
                             + mRequestedWidth + ", mRequestedheight="
@@ -1154,6 +1169,11 @@
         return mWindowFrames.mFrame;
     }
 
+    /** Accessor for testing */
+    Rect getRelativeFrameLw() {
+        return mWindowFrames.mRelFrame;
+    }
+
     @Override
     public Rect getDisplayFrameLw() {
         return mWindowFrames.mDisplayFrame;
@@ -1289,6 +1309,7 @@
         // We update mLastFrame always rather than in the conditional with the last inset
         // variables, because mFrameSizeChanged only tracks the width and height changing.
         mWindowFrames.mLastFrame.set(mWindowFrames.mFrame);
+        mWindowFrames.mLastRelFrame.set(mWindowFrames.mRelFrame);
 
         if (didFrameInsetsChange
                 || winAnimator.mSurfaceResized
@@ -1859,8 +1880,8 @@
     private boolean hasMoved() {
         return mHasSurface && (mWindowFrames.hasContentChanged() || mMovedByResize)
                 && !mAnimatingExit
-                && (mWindowFrames.mFrame.top != mWindowFrames.mLastFrame.top
-                    || mWindowFrames.mFrame.left != mWindowFrames.mLastFrame.left)
+                && (mWindowFrames.mRelFrame.top != mWindowFrames.mLastRelFrame.top
+                    || mWindowFrames.mRelFrame.left != mWindowFrames.mLastRelFrame.left)
                 && (!mIsChildWindow || !getParentWindow().hasMoved());
     }
 
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index 2a364e6..3043b6f 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -83,6 +83,7 @@
 import com.android.server.appbinding.AppBindingService;
 import com.android.server.attention.AttentionManagerService;
 import com.android.server.audio.AudioService;
+import com.android.server.biometrics.AuthService;
 import com.android.server.biometrics.BiometricService;
 import com.android.server.biometrics.face.FaceService;
 import com.android.server.biometrics.fingerprint.FingerprintService;
@@ -1775,8 +1776,13 @@
                 t.traceBegin("StartBiometricService");
                 mSystemServiceManager.startService(BiometricService.class);
                 t.traceEnd();
+
+                t.traceBegin("StartAuthService");
+                mSystemServiceManager.startService(AuthService.class);
+                t.traceEnd();
             }
 
+
             t.traceBegin("StartBackgroundDexOptService");
             try {
                 BackgroundDexOptService.schedule(context);
diff --git a/services/tests/mockingservicestests/src/com/android/server/DeviceIdleControllerTest.java b/services/tests/mockingservicestests/src/com/android/server/DeviceIdleControllerTest.java
index 9c97305..45de451 100644
--- a/services/tests/mockingservicestests/src/com/android/server/DeviceIdleControllerTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/DeviceIdleControllerTest.java
@@ -33,6 +33,8 @@
 import static com.android.server.DeviceIdleController.LIGHT_STATE_PRE_IDLE;
 import static com.android.server.DeviceIdleController.LIGHT_STATE_WAITING_FOR_NETWORK;
 import static com.android.server.DeviceIdleController.MSG_REPORT_STATIONARY_STATUS;
+import static com.android.server.DeviceIdleController.MSG_RESET_PRE_IDLE_TIMEOUT_FACTOR;
+import static com.android.server.DeviceIdleController.MSG_UPDATE_PRE_IDLE_TIMEOUT_FACTOR;
 import static com.android.server.DeviceIdleController.STATE_ACTIVE;
 import static com.android.server.DeviceIdleController.STATE_IDLE;
 import static com.android.server.DeviceIdleController.STATE_IDLE_MAINTENANCE;
@@ -180,7 +182,9 @@
                 mHandler = controller.new MyHandler(getContext().getMainLooper());
                 spyOn(mHandler);
                 doNothing().when(mHandler).handleMessage(argThat((message) ->
-                        message.what != MSG_REPORT_STATIONARY_STATUS));
+                        message.what != MSG_REPORT_STATIONARY_STATUS
+                        && message.what != MSG_UPDATE_PRE_IDLE_TIMEOUT_FACTOR
+                        && message.what != MSG_RESET_PRE_IDLE_TIMEOUT_FACTOR));
                 doAnswer(new Answer<Boolean>() {
                     @Override
                     public Boolean answer(InvocationOnMock invocation) throws Throwable {
@@ -189,7 +193,9 @@
                         return true;
                     }
                 }).when(mHandler).sendMessageDelayed(
-                        argThat((message) -> message.what == MSG_REPORT_STATIONARY_STATUS),
+                        argThat((message) -> message.what == MSG_REPORT_STATIONARY_STATUS
+                                || message.what == MSG_UPDATE_PRE_IDLE_TIMEOUT_FACTOR
+                                || message.what == MSG_RESET_PRE_IDLE_TIMEOUT_FACTOR),
                         anyLong());
             }
 
@@ -1734,13 +1740,11 @@
             }
             //TODO(b/123045185): Mocked Handler of DeviceIdleController to make message loop
             //workable in this test class
-            mDeviceIdleController.updatePreIdleFactor();
             float expectedfactor = mDeviceIdleController.getPreIdleTimeoutByMode(mode);
             float curfactor = mDeviceIdleController.getPreIdleTimeoutFactor();
             assertEquals("Pre idle time factor of mode [" + mode + "].",
                     expectedfactor, curfactor, delta);
             mDeviceIdleController.resetPreIdleTimeoutMode();
-            mDeviceIdleController.updatePreIdleFactor();
 
             checkNextAlarmTimeWithNewPreIdleFactor(expectedfactor, STATE_INACTIVE);
             checkNextAlarmTimeWithNewPreIdleFactor(expectedfactor, STATE_IDLE_PENDING);
@@ -2088,14 +2092,11 @@
                         mDeviceIdleController.SET_IDLE_FACTOR_RESULT_OK, ret);
             }
             if (ret == mDeviceIdleController.SET_IDLE_FACTOR_RESULT_OK) {
-                mDeviceIdleController.updatePreIdleFactor();
                 long newAlarm = mDeviceIdleController.getNextAlarmTime();
                 long newDelay = (long) ((alarm - now) * factor);
                 assertTrue("setPreIdleTimeoutFactor: " + factor,
                         Math.abs(newDelay - (newAlarm - now)) <  errorTolerance);
                 mDeviceIdleController.resetPreIdleTimeoutMode();
-                mDeviceIdleController.updatePreIdleFactor();
-                mDeviceIdleController.maybeDoImmediateMaintenance();
                 newAlarm = mDeviceIdleController.getNextAlarmTime();
                 assertTrue("resetPreIdleTimeoutMode from: " + factor,
                         Math.abs(newAlarm - alarm) < errorTolerance);
@@ -2106,19 +2107,14 @@
                 assertTrue("setPreIdleTimeoutFactor: " + factor + " before step to idle",
                         Math.abs(newDelay - (newAlarm - now)) <  errorTolerance);
                 mDeviceIdleController.resetPreIdleTimeoutMode();
-                mDeviceIdleController.updatePreIdleFactor();
-                mDeviceIdleController.maybeDoImmediateMaintenance();
             }
         } else {
             mDeviceIdleController.setPreIdleTimeoutFactor(factor);
-            mDeviceIdleController.updatePreIdleFactor();
             long newAlarm = mDeviceIdleController.getNextAlarmTime();
             assertTrue("setPreIdleTimeoutFactor: " + factor
                     + " shounld not change next alarm" ,
                     (newAlarm == alarm));
             mDeviceIdleController.resetPreIdleTimeoutMode();
-            mDeviceIdleController.updatePreIdleFactor();
-            mDeviceIdleController.maybeDoImmediateMaintenance();
         }
     }
 
@@ -2138,18 +2134,15 @@
             long alarm = mDeviceIdleController.getNextAlarmTime();
             mDeviceIdleController.setIdleStartTimeForTest(
                     now - (long) (mConstants.IDLE_TIMEOUT * 0.6));
-            mDeviceIdleController.maybeDoImmediateMaintenance();
             long newAlarm = mDeviceIdleController.getNextAlarmTime();
             assertTrue("maintenance not reschedule IDLE_TIMEOUT * 0.6",
                     newAlarm == alarm);
             mDeviceIdleController.setIdleStartTimeForTest(
                     now - (long) (mConstants.IDLE_TIMEOUT * 1.2));
-            mDeviceIdleController.maybeDoImmediateMaintenance();
             newAlarm = mDeviceIdleController.getNextAlarmTime();
             assertTrue("maintenance not reschedule IDLE_TIMEOUT * 1.2",
                     (newAlarm - now) < minuteInMillis);
             mDeviceIdleController.resetPreIdleTimeoutMode();
-            mDeviceIdleController.updatePreIdleFactor();
         }
     }
 }
diff --git a/services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java b/services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java
new file mode 100644
index 0000000..106a723
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java
@@ -0,0 +1,194 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.biometrics;
+
+import static android.hardware.biometrics.BiometricConstants.BIOMETRIC_SUCCESS;
+
+import static junit.framework.Assert.assertEquals;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.hardware.biometrics.IBiometricEnabledOnKeyguardCallback;
+import android.hardware.biometrics.IBiometricService;
+import android.hardware.biometrics.IBiometricServiceReceiver;
+import android.os.Binder;
+import android.os.Bundle;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.filters.SmallTest;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@SmallTest
+public class AuthServiceTest {
+
+    private static final String TAG = "AuthServiceTest";
+    private static final String TEST_OP_PACKAGE_NAME = "test_package";
+
+    private AuthService mAuthService;
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private PackageManager mPackageManager;
+    @Mock
+    IBiometricServiceReceiver mReceiver;
+    @Mock
+    AuthService.Injector mInjector;
+    @Mock
+    IBiometricService mBiometricService;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mInjector.getBiometricService()).thenReturn(mBiometricService);
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT))
+                .thenReturn(true);
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_IRIS)).thenReturn(true);
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(true);
+    }
+
+
+    // TODO(b/141025588): Check that an exception is thrown when the userId != callingUserId
+    @Test
+    public void testAuthenticate_callsBiometricServiceAuthenticate() throws
+            Exception {
+        mAuthService = new AuthService(mContext, mInjector);
+        mAuthService.onStart();
+
+        final Binder token = new Binder();
+        final Bundle bundle = new Bundle();
+        final long sessionId = 0;
+        final int userId = 0;
+
+        mAuthService.mImpl.authenticate(
+                token,
+                sessionId,
+                userId,
+                mReceiver,
+                TEST_OP_PACKAGE_NAME,
+                bundle);
+        waitForIdle();
+        verify(mBiometricService).authenticate(
+                eq(token),
+                eq(sessionId),
+                eq(userId),
+                eq(mReceiver),
+                eq(TEST_OP_PACKAGE_NAME),
+                eq(bundle));
+    }
+
+    @Test
+    public void testCanAuthenticate_callsBiometricServiceCanAuthenticate() throws
+            Exception {
+        mAuthService = new AuthService(mContext, mInjector);
+        mAuthService.onStart();
+
+        final int userId = 0;
+        final int expectedResult = BIOMETRIC_SUCCESS;
+        when(mBiometricService.canAuthenticate(anyString(), anyInt())).thenReturn(expectedResult);
+
+        final int result = mAuthService.mImpl.canAuthenticate(TEST_OP_PACKAGE_NAME, userId);
+
+        assertEquals(expectedResult, result);
+        waitForIdle();
+        verify(mBiometricService).canAuthenticate(
+                eq(TEST_OP_PACKAGE_NAME),
+                eq(userId));
+    }
+
+
+    @Test
+    public void testHasEnrolledBiometrics_callsBiometricServiceHasEnrolledBiometrics() throws
+            Exception {
+        mAuthService = new AuthService(mContext, mInjector);
+        mAuthService.onStart();
+
+        final int userId = 0;
+        final boolean expectedResult = true;
+        when(mBiometricService.hasEnrolledBiometrics(anyInt(), anyString())).thenReturn(
+                expectedResult);
+
+        final boolean result = mAuthService.mImpl.hasEnrolledBiometrics(userId,
+                TEST_OP_PACKAGE_NAME);
+
+        assertEquals(expectedResult, result);
+        waitForIdle();
+        verify(mBiometricService).hasEnrolledBiometrics(
+                eq(userId),
+                eq(TEST_OP_PACKAGE_NAME));
+    }
+
+
+    @Test
+    public void testRegisterKeyguardCallback_callsBiometricServiceRegisterKeyguardCallback()
+            throws Exception {
+        mAuthService = new AuthService(mContext, mInjector);
+        mAuthService.onStart();
+
+        final IBiometricEnabledOnKeyguardCallback callback =
+                new IBiometricEnabledOnKeyguardCallback.Default();
+
+        mAuthService.mImpl.registerEnabledOnKeyguardCallback(callback);
+
+        waitForIdle();
+        verify(mBiometricService).registerEnabledOnKeyguardCallback(eq(callback));
+    }
+
+    @Test
+    public void testSetActiveUser_callsBiometricServiceSetActiveUser() throws
+            Exception {
+        mAuthService = new AuthService(mContext, mInjector);
+        mAuthService.onStart();
+
+        final int userId = 0;
+
+        mAuthService.mImpl.setActiveUser(userId);
+
+        waitForIdle();
+        verify(mBiometricService).setActiveUser(eq(userId));
+    }
+
+    @Test
+    public void testResetLockout_callsBiometricServiceResetLockout() throws
+            Exception {
+        mAuthService = new AuthService(mContext, mInjector);
+        mAuthService.onStart();
+
+        final byte[] token = new byte[0];
+
+        mAuthService.mImpl.resetLockout(token);
+
+        waitForIdle();
+        verify(mBiometricService).resetLockout(token);
+    }
+
+    private static void waitForIdle() {
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java b/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java
index ec47a95..4ced421 100644
--- a/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java
@@ -36,7 +36,6 @@
 import android.app.IActivityManager;
 import android.content.ContentResolver;
 import android.content.Context;
-import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.hardware.biometrics.Authenticator;
 import android.hardware.biometrics.BiometricAuthenticator;
@@ -82,6 +81,8 @@
 
     private static final String FINGERPRINT_ACQUIRED_SENSOR_DIRTY = "sensor_dirty";
 
+    private static final int STRENGTH_STRONG = 1;
+
     private BiometricService mBiometricService;
 
     @Mock
@@ -91,8 +92,6 @@
     @Mock
     private Resources mResources;
     @Mock
-    private PackageManager mPackageManager;
-    @Mock
     IBiometricServiceReceiver mReceiver1;
     @Mock
     IBiometricServiceReceiver mReceiver2;
@@ -107,14 +106,11 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        when(mContext.getPackageManager()).thenReturn(mPackageManager);
         when(mContext.getContentResolver()).thenReturn(mContentResolver);
         when(mContext.getResources()).thenReturn(mResources);
 
         when(mInjector.getActivityManagerService()).thenReturn(mock(IActivityManager.class));
         when(mInjector.getStatusBarService()).thenReturn(mock(IStatusBarService.class));
-        when(mInjector.getFingerprintAuthenticator()).thenReturn(mFingerprintAuthenticator);
-        when(mInjector.getFaceAuthenticator()).thenReturn(mFaceAuthenticator);
         when(mInjector.getSettingObserver(any(), any(), any())).thenReturn(
                 mock(BiometricService.SettingObserver.class));
         when(mInjector.getKeyStore()).thenReturn(mock(KeyStore.class));
@@ -131,11 +127,6 @@
     @Test
     public void testAuthenticate_withoutHardware_returnsErrorHardwareNotPresent() throws
             Exception {
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT))
-                .thenReturn(false);
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_IRIS)).thenReturn(false);
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(false);
-
         mBiometricService = new BiometricService(mContext, mInjector);
         mBiometricService.onStart();
 
@@ -150,11 +141,13 @@
 
     @Test
     public void testAuthenticate_withoutEnrolled_returnsErrorNoBiometrics() throws Exception {
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)).thenReturn(true);
         when(mFingerprintAuthenticator.isHardwareDetected(any())).thenReturn(true);
 
         mBiometricService = new BiometricService(mContext, mInjector);
         mBiometricService.onStart();
+        mBiometricService.mImpl.registerAuthenticator(0 /* id */, STRENGTH_STRONG,
+                BiometricAuthenticator.TYPE_FINGERPRINT, mFingerprintAuthenticator);
+
 
         invokeAuthenticate(mBiometricService.mImpl, mReceiver1, false /* requireConfirmation */,
                 false /* allowDeviceCredential */);
@@ -168,12 +161,13 @@
     @Test
     public void testAuthenticate_whenHalIsDead_returnsErrorHardwareUnavailable() throws
             Exception {
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)).thenReturn(true);
         when(mFingerprintAuthenticator.hasEnrolledTemplates(anyInt(), any())).thenReturn(true);
         when(mFingerprintAuthenticator.isHardwareDetected(any())).thenReturn(false);
 
         mBiometricService = new BiometricService(mContext, mInjector);
         mBiometricService.onStart();
+        mBiometricService.mImpl.registerAuthenticator(0 /* id */, STRENGTH_STRONG,
+                BiometricAuthenticator.TYPE_FINGERPRINT, mFingerprintAuthenticator);
 
         invokeAuthenticate(mBiometricService.mImpl, mReceiver1, false /* requireConfirmation */,
                 false /* allowDeviceCredential */);
@@ -187,12 +181,13 @@
     @Test
     public void testAuthenticateFace_respectsUserSetting()
             throws Exception {
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(true);
         when(mFaceAuthenticator.hasEnrolledTemplates(anyInt(), any())).thenReturn(true);
         when(mFaceAuthenticator.isHardwareDetected(any())).thenReturn(true);
 
         mBiometricService = new BiometricService(mContext, mInjector);
         mBiometricService.onStart();
+        mBiometricService.mImpl.registerAuthenticator(0 /* id */, STRENGTH_STRONG,
+                BiometricAuthenticator.TYPE_FACE, mFaceAuthenticator);
 
         // Disabled in user settings receives onError
         when(mBiometricService.mSettingObserver.getFaceEnabledForApps(anyInt())).thenReturn(false);
@@ -248,8 +243,6 @@
     @Test
     public void testAuthenticate_happyPathWithoutConfirmation() throws Exception {
         setupAuthForOnly(BiometricAuthenticator.TYPE_FINGERPRINT);
-        mBiometricService = new BiometricService(mContext, mInjector);
-        mBiometricService.onStart();
 
         // Start testing the happy path
         invokeAuthenticate(mBiometricService.mImpl, mReceiver1, false /* requireConfirmation */,
@@ -861,27 +854,24 @@
     // Helper methods
 
     private void setupAuthForOnly(int modality) throws RemoteException {
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT))
-                .thenReturn(false);
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(false);
-
-        if (modality == BiometricAuthenticator.TYPE_FINGERPRINT) {
-            when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT))
-                    .thenReturn(true);
-            when(mFingerprintAuthenticator.hasEnrolledTemplates(anyInt(), any())).thenReturn(true);
-            when(mFingerprintAuthenticator.isHardwareDetected(any())).thenReturn(true);
-        } else if (modality == BiometricAuthenticator.TYPE_FACE) {
-            when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(true);
-            when(mFaceAuthenticator.hasEnrolledTemplates(anyInt(), any())).thenReturn(true);
-            when(mFaceAuthenticator.isHardwareDetected(any())).thenReturn(true);
-        } else {
-            fail("Unknown modality: " + modality);
-        }
-
         mBiometricService = new BiometricService(mContext, mInjector);
         mBiometricService.onStart();
 
         when(mBiometricService.mSettingObserver.getFaceEnabledForApps(anyInt())).thenReturn(true);
+
+        if (modality == BiometricAuthenticator.TYPE_FINGERPRINT) {
+            when(mFingerprintAuthenticator.hasEnrolledTemplates(anyInt(), any())).thenReturn(true);
+            when(mFingerprintAuthenticator.isHardwareDetected(any())).thenReturn(true);
+            mBiometricService.mImpl.registerAuthenticator(0 /* id */, STRENGTH_STRONG, modality,
+                    mFingerprintAuthenticator);
+        } else if (modality == BiometricAuthenticator.TYPE_FACE) {
+            when(mFaceAuthenticator.hasEnrolledTemplates(anyInt(), any())).thenReturn(true);
+            when(mFaceAuthenticator.isHardwareDetected(any())).thenReturn(true);
+            mBiometricService.mImpl.registerAuthenticator(0 /* id */, STRENGTH_STRONG, modality,
+                    mFaceAuthenticator);
+        } else {
+            fail("Unknown modality: " + modality);
+        }
     }
 
     private void resetReceiver() {
diff --git a/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java b/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java
index 7081d2e..1d04c83 100644
--- a/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java
+++ b/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java
@@ -37,6 +37,7 @@
 import android.hardware.SensorEventListener;
 import android.hardware.display.AmbientBrightnessDayStats;
 import android.hardware.display.BrightnessChangeEvent;
+import android.hardware.display.BrightnessConfiguration;
 import android.hardware.display.DisplayManager;
 import android.hardware.display.DisplayedContentSample;
 import android.hardware.display.DisplayedContentSamplingAttributes;
@@ -78,6 +79,7 @@
 @RunWith(AndroidJUnit4.class)
 public class BrightnessTrackerTest {
     private static final float DEFAULT_INITIAL_BRIGHTNESS = 2.5f;
+    private static final boolean DEFAULT_COLOR_SAMPLING_ENABLED = true;
     private static final float FLOAT_DELTA = 0.01f;
 
     private BrightnessTracker mTracker;
@@ -151,6 +153,40 @@
     }
 
     @Test
+    public void testModifyBrightnessConfiguration() {
+        mInjector.mInteractive = true;
+        // Start with tracker not listening for color samples.
+        startTracker(mTracker, DEFAULT_INITIAL_BRIGHTNESS, /* collectColorSamples= */ false);
+        assertFalse(mInjector.mColorSamplingEnabled);
+
+        // Update brightness config to enabled color sampling.
+        mTracker.setBrightnessConfiguration(buildBrightnessConfiguration(
+                /* collectColorSamples= */ true));
+        mInjector.waitForHandler();
+        assertTrue(mInjector.mColorSamplingEnabled);
+
+        // Update brightness config to disable color sampling.
+        mTracker.setBrightnessConfiguration(buildBrightnessConfiguration(
+                /* collectColorSamples= */ false));
+        mInjector.waitForHandler();
+        assertFalse(mInjector.mColorSamplingEnabled);
+
+        // Pretend screen is off, update config to turn on color sampling.
+        mInjector.sendScreenChange(/*screen on */ false);
+        mTracker.setBrightnessConfiguration(buildBrightnessConfiguration(
+                /* collectColorSamples= */ true));
+        mInjector.waitForHandler();
+        assertFalse(mInjector.mColorSamplingEnabled);
+
+        // Pretend screen is on.
+        mInjector.sendScreenChange(/*screen on */ true);
+        assertTrue(mInjector.mColorSamplingEnabled);
+
+        mTracker.stop();
+        assertFalse(mInjector.mColorSamplingEnabled);
+    }
+
+    @Test
     public void testNoColorSampling_WrongPixelFormat() {
         mInjector.mDefaultSamplingAttributes =
                 new DisplayedContentSamplingAttributes(
@@ -278,7 +314,7 @@
         mInjector.mSecureIntSettings.put(Settings.Secure.NIGHT_DISPLAY_ACTIVATED, 1);
         mInjector.mSecureIntSettings.put(Settings.Secure.NIGHT_DISPLAY_COLOR_TEMPERATURE, 3333);
 
-        startTracker(mTracker, initialBrightness);
+        startTracker(mTracker, initialBrightness, DEFAULT_COLOR_SAMPLING_ENABLED);
         mInjector.mBroadcastReceiver.onReceive(InstrumentationRegistry.getContext(),
                 batteryChangeEvent(30, 60));
         mInjector.mSensorListener.onSensorChanged(createSensorEvent(1000.0f));
@@ -311,7 +347,7 @@
     @Test
     public void testIgnoreAutomaticBrightnessChange() {
         final int initialBrightness = 30;
-        startTracker(mTracker, initialBrightness);
+        startTracker(mTracker, initialBrightness, DEFAULT_COLOR_SAMPLING_ENABLED);
         mInjector.mSensorListener.onSensorChanged(createSensorEvent(1.0f));
         mInjector.incrementTime(TimeUnit.SECONDS.toMillis(1));
 
@@ -750,11 +786,13 @@
     }
 
     private void startTracker(BrightnessTracker tracker) {
-        startTracker(tracker, DEFAULT_INITIAL_BRIGHTNESS);
+        startTracker(tracker, DEFAULT_INITIAL_BRIGHTNESS,  DEFAULT_COLOR_SAMPLING_ENABLED);
     }
 
-    private void startTracker(BrightnessTracker tracker, float initialBrightness) {
+    private void startTracker(BrightnessTracker tracker, float initialBrightness,
+            boolean collectColorSamples) {
         tracker.start(initialBrightness);
+        tracker.setBrightnessConfiguration(buildBrightnessConfiguration(collectColorSamples));
         mInjector.waitForHandler();
     }
 
@@ -772,6 +810,14 @@
         mInjector.waitForHandler();
     }
 
+    private BrightnessConfiguration buildBrightnessConfiguration(boolean collectColorSamples) {
+        BrightnessConfiguration.Builder builder = new BrightnessConfiguration.Builder(
+                /* lux = */ new float[] {0f, 10f, 100f},
+                /* nits = */ new float[] {1f, 90f, 100f});
+        builder.setShouldCollectColorSamples(collectColorSamples);
+        return builder.build();
+    }
+
     private static final class Idle implements MessageQueue.IdleHandler {
         private boolean mIdle;
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java
index 9df7b45..24db657 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java
@@ -38,12 +38,7 @@
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
 
-import android.app.TaskStackListener;
-import android.content.pm.ActivityInfo;
-import android.content.res.Configuration;
-import android.os.IBinder;
 import android.platform.test.annotations.Presubmit;
 
 import androidx.test.filters.SmallTest;
@@ -51,10 +46,6 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import java.util.ArrayList;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.TimeUnit;
-
 /**
  * Tests for the {@link ActivityDisplay} class.
  *
@@ -181,7 +172,7 @@
         final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
         final KeyguardController keyguard = mSupervisor.getKeyguardController();
         final ActivityStack stack = new StackBuilder(mRootActivityContainer).build();
-        final ActivityRecord activity = stack.getTopActivity();
+        final ActivityRecord activity = stack.getTopNonFinishingActivity();
 
         // Create empty stack on top.
         final ActivityStack emptyStack =
@@ -237,7 +228,7 @@
         display.positionChildAtTop(alwaysOnTopStack, false /* includingParents */);
         assertTrue(alwaysOnTopStack.isAlwaysOnTop());
         // Ensure always on top state is synced to the children of the stack.
-        assertTrue(alwaysOnTopStack.getTopActivity().isAlwaysOnTop());
+        assertTrue(alwaysOnTopStack.getTopNonFinishingActivity().isAlwaysOnTop());
         assertEquals(alwaysOnTopStack, display.getTopStack());
 
         final ActivityStack pinnedStack = display.createStack(
@@ -331,50 +322,4 @@
         verify(mSupervisor).removeTaskByIdLocked(eq(task1.mTaskId), anyBoolean(), anyBoolean(),
                 any());
     }
-
-    /**
-     * Ensures that {@link TaskStackListener} can receive callback about the activity in size
-     * compatibility mode.
-     */
-    @Test
-    public void testHandleActivitySizeCompatMode() throws Exception {
-        final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
-        final ActivityRecord activity = createFullscreenStackWithSimpleActivityAt(
-                display).topRunningActivityLocked();
-        activity.setState(ActivityStack.ActivityState.RESUMED, "testHandleActivitySizeCompatMode");
-        when(activity.getRequestedOrientation()).thenReturn(
-                ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-        activity.info.resizeMode = ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
-        activity.info.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
-        activity.visible = true;
-        activity.ensureActivityConfiguration(0 /* globalChanges */, false /* preserveWindow */);
-
-        final ArrayList<CompletableFuture<IBinder>> resultWrapper = new ArrayList<>();
-        mService.getTaskChangeNotificationController().registerTaskStackListener(
-                new TaskStackListener() {
-                    @Override
-                    public void onSizeCompatModeActivityChanged(int displayId,
-                            IBinder activityToken) {
-                        resultWrapper.get(0).complete(activityToken);
-                    }
-                });
-
-        resultWrapper.add(new CompletableFuture<>());
-
-        // resize the display to exercise size-compat mode
-        final DisplayContent displayContent = display.mDisplayContent;
-        displayContent.mBaseDisplayHeight = (int) (0.8f * displayContent.mBaseDisplayHeight);
-        Configuration c = new Configuration();
-        displayContent.computeScreenConfiguration(c);
-        display.onRequestedOverrideConfigurationChanged(c);
-
-        assertEquals(activity.appToken, resultWrapper.get(0).get(2, TimeUnit.SECONDS));
-
-        // Expect null token when switching to non-size-compat mode activity.
-        activity.info.resizeMode = ActivityInfo.RESIZE_MODE_RESIZEABLE;
-        resultWrapper.set(0, new CompletableFuture<>());
-        display.handleActivitySizeCompatModeIfNeeded(activity);
-
-        assertNull(resultWrapper.get(0).get(2, TimeUnit.SECONDS));
-    }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
index c51a46a..6c63d41 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
@@ -18,24 +18,18 @@
 
 import static android.content.pm.ActivityInfo.CONFIG_ORIENTATION;
 import static android.content.pm.ActivityInfo.CONFIG_SCREEN_LAYOUT;
-import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
 import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
 import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
 import static android.os.Process.NOBODY_UID;
 import static android.view.Display.DEFAULT_DISPLAY;
-import static android.view.Surface.ROTATION_0;
-import static android.view.Surface.ROTATION_90;
 import static android.view.WindowManager.TRANSIT_TASK_CLOSE;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyInt;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.atLeast;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
@@ -61,18 +55,13 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.when;
 
-import android.app.ActivityManager;
-import android.app.ActivityManagerInternal;
 import android.app.ActivityOptions;
-import android.app.WindowConfiguration;
 import android.app.servertransaction.ActivityConfigurationChangeItem;
 import android.app.servertransaction.ClientTransaction;
 import android.app.servertransaction.PauseActivityItem;
@@ -80,13 +69,11 @@
 import android.content.pm.ActivityInfo;
 import android.content.res.Configuration;
 import android.content.res.Resources;
-import android.graphics.Rect;
 import android.os.Bundle;
 import android.os.PersistableBundle;
 import android.platform.test.annotations.Presubmit;
 import android.util.MergedConfiguration;
 import android.util.MutableBoolean;
-import android.view.DisplayInfo;
 import android.view.IRemoteAnimationFinishedCallback;
 import android.view.IRemoteAnimationRunner.Stub;
 import android.view.RemoteAnimationAdapter;
@@ -120,7 +107,7 @@
     public void setUp() throws Exception {
         mStack = new StackBuilder(mRootActivityContainer).build();
         mTask = mStack.getChildAt(0);
-        mActivity = mTask.getTopActivity();
+        mActivity = mTask.getTopNonFinishingActivity();
 
         doReturn(false).when(mService).isBooting();
         doReturn(true).when(mService).isBooted();
@@ -219,23 +206,6 @@
     }
 
     @Test
-    public void testRestartProcessIfVisible() {
-        doNothing().when(mSupervisor).scheduleRestartTimeout(mActivity);
-        mActivity.visible = true;
-        mActivity.setSavedState(null /* savedState */);
-        mActivity.setState(ActivityStack.ActivityState.RESUMED, "testRestart");
-        prepareFixedAspectRatioUnresizableActivity();
-
-        final Rect originalOverrideBounds = new Rect(mActivity.getBounds());
-        setupDisplayAndParentSize(600, 1200);
-        // The visible activity should recompute configuration according to the last parent bounds.
-        mService.restartActivityProcessIfVisible(mActivity.appToken);
-
-        assertEquals(ActivityStack.ActivityState.RESTARTING_PROCESS, mActivity.getState());
-        assertNotEquals(originalOverrideBounds, mActivity.getBounds());
-    }
-
-    @Test
     public void testsApplyOptionsLocked() {
         ActivityOptions activityOptions = ActivityOptions.makeBasic();
 
@@ -484,214 +454,6 @@
     }
 
     @Test
-    public void testSizeCompatMode_KeepBoundsWhenChangingFromFreeformToFullscreen() {
-        setupDisplayContentForCompatDisplayInsets();
-
-        // put display in freeform mode
-        ActivityDisplay display = mActivity.getDisplay();
-        final Configuration c = new Configuration(display.getRequestedOverrideConfiguration());
-        c.windowConfiguration.setBounds(new Rect(0, 0, 2000, 1000));
-        c.densityDpi = 300;
-        c.windowConfiguration.setWindowingMode(WindowConfiguration.WINDOWING_MODE_FREEFORM);
-        display.onRequestedOverrideConfigurationChanged(c);
-
-        // launch compat activity in freeform and store bounds
-        when(mActivity.getRequestedOrientation()).thenReturn(
-                ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-        mTask.getRequestedOverrideConfiguration().orientation = Configuration.ORIENTATION_PORTRAIT;
-        mTask.setBounds(100, 100, 400, 600);
-        mActivity.info.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
-        mActivity.info.resizeMode = ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
-        mActivity.visible = true;
-        ensureActivityConfiguration();
-
-        final Rect bounds = new Rect(mActivity.getBounds());
-        final int density = mActivity.getConfiguration().densityDpi;
-
-        // change display configuration to fullscreen
-        c.windowConfiguration.setWindowingMode(WindowConfiguration.WINDOWING_MODE_FULLSCREEN);
-        display.onRequestedOverrideConfigurationChanged(c);
-
-        // check if dimensions stay the same
-        assertTrue(mActivity.inSizeCompatMode());
-        assertEquals(bounds.width(), mActivity.getBounds().width());
-        assertEquals(bounds.height(), mActivity.getBounds().height());
-        assertEquals(density, mActivity.getConfiguration().densityDpi);
-        assertEquals(WindowConfiguration.WINDOWING_MODE_FULLSCREEN, mActivity.getWindowingMode());
-    }
-
-    @Test
-    public void testSizeCompatMode_FixedAspectRatioBoundsWithDecor() {
-        setupDisplayContentForCompatDisplayInsets();
-        final int decorHeight = 200; // e.g. The device has cutout.
-        final DisplayPolicy policy = setupDisplayAndParentSize(600, 800).getDisplayPolicy();
-        spyOn(policy);
-        doAnswer(invocationOnMock -> {
-            final int rotation = invocationOnMock.<Integer>getArgument(0);
-            final Rect insets = invocationOnMock.<Rect>getArgument(4);
-            if (rotation == ROTATION_0) {
-                insets.top = decorHeight;
-            } else if (rotation == ROTATION_90) {
-                insets.left = decorHeight;
-            }
-            return null;
-        }).when(policy).getNonDecorInsetsLw(anyInt() /* rotation */, anyInt() /* width */,
-                anyInt() /* height */, any() /* displayCutout */, any() /* outInsets */);
-        // set appBounds to incorporate decor
-        final Configuration c =
-                new Configuration(mStack.getDisplay().getRequestedOverrideConfiguration());
-        c.windowConfiguration.getAppBounds().top = decorHeight;
-        mStack.getDisplay().onRequestedOverrideConfigurationChanged(c);
-
-        doReturn(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
-                .when(mActivity).getRequestedOrientation();
-        mActivity.info.resizeMode = RESIZE_MODE_UNRESIZEABLE;
-        mActivity.info.minAspectRatio = mActivity.info.maxAspectRatio = 1;
-        mActivity.visible = true;
-        ensureActivityConfiguration();
-        // The parent configuration doesn't change since the first resolved configuration, so the
-        // activity shouldn't be in the size compatibility mode.
-        assertFalse(mActivity.inSizeCompatMode());
-
-        final Rect appBounds = mActivity.getWindowConfiguration().getAppBounds();
-        // Ensure the app bounds keep the declared aspect ratio.
-        assertEquals(appBounds.width(), appBounds.height());
-        // The decor height should be a part of the effective bounds.
-        assertEquals(mActivity.getBounds().height(), appBounds.height() + decorHeight);
-
-        mTask.getConfiguration().windowConfiguration.setRotation(ROTATION_90);
-        mActivity.onConfigurationChanged(mTask.getConfiguration());
-        // After changing orientation, the aspect ratio should be the same.
-        assertEquals(appBounds.width(), appBounds.height());
-        // The decor height will be included in width.
-        assertEquals(mActivity.getBounds().width(), appBounds.width() + decorHeight);
-    }
-
-    @Test
-    public void testSizeCompatMode_FixedScreenConfigurationWhenMovingToDisplay() {
-        // Initialize different bounds on a new display.
-        final Rect newDisplayBounds = new Rect(0, 0, 1000, 2000);
-        DisplayInfo info = new DisplayInfo();
-        mService.mContext.getDisplay().getDisplayInfo(info);
-        info.logicalWidth = newDisplayBounds.width();
-        info.logicalHeight = newDisplayBounds.height();
-        info.logicalDensityDpi = 300;
-
-        final ActivityDisplay newDisplay =
-                addNewActivityDisplayAt(info, ActivityDisplay.POSITION_TOP);
-
-        final Configuration c =
-                new Configuration(mStack.getDisplay().getRequestedOverrideConfiguration());
-        c.densityDpi = 200;
-        mStack.getDisplay().onRequestedOverrideConfigurationChanged(c);
-        mActivity = new ActivityBuilder(mService)
-                .setTask(mTask)
-                .setResizeMode(RESIZE_MODE_UNRESIZEABLE)
-                .setMaxAspectRatio(1.5f)
-                .build();
-        mActivity.visible = true;
-
-        final Rect originalBounds = new Rect(mActivity.getBounds());
-        final int originalDpi = mActivity.getConfiguration().densityDpi;
-
-        // Move the non-resizable activity to the new display.
-        mStack.reparent(newDisplay.mDisplayContent, true /* onTop */);
-
-        assertEquals(originalBounds.width(),
-                mActivity.getWindowConfiguration().getBounds().width());
-        assertEquals(originalBounds.height(),
-                mActivity.getWindowConfiguration().getBounds().height());
-        assertEquals(originalDpi, mActivity.getConfiguration().densityDpi);
-        assertTrue(mActivity.inSizeCompatMode());
-    }
-
-    @Test
-    public void testSizeCompatMode_FixedScreenBoundsWhenDisplaySizeChanged() {
-        setupDisplayContentForCompatDisplayInsets();
-        when(mActivity.getRequestedOrientation()).thenReturn(
-                ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-        mTask.getWindowConfiguration().setAppBounds(mStack.getDisplay().getBounds());
-        mTask.getRequestedOverrideConfiguration().orientation = Configuration.ORIENTATION_PORTRAIT;
-        mActivity.info.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
-        mActivity.info.resizeMode = ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
-        mActivity.visible = true;
-
-        ensureActivityConfiguration();
-        final Rect originalBounds = new Rect(mActivity.getBounds());
-
-        // Change the size of current display.
-        setupDisplayAndParentSize(1000, 2000);
-        ensureActivityConfiguration();
-
-        assertEquals(originalBounds.width(),
-                mActivity.getWindowConfiguration().getBounds().width());
-        assertEquals(originalBounds.height(),
-                mActivity.getWindowConfiguration().getBounds().height());
-        assertTrue(mActivity.inSizeCompatMode());
-    }
-
-    @Test
-    public void testSizeCompatMode_FixedScreenLayoutSizeBits() {
-        final int fixedScreenLayout = Configuration.SCREENLAYOUT_LONG_NO
-                | Configuration.SCREENLAYOUT_SIZE_NORMAL;
-        final int layoutMask = Configuration.SCREENLAYOUT_LONG_MASK
-                | Configuration.SCREENLAYOUT_SIZE_MASK
-                | Configuration.SCREENLAYOUT_LAYOUTDIR_MASK;
-        mTask.getRequestedOverrideConfiguration().screenLayout = fixedScreenLayout
-                | Configuration.SCREENLAYOUT_LAYOUTDIR_LTR;
-        prepareFixedAspectRatioUnresizableActivity();
-
-        // The initial configuration should inherit from parent.
-        assertEquals(mTask.getConfiguration().screenLayout & layoutMask,
-                mActivity.getConfiguration().screenLayout & layoutMask);
-
-        mTask.getConfiguration().screenLayout = Configuration.SCREENLAYOUT_LAYOUTDIR_RTL
-                | Configuration.SCREENLAYOUT_LONG_YES | Configuration.SCREENLAYOUT_SIZE_LARGE;
-        mActivity.onConfigurationChanged(mTask.getConfiguration());
-
-        // The size and aspect ratio bits don't change, but the layout direction should be updated.
-        assertEquals(fixedScreenLayout | Configuration.SCREENLAYOUT_LAYOUTDIR_RTL,
-                mActivity.getConfiguration().screenLayout & layoutMask);
-    }
-
-    @Test
-    public void testSizeCompatMode_ResetNonVisibleActivity() {
-        final ActivityDisplay display = mStack.getDisplay();
-        spyOn(display);
-
-        prepareFixedAspectRatioUnresizableActivity();
-        mActivity.setState(STOPPED, "testSizeCompatMode");
-        mActivity.visible = false;
-        mActivity.app.setReportedProcState(ActivityManager.PROCESS_STATE_CACHED_ACTIVITY);
-        // Make the parent bounds to be different so the activity is in size compatibility mode.
-        setupDisplayAndParentSize(600, 1200);
-
-        // Simulate the display changes orientation.
-        doReturn(ActivityInfo.CONFIG_SCREEN_SIZE | CONFIG_ORIENTATION
-                | ActivityInfo.CONFIG_WINDOW_CONFIGURATION)
-                        .when(display).getLastOverrideConfigurationChanges();
-        mActivity.onConfigurationChanged(mTask.getConfiguration());
-        when(display.getLastOverrideConfigurationChanges()).thenCallRealMethod();
-        // The override configuration should not change so it is still in size compatibility mode.
-        assertTrue(mActivity.inSizeCompatMode());
-
-        // Change display density
-        final DisplayContent displayContent = mStack.getDisplay().mDisplayContent;
-        displayContent.mBaseDisplayDensity = (int) (0.7f * displayContent.mBaseDisplayDensity);
-        final Configuration c = new Configuration();
-        displayContent.computeScreenConfiguration(c);
-        mService.mAmInternal = mock(ActivityManagerInternal.class);
-        mStack.getDisplay().onRequestedOverrideConfigurationChanged(c);
-
-        // The override configuration should be reset and the activity's process will be killed.
-        assertFalse(mActivity.inSizeCompatMode());
-        verify(mActivity).restartProcessIfVisible();
-        waitHandlerIdle(mService.mH);
-        verify(mService.mAmInternal).killProcess(
-                eq(mActivity.app.mName), eq(mActivity.app.mUid), anyString());
-    }
-
-    @Test
     public void testTakeOptions() {
         ActivityOptions opts = ActivityOptions.makeRemoteAnimation(
                 new RemoteAnimationAdapter(new Stub() {
@@ -1015,7 +777,7 @@
         // Simulates that {@code currentTop} starts an existing activity from background (so its
         // state is stopped) and the starting flow just goes to place it at top.
         final ActivityStack nextStack = new StackBuilder(mRootActivityContainer).build();
-        final ActivityRecord nextTop = nextStack.getTopActivity();
+        final ActivityRecord nextTop = nextStack.getTopNonFinishingActivity();
         nextTop.setState(STOPPED, "test");
 
         mStack.mPausingActivity = currentTop;
@@ -1340,33 +1102,4 @@
 
         verify(mActivity).removeFromHistory(anyString());
     }
-
-    /** Setup {@link #mActivity} as a size-compat-mode-able activity without fixed orientation. */
-    private void prepareFixedAspectRatioUnresizableActivity() {
-        setupDisplayContentForCompatDisplayInsets();
-        mActivity.info.resizeMode = RESIZE_MODE_UNRESIZEABLE;
-        mActivity.info.maxAspectRatio = 1.5f;
-        mActivity.visible = true;
-        ensureActivityConfiguration();
-    }
-
-    private void setupDisplayContentForCompatDisplayInsets() {
-        final Rect displayBounds = mStack.getDisplay().getBounds();
-        setupDisplayAndParentSize(displayBounds.width(), displayBounds.height());
-    }
-
-    private DisplayContent setupDisplayAndParentSize(int width, int height) {
-        final DisplayContent displayContent = mStack.getDisplay().mDisplayContent;
-        displayContent.mBaseDisplayWidth = width;
-        displayContent.mBaseDisplayHeight = height;
-        final Configuration c =
-                new Configuration(mStack.getDisplay().getRequestedOverrideConfiguration());
-        c.windowConfiguration.setBounds(new Rect(0, 0, width, height));
-        c.windowConfiguration.setAppBounds(0, 0, width, height);
-        c.windowConfiguration.setRotation(ROTATION_0);
-        c.orientation = width > height
-                ? Configuration.ORIENTATION_LANDSCAPE : Configuration.ORIENTATION_PORTRAIT;
-        mStack.getDisplay().onRequestedOverrideConfigurationChanged(c);
-        return displayContent;
-    }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStackSupervisorTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStackSupervisorTests.java
index 128ed2a..0219539 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStackSupervisorTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStackSupervisorTests.java
@@ -115,7 +115,7 @@
         final ActivityDisplay newDisplay = addNewActivityDisplayAt(ActivityDisplay.POSITION_TOP);
         final ActivityStack stack = new StackBuilder(mRootActivityContainer)
                 .setDisplay(newDisplay).build();
-        final ActivityRecord unresizableActivity = stack.getTopActivity();
+        final ActivityRecord unresizableActivity = stack.getTopNonFinishingActivity();
         final Task task = unresizableActivity.getTask();
         unresizableActivity.info.resizeMode = ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
         task.setResizeMode(unresizableActivity.info.resizeMode);
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
index d0e07b6..aa9dd9d 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
@@ -243,8 +243,8 @@
                 new RootActivityContainer.FindTaskResult();
         mStack.findTaskLocked(r, result);
 
-        assertEquals(r, task.getTopActivity(false /* includeOverlays */));
-        assertEquals(taskOverlay, task.getTopActivity(true /* includeOverlays */));
+        assertEquals(r, task.getTopNonFinishingActivity(false /* includeOverlays */));
+        assertEquals(taskOverlay, task.getTopNonFinishingActivity(true /* includeOverlays */));
         assertNotNull(result.mRecord);
     }
 
@@ -1006,7 +1006,7 @@
 
         // There is still an activity1 in stack1 so the activity2 should be added to finishing list
         // that will be destroyed until idle.
-        stack2.getTopActivity().visible = true;
+        stack2.getTopNonFinishingActivity().visible = true;
         final ActivityRecord activity2 = finishTopActivity(stack2);
         assertEquals(STOPPING, activity2.getState());
         assertThat(mSupervisor.mStoppingActivities).contains(activity2);
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityTaskManagerServiceTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityTaskManagerServiceTests.java
index a23e2f1..e9546a2 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityTaskManagerServiceTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityTaskManagerServiceTests.java
@@ -55,7 +55,7 @@
     @Test
     public void testActivityFinish() {
         final ActivityStack stack = new StackBuilder(mRootActivityContainer).build();
-        final ActivityRecord activity = stack.getChildAt(0).getTopActivity();
+        final ActivityRecord activity = stack.getChildAt(0).getTopNonFinishingActivity();
         assertTrue("Activity must be finished", mService.finishActivity(activity.appToken,
                 0 /* resultCode */, null /* resultData */,
                 Activity.DONT_FINISH_TASK_WITH_ACTIVITY));
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
index 9f4143f..571f214 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
@@ -711,18 +711,14 @@
         final ActivityStack stack =
                 new ActivityTestsBase.StackBuilder(mWm.mAtmService.mRootActivityContainer)
                         .setDisplay(dc.mActivityDisplay).build();
-        final ActivityRecord activity = stack.topTask().getTopActivity();
+        final ActivityRecord activity = stack.topTask().getTopNonFinishingActivity();
 
         activity.setRequestedOrientation(newOrientation);
 
-        final ArgumentCaptor<Configuration> captor = ArgumentCaptor.forClass(Configuration.class);
-        verify(dc.mActivityDisplay).updateDisplayOverrideConfigurationLocked(captor.capture(),
-                same(activity), anyBoolean(), same(null));
-        final Configuration newDisplayConfig = captor.getValue();
         final int expectedOrientation = newOrientation == SCREEN_ORIENTATION_PORTRAIT
                 ? Configuration.ORIENTATION_PORTRAIT
                 : Configuration.ORIENTATION_LANDSCAPE;
-        assertEquals(expectedOrientation, newDisplayConfig.orientation);
+        assertEquals(expectedOrientation, dc.getConfiguration().orientation);
     }
 
     @Test
@@ -737,7 +733,7 @@
         final ActivityStack stack =
                 new ActivityTestsBase.StackBuilder(mWm.mAtmService.mRootActivityContainer)
                         .setDisplay(dc.mActivityDisplay).build();
-        final ActivityRecord activity = stack.topTask().getTopActivity();
+        final ActivityRecord activity = stack.topTask().getTopNonFinishingActivity();
 
         activity.setRequestedOrientation(newOrientation);
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
index e0ffb0d..4f2d5d2 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
@@ -61,6 +61,7 @@
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.SystemClock;
+import android.os.UserManager;
 import android.platform.test.annotations.Presubmit;
 import android.util.ArraySet;
 import android.util.SparseBooleanArray;
@@ -92,7 +93,9 @@
     private static final int TEST_USER_1_ID = 10;
     private static final int TEST_QUIET_USER_ID = 20;
     private static final UserInfo DEFAULT_USER_INFO = new UserInfo();
-    private static final UserInfo QUIET_USER_INFO = new UserInfo();
+    private static final UserInfo QUIET_PROFILE_USER_INFO = new UserInfo(TEST_QUIET_USER_ID,
+            "quiet_profile", null /* iconPath */, UserInfo.FLAG_QUIET_MODE,
+            UserManager.USER_TYPE_PROFILE_MANAGED);
     private static final int INVALID_STACK_ID = 999;
 
     private ActivityDisplay mDisplay;
@@ -125,7 +128,6 @@
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
         mCallbacksRecorder = new CallbacksRecorder();
         mRecentTasks.registerCallback(mCallbacksRecorder);
-        QUIET_USER_INFO.flags = UserInfo.FLAG_MANAGED_PROFILE | UserInfo.FLAG_QUIET_MODE;
 
         mTasks = new ArrayList<>();
         mTasks.add(createTaskBuilder(".Task1").build());
@@ -1220,7 +1222,7 @@
                 case TEST_USER_1_ID:
                     return DEFAULT_USER_INFO;
                 case TEST_QUIET_USER_ID:
-                    return QUIET_USER_INFO;
+                    return QUIET_PROFILE_USER_INFO;
             }
             return null;
         }
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationTest.java
index 41cbd81..b2cb8c9 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationTest.java
@@ -154,7 +154,7 @@
                 ACTIVITY_TYPE_RECENTS);
         assertThat(recentsStack).isNotNull();
 
-        ActivityRecord recentsActivity = recentsStack.getTopActivity();
+        ActivityRecord recentsActivity = recentsStack.getTopNonFinishingActivity();
         // The activity is started in background so it should be invisible and will be stopped.
         assertThat(recentsActivity).isNotNull();
         assertThat(mSupervisor.mStoppingActivities).contains(recentsActivity);
@@ -211,7 +211,7 @@
         display.mDisplayContent.mBoundsAnimationController = mock(BoundsAnimationController.class);
         ActivityStack homeStack = display.getHomeStack();
         // Assume the home activity support recents.
-        ActivityRecord targetActivity = homeStack.getTopActivity();
+        ActivityRecord targetActivity = homeStack.getTopNonFinishingActivity();
         if (targetActivity == null) {
             targetActivity = new ActivityBuilder(mService)
                     .setCreateTask(true)
diff --git a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
new file mode 100644
index 0000000..ecd9a83
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
@@ -0,0 +1,426 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static android.content.pm.ActivityInfo.CONFIG_ORIENTATION;
+import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
+import static android.view.Surface.ROTATION_270;
+import static android.view.Surface.ROTATION_90;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.server.wm.ActivityStack.ActivityState.STOPPED;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
+
+import android.app.ActivityManager;
+import android.app.ActivityManagerInternal;
+import android.app.TaskStackListener;
+import android.app.WindowConfiguration;
+import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
+import android.graphics.Rect;
+import android.os.IBinder;
+import android.platform.test.annotations.Presubmit;
+
+import androidx.test.filters.MediumTest;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.ArrayList;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Tests for Size Compatibility mode.
+ *
+ * Build/Install/Run:
+ *  atest WmTests:SizeCompatTests
+ */
+@MediumTest
+@Presubmit
+@RunWith(WindowTestRunner.class)
+public class SizeCompatTests extends ActivityTestsBase {
+    private ActivityStack mStack;
+    private Task mTask;
+    private ActivityRecord mActivity;
+
+    private void setUpApp(ActivityDisplay display) {
+        mStack = new StackBuilder(mRootActivityContainer).setDisplay(display).build();
+        mTask = mStack.getChildAt(0);
+        mActivity = mTask.getTopNonFinishingActivity();
+    }
+
+    private void ensureActivityConfiguration() {
+        mActivity.ensureActivityConfiguration(0 /* globalChanges */, false /* preserveWindow */);
+    }
+
+    @Test
+    public void testRestartProcessIfVisible() {
+        setUpApp(new TestActivityDisplay.Builder(mService, 1000, 2500).build());
+        doNothing().when(mSupervisor).scheduleRestartTimeout(mActivity);
+        mActivity.visible = true;
+        mActivity.setSavedState(null /* savedState */);
+        mActivity.setState(ActivityStack.ActivityState.RESUMED, "testRestart");
+        prepareUnresizable(1.5f /* maxAspect */, SCREEN_ORIENTATION_UNSPECIFIED);
+
+        final Rect originalOverrideBounds = new Rect(mActivity.getBounds());
+        resizeDisplay(mStack.getDisplay(), 600, 1200);
+        // The visible activity should recompute configuration according to the last parent bounds.
+        mService.restartActivityProcessIfVisible(mActivity.appToken);
+
+        assertEquals(ActivityStack.ActivityState.RESTARTING_PROCESS, mActivity.getState());
+        assertNotEquals(originalOverrideBounds, mActivity.getBounds());
+    }
+
+    @Test
+    public void testKeepBoundsWhenChangingFromFreeformToFullscreen() {
+        removeGlobalMinSizeRestriction();
+        // create freeform display and a freeform app
+        ActivityDisplay display = new TestActivityDisplay.Builder(mService, 2000, 1000)
+                .setCanRotate(false)
+                .setWindowingMode(WindowConfiguration.WINDOWING_MODE_FREEFORM).build();
+        setUpApp(display);
+
+        // Put app window into freeform and then make it a compat app.
+        mTask.setBounds(100, 100, 400, 600);
+        prepareUnresizable(-1.f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
+
+        final Rect bounds = new Rect(mActivity.getBounds());
+        final int density = mActivity.getConfiguration().densityDpi;
+
+        // change display configuration to fullscreen
+        Configuration c = new Configuration(display.getRequestedOverrideConfiguration());
+        c.windowConfiguration.setWindowingMode(WindowConfiguration.WINDOWING_MODE_FULLSCREEN);
+        display.onRequestedOverrideConfigurationChanged(c);
+
+        // check if dimensions stay the same
+        assertTrue(mActivity.inSizeCompatMode());
+        assertEquals(bounds.width(), mActivity.getBounds().width());
+        assertEquals(bounds.height(), mActivity.getBounds().height());
+        assertEquals(density, mActivity.getConfiguration().densityDpi);
+    }
+
+    @Test
+    public void testFixedAspectRatioBoundsWithDecor() {
+        final int decorHeight = 200; // e.g. The device has cutout.
+        setUpApp(new TestActivityDisplay.Builder(mService, 600, 800)
+                .setNotch(decorHeight).build());
+
+        mActivity.info.minAspectRatio = mActivity.info.maxAspectRatio = 1;
+        prepareUnresizable(-1f, SCREEN_ORIENTATION_UNSPECIFIED);
+
+        // The parent configuration doesn't change since the first resolved configuration, so the
+        // activity shouldn't be in the size compatibility mode.
+        assertFalse(mActivity.inSizeCompatMode());
+
+        final Rect appBounds = mActivity.getWindowConfiguration().getAppBounds();
+        // Ensure the app bounds keep the declared aspect ratio.
+        assertEquals(appBounds.width(), appBounds.height());
+        // The decor height should be a part of the effective bounds.
+        assertEquals(mActivity.getBounds().height(), appBounds.height() + decorHeight);
+
+        mTask.getConfiguration().windowConfiguration.setRotation(ROTATION_90);
+        mActivity.onConfigurationChanged(mTask.getConfiguration());
+        // After changing orientation, the aspect ratio should be the same.
+        assertEquals(appBounds.width(), appBounds.height());
+        // The decor height will be included in width.
+        assertEquals(mActivity.getBounds().width(), appBounds.width() + decorHeight);
+    }
+
+    @Test
+    public void testFixedScreenConfigurationWhenMovingToDisplay() {
+        setUpApp(new TestActivityDisplay.Builder(mService, 1000, 2500).build());
+
+        // Make a new less-tall display with lower density
+        final ActivityDisplay newDisplay =
+                new TestActivityDisplay.Builder(mService, 1000, 2000)
+                        .setDensityDpi(200).build();
+
+        mActivity = new ActivityBuilder(mService)
+                .setTask(mTask)
+                .setResizeMode(RESIZE_MODE_UNRESIZEABLE)
+                .setMaxAspectRatio(1.5f)
+                .build();
+        mActivity.visible = true;
+
+        final Rect originalBounds = new Rect(mActivity.getBounds());
+        final int originalDpi = mActivity.getConfiguration().densityDpi;
+
+        // Move the non-resizable activity to the new display.
+        mStack.reparent(newDisplay.mDisplayContent, true /* onTop */);
+
+        assertEquals(originalBounds.width(), mActivity.getBounds().width());
+        assertEquals(originalBounds.height(), mActivity.getBounds().height());
+        assertEquals(originalDpi, mActivity.getConfiguration().densityDpi);
+        assertTrue(mActivity.inSizeCompatMode());
+    }
+
+    @Test
+    public void testFixedScreenBoundsWhenDisplaySizeChanged() {
+        setUpApp(new TestActivityDisplay.Builder(mService, 1000, 2500).build());
+        prepareUnresizable(-1f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
+        assertFalse(mActivity.inSizeCompatMode());
+
+        final Rect origBounds = new Rect(mActivity.getBounds());
+
+        // Change the size of current display.
+        resizeDisplay(mStack.getDisplay(), 1000, 2000);
+        ensureActivityConfiguration();
+
+        assertEquals(origBounds.width(), mActivity.getWindowConfiguration().getBounds().width());
+        assertEquals(origBounds.height(), mActivity.getWindowConfiguration().getBounds().height());
+        assertTrue(mActivity.inSizeCompatMode());
+
+        // Change display size to a different orientation
+        resizeDisplay(mStack.getDisplay(), 2000, 1000);
+        ensureActivityConfiguration();
+        assertEquals(origBounds.width(), mActivity.getWindowConfiguration().getBounds().width());
+        assertEquals(origBounds.height(), mActivity.getWindowConfiguration().getBounds().height());
+    }
+
+    @Test
+    public void testLetterboxFullscreenBounds() {
+        setUpApp(new TestActivityDisplay.Builder(mService, 1000, 2500).build());
+
+        // Fill out required fields on default display since WM-side is mocked out
+        prepareUnresizable(-1.f /* maxAspect */, SCREEN_ORIENTATION_LANDSCAPE);
+        assertFalse(mActivity.inSizeCompatMode());
+        assertTrue(mActivity.getBounds().width() > mActivity.getBounds().height());
+    }
+
+    @Test
+    public void testMoveToDifferentOrientDisplay() {
+        setUpApp(new TestActivityDisplay.Builder(mService, 1000, 2500).build());
+
+        final ActivityDisplay newDisplay =
+                new TestActivityDisplay.Builder(mService, 2000, 1000)
+                        .setCanRotate(false).build();
+
+        prepareUnresizable(-1.f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
+        assertFalse(mActivity.inSizeCompatMode());
+
+        final Rect origBounds = new Rect(mActivity.getBounds());
+
+        // Move the non-resizable activity to the new display.
+        mStack.reparent(newDisplay.mDisplayContent, true /* onTop */);
+        ensureActivityConfiguration();
+        assertEquals(origBounds.width(), mActivity.getWindowConfiguration().getBounds().width());
+        assertEquals(origBounds.height(), mActivity.getWindowConfiguration().getBounds().height());
+        assertTrue(mActivity.inSizeCompatMode());
+    }
+
+    @Test
+    public void testFixedOrientRotateCutoutDisplay() {
+        // Create a display with a notch/cutout
+        setUpApp(new TestActivityDisplay.Builder(mService, 1000, 2500).setNotch(60).build());
+        prepareUnresizable(1.4f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
+
+        final Rect origBounds = new Rect(mActivity.getBounds());
+        final Rect origAppBounds = new Rect(mActivity.getWindowConfiguration().getAppBounds());
+
+        // Rotate the display
+        Configuration c = new Configuration();
+        mStack.getDisplay().mDisplayContent.getDisplayRotation().setRotation(ROTATION_270);
+        mStack.getDisplay().mDisplayContent.computeScreenConfiguration(c);
+        mStack.getDisplay().onRequestedOverrideConfigurationChanged(c);
+
+        // Make sure the app size is the same
+        assertEquals(ROTATION_270, mStack.getWindowConfiguration().getRotation());
+        assertEquals(origBounds.width(), mActivity.getWindowConfiguration().getBounds().width());
+        assertEquals(origBounds.height(), mActivity.getWindowConfiguration().getBounds().height());
+        assertEquals(origAppBounds.width(),
+                mActivity.getWindowConfiguration().getAppBounds().width());
+        assertEquals(origAppBounds.height(),
+                mActivity.getWindowConfiguration().getAppBounds().height());
+    }
+
+    @Test
+    public void testFixedAspOrientChangeOrient() {
+        setUpApp(new TestActivityDisplay.Builder(mService, 1000, 2500).build());
+
+        prepareUnresizable(1.4f /* maxAspect */, SCREEN_ORIENTATION_LANDSCAPE);
+        assertTrue(mActivity.inSizeCompatMode());
+
+        final Rect originalBounds = new Rect(mActivity.getBounds());
+        final Rect originalAppBounds = new Rect(mActivity.getWindowConfiguration().getAppBounds());
+
+        // Change the fixed orientation
+        mActivity.mOrientation = SCREEN_ORIENTATION_PORTRAIT;
+        mActivity.info.screenOrientation = SCREEN_ORIENTATION_PORTRAIT;
+        // TaskRecord's configuration actually depends on the activity config right now for
+        // pillarboxing.
+        mActivity.getTask().onRequestedOverrideConfigurationChanged(
+                mActivity.getTask().getRequestedOverrideConfiguration());
+
+        assertEquals(originalBounds.width(), mActivity.getBounds().height());
+        assertEquals(originalBounds.height(), mActivity.getBounds().width());
+        assertEquals(originalAppBounds.width(),
+                mActivity.getWindowConfiguration().getAppBounds().height());
+        assertEquals(originalAppBounds.height(),
+                mActivity.getWindowConfiguration().getAppBounds().width());
+    }
+
+    @Test
+    public void testFixedScreenLayoutSizeBits() {
+        setUpApp(new TestActivityDisplay.Builder(mService, 1000, 2500).build());
+        final int fixedScreenLayout = Configuration.SCREENLAYOUT_LONG_NO
+                | Configuration.SCREENLAYOUT_SIZE_NORMAL;
+        final int layoutMask = Configuration.SCREENLAYOUT_LONG_MASK
+                | Configuration.SCREENLAYOUT_SIZE_MASK
+                | Configuration.SCREENLAYOUT_LAYOUTDIR_MASK;
+        Configuration c = new Configuration(mTask.getRequestedOverrideConfiguration());
+        c.screenLayout = fixedScreenLayout | Configuration.SCREENLAYOUT_LAYOUTDIR_LTR;
+        mTask.onRequestedOverrideConfigurationChanged(c);
+        prepareUnresizable(1.5f, SCREEN_ORIENTATION_UNSPECIFIED);
+
+        // The initial configuration should inherit from parent.
+        assertEquals(fixedScreenLayout | Configuration.SCREENLAYOUT_LAYOUTDIR_LTR,
+                mActivity.getConfiguration().screenLayout & layoutMask);
+
+        mTask.getConfiguration().screenLayout = Configuration.SCREENLAYOUT_LAYOUTDIR_RTL
+                | Configuration.SCREENLAYOUT_LONG_YES | Configuration.SCREENLAYOUT_SIZE_LARGE;
+        mActivity.onConfigurationChanged(mTask.getConfiguration());
+
+        // The size and aspect ratio bits don't change, but the layout direction should be updated.
+        assertEquals(fixedScreenLayout | Configuration.SCREENLAYOUT_LAYOUTDIR_RTL,
+                mActivity.getConfiguration().screenLayout & layoutMask);
+    }
+
+    @Test
+    public void testResetNonVisibleActivity() {
+        setUpApp(new TestActivityDisplay.Builder(mService, 1000, 2500).build());
+        final ActivityDisplay display = mStack.getDisplay();
+        spyOn(display);
+
+        prepareUnresizable(1.5f, SCREEN_ORIENTATION_UNSPECIFIED);
+        mActivity.setState(STOPPED, "testSizeCompatMode");
+        mActivity.visible = false;
+        mActivity.app.setReportedProcState(ActivityManager.PROCESS_STATE_CACHED_ACTIVITY);
+        // Make the parent bounds to be different so the activity is in size compatibility mode.
+        mTask.getWindowConfiguration().setAppBounds(new Rect(0, 0, 600, 1200));
+
+        // Simulate the display changes orientation.
+        when(display.getLastOverrideConfigurationChanges()).thenReturn(
+                ActivityInfo.CONFIG_SCREEN_SIZE | CONFIG_ORIENTATION
+                        | ActivityInfo.CONFIG_WINDOW_CONFIGURATION);
+        mActivity.onConfigurationChanged(mTask.getConfiguration());
+        when(display.getLastOverrideConfigurationChanges()).thenCallRealMethod();
+        // The override configuration should not change so it is still in size compatibility mode.
+        assertTrue(mActivity.inSizeCompatMode());
+
+        // Change display density
+        final DisplayContent displayContent = mStack.getDisplay().mDisplayContent;
+        displayContent.mBaseDisplayDensity = (int) (0.7f * displayContent.mBaseDisplayDensity);
+        final Configuration c = new Configuration();
+        displayContent.computeScreenConfiguration(c);
+        mService.mAmInternal = mock(ActivityManagerInternal.class);
+        mStack.getDisplay().onRequestedOverrideConfigurationChanged(c);
+
+        // The override configuration should be reset and the activity's process will be killed.
+        assertFalse(mActivity.inSizeCompatMode());
+        verify(mActivity).restartProcessIfVisible();
+        mLockRule.runWithScissors(mService.mH, () -> { }, TimeUnit.SECONDS.toMillis(3));
+        verify(mService.mAmInternal).killProcess(
+                eq(mActivity.app.mName), eq(mActivity.app.mUid), anyString());
+    }
+
+    /**
+     * Ensures that {@link TaskStackListener} can receive callback about the activity in size
+     * compatibility mode.
+     */
+    @Test
+    public void testHandleActivitySizeCompatMode() {
+        setUpApp(new TestActivityDisplay.Builder(mService, 1000, 2000).build());
+        ActivityRecord activity = mActivity;
+        activity.setState(ActivityStack.ActivityState.RESUMED, "testHandleActivitySizeCompatMode");
+        prepareUnresizable(-1.f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
+        ensureActivityConfiguration();
+        assertFalse(mActivity.inSizeCompatMode());
+
+        final ArrayList<IBinder> compatTokens = new ArrayList<>();
+        mService.getTaskChangeNotificationController().registerTaskStackListener(
+                new TaskStackListener() {
+                    @Override
+                    public void onSizeCompatModeActivityChanged(int displayId,
+                            IBinder activityToken) {
+                        compatTokens.add(activityToken);
+                    }
+                });
+
+        // Resize the display so that the activity exercises size-compat mode.
+        resizeDisplay(mStack.getDisplay(), 1000, 2500);
+
+        // Expect the exact token when the activity is in size compatibility mode.
+        assertEquals(1, compatTokens.size());
+        assertEquals(activity.appToken, compatTokens.get(0));
+
+        compatTokens.clear();
+        // Make the activity resizable again by restarting it
+        activity.info.resizeMode = ActivityInfo.RESIZE_MODE_RESIZEABLE;
+        activity.visible = true;
+        activity.restartProcessIfVisible();
+        // The full lifecycle isn't hooked up so manually set state to resumed
+        activity.setState(ActivityStack.ActivityState.RESUMED, "testHandleActivitySizeCompatMode");
+        mStack.getDisplay().handleActivitySizeCompatModeIfNeeded(activity);
+
+        // Expect null token when switching to non-size-compat mode activity.
+        assertEquals(1, compatTokens.size());
+        assertEquals(null, compatTokens.get(0));
+    }
+
+    /**
+     * Setup {@link #mActivity} as a size-compat-mode-able activity with fixed aspect and/or
+     * orientation.
+     */
+    private void prepareUnresizable(float maxAspect, int screenOrientation) {
+        mActivity.info.resizeMode = RESIZE_MODE_UNRESIZEABLE;
+        mActivity.visible = true;
+        if (maxAspect >= 0) {
+            mActivity.info.maxAspectRatio = maxAspect;
+        }
+        if (screenOrientation != SCREEN_ORIENTATION_UNSPECIFIED) {
+            mActivity.mOrientation = screenOrientation;
+            mActivity.info.screenOrientation = screenOrientation;
+            // TaskRecord's configuration actually depends on the activity config right now for
+            // pillarboxing.
+            mActivity.getTask().onRequestedOverrideConfigurationChanged(
+                    mActivity.getTask().getRequestedOverrideConfiguration());
+        }
+        ensureActivityConfiguration();
+    }
+
+    private void resizeDisplay(ActivityDisplay display, int width, int height) {
+        final DisplayContent displayContent = display.mDisplayContent;
+        displayContent.mBaseDisplayWidth = width;
+        displayContent.mBaseDisplayHeight = height;
+        Configuration c = new Configuration();
+        displayContent.computeScreenConfiguration(c);
+        display.onRequestedOverrideConfigurationChanged(c);
+    }
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
index faa9f11..b07a27b 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
@@ -45,6 +45,7 @@
 import static org.hamcrest.Matchers.sameInstance;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
@@ -161,12 +162,12 @@
         assertTrue(task.returnsToHomeStack());
     }
 
-    /** Ensures that empty bounds are not propagated to the configuration. */
+    /** Ensures that empty bounds cause appBounds to inherit from parent. */
     @Test
     public void testAppBounds_EmptyBounds() {
         final Rect emptyBounds = new Rect();
         testStackBoundsConfiguration(WINDOWING_MODE_FULLSCREEN, mParentBounds, emptyBounds,
-                null /*ExpectedBounds*/);
+                mParentBounds);
     }
 
     /** Ensures that bounds on freeform stacks are not clipped. */
@@ -280,7 +281,7 @@
         ActivityStack stack = new StackBuilder(mRootActivityContainer)
                 .setWindowingMode(WINDOWING_MODE_FULLSCREEN).setDisplay(display).build();
         Task task = stack.getChildAt(0);
-        ActivityRecord root = task.getTopActivity();
+        ActivityRecord root = task.getTopNonFinishingActivity();
 
         assertEquals(fullScreenBounds, task.getBounds());
 
@@ -293,7 +294,7 @@
 
         // Top activity gets used
         ActivityRecord top = new ActivityBuilder(mService).setTask(task).setStack(stack).build();
-        assertEquals(top, task.getTopActivity());
+        assertEquals(top, task.getTopNonFinishingActivity());
         top.setRequestedOrientation(SCREEN_ORIENTATION_LANDSCAPE);
         assertThat(task.getBounds().width()).isGreaterThan(task.getBounds().height());
         assertEquals(task.getBounds().width(), fullScreenBounds.width());
@@ -344,7 +345,7 @@
         ActivityStack stack = new StackBuilder(mRootActivityContainer)
                 .setWindowingMode(WINDOWING_MODE_FULLSCREEN).setDisplay(display).build();
         Task task = stack.getChildAt(0);
-        ActivityRecord root = task.getTopActivity();
+        ActivityRecord root = task.getTopNonFinishingActivity();
 
         final WindowContainer parentWindowContainer =
                 new WindowContainer(mSystemServicesTestRule.getWindowManagerService());
@@ -415,6 +416,24 @@
         assertEquals(Configuration.ORIENTATION_LANDSCAPE, inOutConfig.orientation);
     }
 
+    @Test
+    public void testComputeNestedConfigResourceOverrides() {
+        final Task task = new TaskBuilder(mSupervisor).build();
+        assertTrue(task.getResolvedOverrideBounds().isEmpty());
+        int origScreenH = task.getConfiguration().screenHeightDp;
+        Configuration stackConfig = new Configuration();
+        stackConfig.setTo(task.getStack().getRequestedOverrideConfiguration());
+        stackConfig.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM);
+
+        // Set bounds on stack (not task) and verify that the task resource configuration changes
+        // despite it's override bounds being empty.
+        Rect bounds = new Rect(task.getStack().getBounds());
+        bounds.bottom = (int) (bounds.bottom * 0.6f);
+        stackConfig.windowConfiguration.setBounds(bounds);
+        task.getStack().onRequestedOverrideConfigurationChanged(stackConfig);
+        assertNotEquals(origScreenH, task.getConfiguration().screenHeightDp);
+    }
+
     /** Ensures that the alias intent won't have target component resolved. */
     @Test
     public void testTaskIntentActivityAlias() {
diff --git a/services/tests/wmtests/src/com/android/server/wm/TestActivityDisplay.java b/services/tests/wmtests/src/com/android/server/wm/TestActivityDisplay.java
index 9c3ff65..48ec261 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TestActivityDisplay.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TestActivityDisplay.java
@@ -23,12 +23,17 @@
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
 
 import static org.mockito.ArgumentMatchers.any;
 
+import android.content.res.Configuration;
+import android.graphics.Insets;
+import android.graphics.Rect;
 import android.hardware.display.DisplayManagerGlobal;
 import android.view.Display;
+import android.view.DisplayCutout;
 import android.view.DisplayInfo;
 
 class TestActivityDisplay extends ActivityDisplay {
@@ -107,4 +112,94 @@
                 .setCreateActivity(false)
                 .build();
     }
+
+    public static class Builder {
+        private final DisplayInfo mInfo;
+        private boolean mCanRotate = true;
+        private int mWindowingMode = WINDOWING_MODE_FULLSCREEN;
+        private int mPosition = POSITION_TOP;
+        private final ActivityTaskManagerService mService;
+        private boolean mSystemDecorations = false;
+
+        Builder(ActivityTaskManagerService service, int width, int height) {
+            mService = service;
+            mInfo = new DisplayInfo();
+            mService.mContext.getDisplay().getDisplayInfo(mInfo);
+            mInfo.logicalWidth = width;
+            mInfo.logicalHeight = height;
+            mInfo.logicalDensityDpi = 300;
+            mInfo.displayCutout = null;
+        }
+        Builder(ActivityTaskManagerService service, DisplayInfo info) {
+            mService = service;
+            mInfo = info;
+        }
+        Builder setSystemDecorations(boolean yes) {
+            mSystemDecorations = yes;
+            return this;
+        }
+        Builder setPosition(int position) {
+            mPosition = position;
+            return this;
+        }
+        Builder setUniqueId(String uniqueId) {
+            mInfo.uniqueId = uniqueId;
+            return this;
+        }
+        Builder setType(int type) {
+            mInfo.type = type;
+            return this;
+        }
+        Builder setOwnerUid(int ownerUid) {
+            mInfo.ownerUid = ownerUid;
+            return this;
+        }
+        Builder setNotch(int height) {
+            mInfo.displayCutout = new DisplayCutout(
+                    Insets.of(0, height, 0, 0), null, new Rect(20, 0, 80, height), null, null);
+            return this;
+        }
+        Builder setCanRotate(boolean canRotate) {
+            mCanRotate = canRotate;
+            return this;
+        }
+        Builder setWindowingMode(int windowingMode) {
+            mWindowingMode = windowingMode;
+            return this;
+        }
+        Builder setDensityDpi(int dpi) {
+            mInfo.logicalDensityDpi = dpi;
+            return this;
+        }
+        TestActivityDisplay build() {
+            final int displayId = SystemServicesTestRule.sNextDisplayId++;
+            final Display display = new Display(DisplayManagerGlobal.getInstance(), displayId,
+                    mInfo, DEFAULT_DISPLAY_ADJUSTMENTS);
+            final TestActivityDisplay newDisplay;
+            synchronized (mService.mGlobalLock) {
+                newDisplay = new TestActivityDisplay(mService.mStackSupervisor, display);
+                mService.mRootActivityContainer.addChild(newDisplay, mPosition);
+            }
+            // disable the normal system decorations
+            final DisplayPolicy displayPolicy = newDisplay.mDisplayContent.getDisplayPolicy();
+            spyOn(displayPolicy);
+            if (mSystemDecorations) {
+                doReturn(true).when(newDisplay).supportsSystemDecorations();
+            } else {
+                doReturn(false).when(displayPolicy).hasNavigationBar();
+                doReturn(false).when(displayPolicy).hasStatusBar();
+                doReturn(false).when(newDisplay).supportsSystemDecorations();
+            }
+            Configuration c = new Configuration();
+            newDisplay.mDisplayContent.computeScreenConfiguration(c);
+            c.windowConfiguration.setWindowingMode(mWindowingMode);
+            newDisplay.onRequestedOverrideConfigurationChanged(c);
+            // This is a rotating display
+            if (mCanRotate) {
+                doReturn(false).when(newDisplay.mDisplayContent)
+                        .handlesOrientationChangeFromDescendant();
+            }
+            return newDisplay;
+        }
+    }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowFrameTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowFrameTests.java
index 0b8b6a1..7be05a3 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowFrameTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowFrameTests.java
@@ -96,6 +96,10 @@
         assertRect(w.getFrameLw(), left, top, right, bottom);
     }
 
+    private void assertRelFrame(WindowState w, int left, int top, int right, int bottom) {
+        assertRect(w.getRelativeFrameLw(), left, top, right, bottom);
+    }
+
     private void assertContentFrame(WindowState w, Rect expectedRect) {
         assertRect(w.getContentFrameLw(), expectedRect.left, expectedRect.top, expectedRect.right,
                 expectedRect.bottom);
@@ -153,6 +157,7 @@
         w.getWindowFrames().setFrames(pf, df, cf, vf, dcf, sf);
         w.computeFrameLw();
         assertFrame(w, 0, 0, 1000, 1000);
+        assertRelFrame(w, 0, 0, 1000, 1000);
         assertContentInset(w, 0, topContentInset, 0, bottomContentInset);
         assertVisibleInset(w, 0, topVisibleInset, 0, bottomVisibleInset);
         assertStableInset(w, leftStableInset, 0, rightStableInset, 0);
@@ -167,6 +172,7 @@
         w.mRequestedHeight = 100;
         w.computeFrameLw();
         assertFrame(w, 100, 100, 200, 200);
+        assertRelFrame(w, 100, 100, 200, 200);
         assertContentInset(w, 0, 0, 0, 0);
         // In this case the frames are shrunk to the window frame.
         assertContentFrame(w, w.getFrameLw());
@@ -189,6 +195,7 @@
         w.getWindowFrames().setFrames(pf, pf, pf, pf, pf, pf);
         w.computeFrameLw();
         assertFrame(w, 0, 0, 1000, 1000);
+        assertRelFrame(w, 0, 0, 1000, 1000);
 
         // It can select various widths and heights within the bounds.
         // Strangely the window attribute width is ignored for normal windows
@@ -242,15 +249,18 @@
         w.mAttrs.gravity = Gravity.RIGHT | Gravity.TOP;
         w.computeFrameLw();
         assertFrame(w, 700, 0, 1000, 300);
+        assertRelFrame(w, 700, 0, 1000, 300);
         w.mAttrs.gravity = Gravity.RIGHT | Gravity.BOTTOM;
         w.computeFrameLw();
         assertFrame(w, 700, 700, 1000, 1000);
+        assertRelFrame(w, 700, 700, 1000, 1000);
         // Window specified  x and y are interpreted as offsets in the opposite
         // direction of gravity
         w.mAttrs.x = 100;
         w.mAttrs.y = 100;
         w.computeFrameLw();
         assertFrame(w, 600, 600, 900, 900);
+        assertRelFrame(w, 600, 600, 900, 900);
     }
 
     @Test
@@ -279,6 +289,8 @@
         // For non fullscreen tasks the containing frame is based off the
         // task bounds not the parent frame.
         assertEquals(resolvedTaskBounds, w.getFrameLw());
+        assertEquals(0, w.getRelativeFrameLw().left);
+        assertEquals(0, w.getRelativeFrameLw().top);
         assertContentFrame(w, resolvedTaskBounds);
         assertContentInset(w, 0, 0, 0, 0);
 
@@ -290,6 +302,8 @@
         windowFrames.setFrames(pf, pf, cf, cf, pf, cf);
         w.computeFrameLw();
         assertEquals(resolvedTaskBounds, w.getFrameLw());
+        assertEquals(0, w.getRelativeFrameLw().left);
+        assertEquals(0, w.getRelativeFrameLw().top);
         int contentInsetRight = resolvedTaskBounds.right - cfRight;
         int contentInsetBottom = resolvedTaskBounds.bottom - cfBottom;
         assertContentInset(w, 0, 0, contentInsetRight, contentInsetBottom);
@@ -309,6 +323,8 @@
         windowFrames.setFrames(pf, pf, cf, cf, pf, cf);
         w.computeFrameLw();
         assertEquals(resolvedTaskBounds, w.getFrameLw());
+        assertEquals(0, w.getRelativeFrameLw().left);
+        assertEquals(0, w.getRelativeFrameLw().top);
         contentInsetRight = insetRight - cfRight;
         contentInsetBottom = insetBottom - cfBottom;
         assertContentInset(w, 0, 0, contentInsetRight, contentInsetBottom);
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index 2cdf21d..46c89d2 100755
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -821,13 +821,6 @@
             "always_show_emergency_alert_onoff_bool";
 
     /**
-     * The flag to disable cell broadcast severe alert when extreme alert is disabled.
-     * @hide
-     */
-    public static final String KEY_DISABLE_SEVERE_WHEN_EXTREME_DISABLED_BOOL =
-            "disable_severe_when_extreme_disabled_bool";
-
-    /**
      * The data call retry configuration for different types of APN.
      * @hide
      */
@@ -3455,7 +3448,6 @@
         sDefaults.putStringArray(KEY_APN_SETTINGS_DEFAULT_APN_TYPES_STRING_ARRAY, null);
         sDefaults.putBoolean(KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL, false);
         sDefaults.putBoolean(KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL, false);
-        sDefaults.putBoolean(KEY_DISABLE_SEVERE_WHEN_EXTREME_DISABLED_BOOL, true);
         sDefaults.putStringArray(KEY_CARRIER_DATA_CALL_RETRY_CONFIG_STRINGS, new String[]{
                 "default:default_randomization=2000,5000,10000,20000,40000,80000:5000,160000:5000,"
                         + "320000:5000,640000:5000,1280000:5000,1800000:5000",
diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java
index 3f95a81..89c4e90 100644
--- a/telephony/java/android/telephony/SmsManager.java
+++ b/telephony/java/android/telephony/SmsManager.java
@@ -514,7 +514,6 @@
             throw new IllegalArgumentException("Invalid message body");
         }
 
-        final Context context = ActivityThread.currentApplication().getApplicationContext();
         // We will only show the SMS disambiguation dialog in the case that the message is being
         // persisted. This is for two reasons:
         // 1) Messages that are not persisted are sent by carrier/OEM apps for a specific
@@ -623,7 +622,6 @@
 
         final int finalPriority = priority;
         final int finalValidity = validityPeriod;
-        final Context context = ActivityThread.currentApplication().getApplicationContext();
         // We will only show the SMS disambiguation dialog in the case that the message is being
         // persisted. This is for two reasons:
         // 1) Messages that are not persisted are sent by carrier/OEM apps for a specific
@@ -927,7 +925,6 @@
         }
 
         if (parts.size() > 1) {
-            final Context context = ActivityThread.currentApplication().getApplicationContext();
             // We will only show the SMS disambiguation dialog in the case that the message is being
             // persisted. This is for two reasons:
             // 1) Messages that are not persisted are sent by carrier/OEM apps for a specific
@@ -1168,7 +1165,6 @@
         if (parts.size() > 1) {
             final int finalPriority = priority;
             final int finalValidity = validityPeriod;
-            final Context context = ActivityThread.currentApplication().getApplicationContext();
             if (persistMessage) {
                 resolveSubscriptionForOperation(new SubscriptionResolverResult() {
                     @Override
@@ -1325,7 +1321,6 @@
             throw new IllegalArgumentException("Invalid message data");
         }
 
-        final Context context = ActivityThread.currentApplication().getApplicationContext();
         resolveSubscriptionForOperation(new SubscriptionResolverResult() {
             @Override
             public void onSuccess(int subId) {
diff --git a/tests/net/java/com/android/server/connectivity/TetheringTest.java b/tests/net/java/com/android/server/connectivity/TetheringTest.java
index 5f62c08..9e5717b 100644
--- a/tests/net/java/com/android/server/connectivity/TetheringTest.java
+++ b/tests/net/java/com/android/server/connectivity/TetheringTest.java
@@ -208,6 +208,12 @@
             if (Context.TELEPHONY_SERVICE.equals(name)) return mTelephonyManager;
             return super.getSystemService(name);
         }
+
+        @Override
+        public String getSystemServiceName(Class<?> serviceClass) {
+            if (TelephonyManager.class.equals(serviceClass)) return Context.TELEPHONY_SERVICE;
+            return super.getSystemServiceName(serviceClass);
+        }
     }
 
     public class MockIpServerDependencies extends IpServer.Dependencies {
diff --git a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
index 1d29a82..4d42a61 100644
--- a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
+++ b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
@@ -192,8 +192,8 @@
 
         mService = new NetworkStatsService(
                 mServiceContext, mNetManager, mAlarmManager, wakeLock, mClock,
-                TelephonyManager.getDefault(), mSettings, mStatsFactory,
-                new NetworkStatsObservers(),  mStatsDir, getBaseDir(mStatsDir));
+                mServiceContext.getSystemService(TelephonyManager.class), mSettings,
+                mStatsFactory, new NetworkStatsObservers(),  mStatsDir, getBaseDir(mStatsDir));
         mHandlerThread = new HandlerThread("HandlerThread");
         mHandlerThread.start();
         Handler.Callback callback = new NetworkStatsService.HandlerCallback(mService);
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 90343d4..f7d2b40 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -384,12 +384,7 @@
     public void setSecurityParams(@SecurityType int securityType) {
         // Clear all the bitsets.
         allowedKeyManagement.clear();
-        allowedProtocols.clear();
         allowedAuthAlgorithms.clear();
-        allowedPairwiseCiphers.clear();
-        allowedGroupCiphers.clear();
-        allowedGroupManagementCiphers.clear();
-        allowedSuiteBCiphers.clear();
 
         switch (securityType) {
             case SECURITY_TYPE_OPEN:
@@ -412,6 +407,9 @@
                 requirePMF = true;
                 break;
             case SECURITY_TYPE_EAP_SUITE_B:
+                allowedGroupCiphers.clear();
+                allowedGroupManagementCiphers.clear();
+                allowedSuiteBCiphers.clear();
                 allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SUITE_B_192);
                 allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256);
                 allowedGroupManagementCiphers.set(WifiConfiguration.GroupMgmtCipher.BIP_GMAC_256);
@@ -947,6 +945,12 @@
     public int meteredOverride = METERED_OVERRIDE_NONE;
 
     /**
+     * This Wifi configuration is a clone of another network with lower security
+     * @hide
+     */
+    public String clonedNetworkConfigKey;
+
+    /**
      * Blend together all the various opinions to decide if the given network
      * should be considered metered or not.
      *
@@ -1804,6 +1808,7 @@
         shared = true;
         dtimInterval = 0;
         mRandomizedMacAddress = MacAddress.fromString(WifiInfo.DEFAULT_MAC_ADDRESS);
+        clonedNetworkConfigKey = null;
     }
 
     /**
@@ -2371,6 +2376,7 @@
 
     /** copy constructor {@hide} */
     @UnsupportedAppUsage
+
     public WifiConfiguration(WifiConfiguration source) {
         if (source != null) {
             networkId = source.networkId;
@@ -2454,6 +2460,7 @@
             requirePMF = source.requirePMF;
             updateIdentifier = source.updateIdentifier;
             carrierId = source.carrierId;
+            clonedNetworkConfigKey = source.clonedNetworkConfigKey;
         }
     }
 
@@ -2529,6 +2536,7 @@
         dest.writeInt(osu ? 1 : 0);
         dest.writeLong(randomizedMacExpirationTimeMs);
         dest.writeInt(carrierId);
+        dest.writeString(clonedNetworkConfigKey);
     }
 
     /** Implement the Parcelable interface {@hide} */
@@ -2606,6 +2614,7 @@
                 config.osu = in.readInt() != 0;
                 config.randomizedMacExpirationTimeMs = in.readLong();
                 config.carrierId = in.readInt();
+                config.clonedNetworkConfigKey = in.readString();
                 return config;
             }
 
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index a61a5af..16cb964 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -380,14 +380,6 @@
      * @hide
      */
     public static final String EXTRA_DELAY = "android.net.wifi.extra.DELAY";
-    /**
-     * String representation of an URL.
-     *
-     * Retrieve with {@link android.content.Intent#getStringExtra(String)}.
-     *
-     * @hide
-     */
-    public static final String EXTRA_URL = "android.net.wifi.extra.URL";
 
     /**
      * Broadcast intent action indicating a Passpoint subscription remediation frame has been
@@ -420,34 +412,49 @@
             "android.net.wifi.extra.SUBSCRIPTION_REMEDIATION_METHOD";
 
     /**
-     * Activity Action: lunch OSU (Online Sign Up) view.
+     * Activity Action: Receiver should launch Passpoint OSU (Online Sign Up) view.
      * Included extras:
      *
      * {@link #EXTRA_OSU_NETWORK}: {@link Network} instance associated with OSU AP.
      * {@link #EXTRA_URL}: String representation of a server URL used for OSU process.
      *
-     * <p>Note: The broadcast is only delivered to registered receivers - no manifest registered
-     * components will be launched.
-     *
      * @hide
      */
+    @SystemApi
     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
     public static final String ACTION_PASSPOINT_LAUNCH_OSU_VIEW =
             "android.net.wifi.action.PASSPOINT_LAUNCH_OSU_VIEW";
 
     /**
-     * The lookup key for a {@link android.net.Network} associated with OSU server.
+     * The lookup key for a {@link android.net.Network} associated with a Passpoint OSU server.
+     * Included in the {@link #ACTION_PASSPOINT_LAUNCH_OSU_VIEW} broadcast.
      *
      * Retrieve with {@link android.content.Intent#getParcelableExtra(String)}.
      *
      * @hide
      */
+    @SystemApi
     public static final String EXTRA_OSU_NETWORK = "android.net.wifi.extra.OSU_NETWORK";
 
     /**
+     * String representation of an URL for Passpoint OSU.
+     * Included in the {@link #ACTION_PASSPOINT_LAUNCH_OSU_VIEW} broadcast.
+     *
+     * Retrieve with {@link android.content.Intent#getStringExtra(String)}.
+     *
+     * @hide
+     */
+    @SystemApi
+    public static final String EXTRA_URL = "android.net.wifi.extra.URL";
+
+    /**
      * Broadcast intent action indicating that Wi-Fi has been enabled, disabled,
      * enabling, disabling, or unknown. One extra provides this state as an int.
-     * Another extra provides the previous state, if available.
+     * Another extra provides the previous state, if available.  No network-related
+     * permissions are required to subscribe to this broadcast.
+     *
+     * <p class="note">This broadcast is not delivered to manifest receivers in
+     * applications that target API version 26 or later.
      *
      * @see #EXTRA_WIFI_STATE
      * @see #EXTRA_PREVIOUS_WIFI_STATE
@@ -656,6 +663,7 @@
      *
      *  @hide
      */
+    @SystemApi
     public static final int SAP_START_FAILURE_GENERAL= 0;
 
     /**
@@ -664,6 +672,7 @@
      *
      *  @hide
      */
+    @SystemApi
     public static final int SAP_START_FAILURE_NO_CHANNEL = 1;
 
     /** @hide */
@@ -748,7 +757,11 @@
     /**
      * Broadcast intent action indicating that the state of Wi-Fi connectivity
      * has changed. An extra provides the new state
-     * in the form of a {@link android.net.NetworkInfo} object.
+     * in the form of a {@link android.net.NetworkInfo} object.  No network-related
+     * permissions are required to subscribe to this broadcast.
+     *
+     * <p class="note">This broadcast is not delivered to manifest receivers in
+     * applications that target API version 26 or later.
      * @see #EXTRA_NETWORK_INFO
      */
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
@@ -917,7 +930,7 @@
      * The RSSI (signal strength) has changed.
      *
      * Receiver Required Permission: android.Manifest.permission.ACCESS_WIFI_STATE
-     * @see {@link #EXTRA_NEW_RSSI}
+     * @see #EXTRA_NEW_RSSI
      */
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String RSSI_CHANGED_ACTION = "android.net.wifi.RSSI_CHANGED";
@@ -927,21 +940,37 @@
     public static final String EXTRA_NEW_RSSI = "newRssi";
 
     /**
-     * Broadcast intent action indicating that the link configuration
-     * changed on wifi.
+     * @see #ACTION_LINK_CONFIGURATION_CHANGED
      * @hide
      */
     @UnsupportedAppUsage
     public static final String LINK_CONFIGURATION_CHANGED_ACTION =
-        "android.net.wifi.LINK_CONFIGURATION_CHANGED";
+            "android.net.wifi.LINK_CONFIGURATION_CHANGED";
+
+    /**
+     * Broadcast intent action indicating that the link configuration changed on wifi.
+     * <br />Included Extras:
+     * <br />{@link #EXTRA_LINK_PROPERTIES}: {@link android.net.LinkProperties} object associated
+     * with the Wi-Fi network.
+     * <br /> No permissions are required to listen to this broadcast.
+     * @hide
+     */
+    @SystemApi
+    public static final String ACTION_LINK_CONFIGURATION_CHANGED =
+            // should be android.net.wifi.action.LINK_CONFIGURATION_CHANGED, but due to
+            // @UnsupportedAppUsage leaving it as android.net.wifi.LINK_CONFIGURATION_CHANGED.
+            LINK_CONFIGURATION_CHANGED_ACTION;
 
     /**
      * The lookup key for a {@link android.net.LinkProperties} object associated with the
-     * Wi-Fi network. Retrieve with
-     * {@link android.content.Intent#getParcelableExtra(String)}.
+     * Wi-Fi network.
+     * Included in the {@link #ACTION_LINK_CONFIGURATION_CHANGED} broadcast.
+     *
+     * Retrieve with {@link android.content.Intent#getParcelableExtra(String)}.
      * @hide
      */
-    public static final String EXTRA_LINK_PROPERTIES = "linkProperties";
+    @SystemApi
+    public static final String EXTRA_LINK_PROPERTIES = "android.net.wifi.extra.LINK_PROPERTIES";
 
     /**
      * The lookup key for a {@link android.net.NetworkCapabilities} object associated with the
@@ -981,24 +1010,26 @@
     public static final String ACTION_PICK_WIFI_NETWORK = "android.net.wifi.PICK_WIFI_NETWORK";
 
     /**
-     * Activity Action: Show UI to get user approval to enable WiFi.
+     * Activity Action: Receiver should show UI to get user approval to enable WiFi.
      * <p>Input: {@link android.content.Intent#EXTRA_PACKAGE_NAME} string extra with
      *           the name of the app requesting the action.
      * <p>Output: Nothing.
-     *
+     * <p>No permissions are required to send this action.
      * @hide
      */
+    @SystemApi
     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
     public static final String ACTION_REQUEST_ENABLE = "android.net.wifi.action.REQUEST_ENABLE";
 
     /**
-     * Activity Action: Show UI to get user approval to disable WiFi.
+     * Activity Action: Receiver should show UI to get user approval to disable WiFi.
      * <p>Input: {@link android.content.Intent#EXTRA_PACKAGE_NAME} string extra with
      *           the name of the app requesting the action.
      * <p>Output: Nothing.
-     *
+     * <p>No permissions are required to send this action.
      * @hide
      */
+    @SystemApi
     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
     public static final String ACTION_REQUEST_DISABLE = "android.net.wifi.action.REQUEST_DISABLE";
 
@@ -1115,11 +1146,15 @@
     private static final int MAX_RSSI = -55;
 
     /**
-     * Number of RSSI levels used in the framework to initiate
-     * {@link #RSSI_CHANGED_ACTION} broadcast
+     * Number of RSSI levels used in the framework to initiate {@link #RSSI_CHANGED_ACTION}
+     * broadcast, where each level corresponds to a range of RSSI values.
+     * The {@link #RSSI_CHANGED_ACTION} broadcast will only fire if the RSSI
+     * change is significant enough to change the RSSI signal level.
      * @hide
      */
     @UnsupportedAppUsage
+    // TODO(b/140781184): need to support custom number of RSSI levels, as well as levels that are
+    //  not evenly spaced
     public static final int RSSI_LEVELS = 5;
 
     /**
@@ -1147,7 +1182,8 @@
     /** @hide */
     public static final boolean DEFAULT_POOR_NETWORK_AVOIDANCE_ENABLED = false;
 
-    /* Maximum number of active locks we allow.
+    /**
+     * Maximum number of active locks we allow.
      * This limit was added to prevent apps from creating a ridiculous number
      * of locks and crashing the system by overflowing the global ref table.
      */
@@ -1487,40 +1523,43 @@
      * {@link #reject()} to return the user's selection back to the platform via this callback.
      * @hide
      */
+    @SystemApi
     public interface NetworkRequestUserSelectionCallback {
         /**
          * User selected this network to connect to.
          * @param wifiConfiguration WifiConfiguration object corresponding to the network
          *                          user selected.
          */
-        void select(@NonNull WifiConfiguration wifiConfiguration);
+        default void select(@NonNull WifiConfiguration wifiConfiguration) {}
 
         /**
          * User rejected the app's request.
          */
-        void reject();
+        default void reject() {}
     }
 
     /**
      * Interface for network request callback. Should be implemented by applications and passed when
-     * calling {@link #registerNetworkRequestMatchCallback(NetworkRequestMatchCallback, Handler)}.
+     * calling {@link #registerNetworkRequestMatchCallback(Executor,
+     * WifiManager.NetworkRequestMatchCallback)}.
      *
      * This is meant to be implemented by a UI component to present the user with a list of networks
      * matching the app's request. The user is allowed to pick one of these networks to connect to
      * or reject the request by the app.
      * @hide
      */
+    @SystemApi
     public interface NetworkRequestMatchCallback {
         /**
          * Invoked to register a callback to be invoked to convey user selection. The callback
-         * object paased in this method is to be invoked by the UI component after the service sends
+         * object passed in this method is to be invoked by the UI component after the service sends
          * a list of matching scan networks using {@link #onMatch(List)} and user picks a network
          * from that list.
          *
          * @param userSelectionCallback Callback object to send back the user selection.
          */
-        void onUserSelectionCallbackRegistration(
-                @NonNull NetworkRequestUserSelectionCallback userSelectionCallback);
+        default void onUserSelectionCallbackRegistration(
+                @NonNull NetworkRequestUserSelectionCallback userSelectionCallback) {}
 
         /**
          * Invoked when the active network request is aborted, either because
@@ -1529,7 +1568,7 @@
          * This signals the end of processing for the current request and should stop the UI
          * component. No subsequent calls from the UI component will be handled by the platform.
          */
-        void onAbort();
+        default void onAbort() {}
 
         /**
          * Invoked when a network request initiated by an app matches some networks in scan results.
@@ -1539,7 +1578,7 @@
          * @param scanResults List of {@link ScanResult} objects corresponding to the networks
          *                    matching the request.
          */
-        void onMatch(@NonNull List<ScanResult> scanResults);
+        default void onMatch(@NonNull List<ScanResult> scanResults) {}
 
         /**
          * Invoked on a successful connection with the network that the user selected
@@ -1548,7 +1587,7 @@
          * @param wifiConfiguration WifiConfiguration object corresponding to the network that the
          *                          user selected.
          */
-        void onUserSelectionConnectSuccess(@NonNull WifiConfiguration wifiConfiguration);
+        default void onUserSelectionConnectSuccess(@NonNull WifiConfiguration wifiConfiguration) {}
 
         /**
          * Invoked on failure to establish connection with the network that the user selected
@@ -1557,7 +1596,7 @@
          * @param wifiConfiguration WifiConfiguration object corresponding to the network
          *                          user selected.
          */
-        void onUserSelectionConnectFailure(@NonNull WifiConfiguration wifiConfiguration);
+        default void onUserSelectionConnectFailure(@NonNull WifiConfiguration wifiConfiguration) {}
     }
 
     /**
@@ -1606,11 +1645,11 @@
      * @hide
      */
     private class NetworkRequestMatchCallbackProxy extends INetworkRequestMatchCallback.Stub {
-        private final Handler mHandler;
+        private final Executor mExecutor;
         private final NetworkRequestMatchCallback mCallback;
 
-        NetworkRequestMatchCallbackProxy(Looper looper, NetworkRequestMatchCallback callback) {
-            mHandler = new Handler(looper);
+        NetworkRequestMatchCallbackProxy(Executor executor, NetworkRequestMatchCallback callback) {
+            mExecutor = executor;
             mCallback = callback;
         }
 
@@ -1621,7 +1660,8 @@
                 Log.v(TAG, "NetworkRequestMatchCallbackProxy: "
                         + "onUserSelectionCallbackRegistration callback: " + userSelectionCallback);
             }
-            mHandler.post(() -> {
+            Binder.clearCallingIdentity();
+            mExecutor.execute(() -> {
                 mCallback.onUserSelectionCallbackRegistration(
                         new NetworkRequestUserSelectionCallbackProxy(userSelectionCallback));
             });
@@ -1632,7 +1672,8 @@
             if (mVerboseLoggingEnabled) {
                 Log.v(TAG, "NetworkRequestMatchCallbackProxy: onAbort");
             }
-            mHandler.post(() -> {
+            Binder.clearCallingIdentity();
+            mExecutor.execute(() -> {
                 mCallback.onAbort();
             });
         }
@@ -1643,7 +1684,8 @@
                 Log.v(TAG, "NetworkRequestMatchCallbackProxy: onMatch scanResults: "
                         + scanResults);
             }
-            mHandler.post(() -> {
+            Binder.clearCallingIdentity();
+            mExecutor.execute(() -> {
                 mCallback.onMatch(scanResults);
             });
         }
@@ -1654,7 +1696,8 @@
                 Log.v(TAG, "NetworkRequestMatchCallbackProxy: onUserSelectionConnectSuccess "
                         + " wificonfiguration: " + wifiConfiguration);
             }
-            mHandler.post(() -> {
+            Binder.clearCallingIdentity();
+            mExecutor.execute(() -> {
                 mCallback.onUserSelectionConnectSuccess(wifiConfiguration);
             });
         }
@@ -1665,13 +1708,26 @@
                 Log.v(TAG, "NetworkRequestMatchCallbackProxy: onUserSelectionConnectFailure"
                         + " wificonfiguration: " + wifiConfiguration);
             }
-            mHandler.post(() -> {
+            Binder.clearCallingIdentity();
+            mExecutor.execute(() -> {
                 mCallback.onUserSelectionConnectFailure(wifiConfiguration);
             });
         }
     }
 
     /**
+     * Same as {@link #registerNetworkRequestMatchCallback(Executor, NetworkRequestMatchCallback)},
+     * except that the callback will be executed on the application's main thread.
+     * @param callback Callback for network match events to register.
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
+    public void registerNetworkRequestMatchCallback(@NonNull NetworkRequestMatchCallback callback) {
+        registerNetworkRequestMatchCallback(mContext.getMainExecutor(), callback);
+    }
+
+    /**
      * Registers a callback for NetworkRequest matches. See {@link NetworkRequestMatchCallback}.
      * Caller can unregister a previously registered callback using
      * {@link #unregisterNetworkRequestMatchCallback(NetworkRequestMatchCallback)}
@@ -1681,19 +1737,20 @@
      * without the permission will trigger a {@link java.lang.SecurityException}.
      * <p>
      *
-     * @param callback Callback for network match events
-     * @param handler  The Handler on whose thread to execute the callbacks of the {@code callback}
-     *                 object. If null, then the application's main thread will be used.
+     * @param executor The Executor on whose thread to execute the callbacks of the {@code callback}
+     *                 object.
+     * @param callback Callback for network match events to register.
      * @hide
      */
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
-    public void registerNetworkRequestMatchCallback(@NonNull NetworkRequestMatchCallback callback,
-                                                    @Nullable Handler handler) {
+    public void registerNetworkRequestMatchCallback(@NonNull @CallbackExecutor Executor executor,
+            @NonNull NetworkRequestMatchCallback callback) {
+        if (executor == null) throw new IllegalArgumentException("executor cannot be null");
         if (callback == null) throw new IllegalArgumentException("callback cannot be null");
         Log.v(TAG, "registerNetworkRequestMatchCallback: callback=" + callback
-                + ", handler=" + handler);
+                + ", executor=" + executor);
 
-        Looper looper = (handler == null) ? mContext.getMainLooper() : handler.getLooper();
         Binder binder = new Binder();
         try {
             IWifiManager iWifiManager = getIWifiManager();
@@ -1701,7 +1758,7 @@
                 throw new RemoteException("Wifi service is not running");
             }
             iWifiManager.registerNetworkRequestMatchCallback(
-                    binder, new NetworkRequestMatchCallbackProxy(looper, callback),
+                    binder, new NetworkRequestMatchCallbackProxy(executor, callback),
                     callback.hashCode());
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
@@ -1716,9 +1773,10 @@
      * without the permission will trigger a {@link java.lang.SecurityException}.
      * <p>
      *
-     * @param callback Callback for network match events
+     * @param callback Callback for network match events to unregister.
      * @hide
      */
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
     public void unregisterNetworkRequestMatchCallback(
             @NonNull NetworkRequestMatchCallback callback) {
@@ -2561,29 +2619,30 @@
     }
 
     /**
-    * get the country code.
-    * @return the country code in ISO 3166 format.
-    *
-    * @hide
-    */
-    @UnsupportedAppUsage
+     * Get the country code.
+     * @return the country code in ISO 3166 format, or null if there is no country code configured.
+     * @hide
+     */
+    @Nullable
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL)
     public String getCountryCode() {
         try {
             IWifiManager iWifiManager = getIWifiManager();
             if (iWifiManager == null) return null;
-            String country = iWifiManager.getCountryCode();
-            return country;
+            return iWifiManager.getCountryCode();
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
     }
 
     /**
-     * Check if the chipset supports dual frequency band (2.4 GHz and 5 GHz)
+     * Check if the chipset supports dual frequency band (2.4 GHz and 5 GHz).
+     * No permissions are required to call this method.
      * @return {@code true} if supported, {@code false} otherwise.
      * @hide
      */
-    @UnsupportedAppUsage
+    @SystemApi
     public boolean isDualBandSupported() {
         try {
             IWifiManager iWifiManager = getIWifiManager();
@@ -2595,10 +2654,20 @@
     }
 
     /**
-     * Check if the chipset requires conversion of 5GHz Only apBand to ANY.
-     * @return {@code true} if required, {@code false} otherwise.
+     * Check if the device is dual mode capable i.e. supports concurrent STA + Soft AP.
+     *
+     * If the device is dual mode capable, it may require conversion of the user's Soft AP band
+     * selection {@link WifiConfiguration#apBand} from {@link WifiConfiguration#AP_BAND_5GHZ} to
+     * {@link WifiConfiguration#AP_BAND_ANY}, since if the device is connected to a 5GHz DFS
+     * channel as a STA, it may be unable to honor a request to start Soft AP on the same DFS
+     * channel.
+     *
+     * @return {@code true} if dual mode STA + AP is supported by this device, {@code false}
+     * otherwise.
      * @hide
      */
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
     public boolean isDualModeSupported() {
         try {
             IWifiManager iWifiManager = getIWifiManager();
@@ -2685,6 +2754,7 @@
      *
      * @hide for CTS test only
      */
+    // TODO(b/144036594): add @TestApi
     public void getTxPacketCount(@NonNull TxPacketCountListener listener) {
         if (listener == null) throw new IllegalArgumentException("listener cannot be null");
         Binder binder = new Binder();
@@ -3134,10 +3204,12 @@
     }
 
     /**
-     * Method that triggers a notification to the user about a conversion to their saved AP config.
+     * Method that triggers a notification to the user about a band conversion
+     * (e.g. 5 GHz to 2.4 GHz) to their saved AP config.
      *
      * @hide
      */
+    // TODO(b/144218444): move the notification to Settings instead of making this @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
     public void notifyUserOfApBandConversion() {
         Log.d(TAG, "apBand was converted, notify the user");
@@ -3371,22 +3443,21 @@
         /**
          * Called when soft AP state changes.
          *
-         * @param state         new new AP state. One of {@link #WIFI_AP_STATE_DISABLED},
+         * @param state         the new AP state. One of {@link #WIFI_AP_STATE_DISABLED},
          *                      {@link #WIFI_AP_STATE_DISABLING}, {@link #WIFI_AP_STATE_ENABLED},
          *                      {@link #WIFI_AP_STATE_ENABLING}, {@link #WIFI_AP_STATE_FAILED}
          * @param failureReason reason when in failed state. One of
          *                      {@link #SAP_START_FAILURE_GENERAL},
          *                      {@link #SAP_START_FAILURE_NO_CHANNEL}
          */
-        void onStateChanged(@WifiApState int state,
-                @SapStartFailure int failureReason);
+        default void onStateChanged(@WifiApState int state, @SapStartFailure int failureReason) {}
 
         /**
          * Called when the connected clients to soft AP changes.
          *
          * @param clients the currently connected clients
          */
-        void onConnectedClientsChanged(@NonNull List<WifiClient> clients);
+        default void onConnectedClientsChanged(@NonNull List<WifiClient> clients) {}
 
         /**
          * Called when information of softap changes.
@@ -3452,31 +3523,42 @@
     }
 
     /**
+     * Same as {@link #registerSoftApCallback(Executor, SoftApCallback)},
+     * except that the callback will be executed on the application's main thread.
+     * @param callback Callback for soft AP events
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
+    public void registerSoftApCallback(@NonNull SoftApCallback callback) {
+        registerSoftApCallback(mContext.getMainExecutor(), callback);
+    }
+
+    /**
      * Registers a callback for Soft AP. See {@link SoftApCallback}. Caller will receive the current
      * soft AP state and number of connected devices immediately after a successful call to this API
      * via callback. Note that receiving an immediate WIFI_AP_STATE_FAILED value for soft AP state
      * indicates that the latest attempt to start soft AP has failed. Caller can unregister a
-     * previously registered callback using {@link unregisterSoftApCallback}
+     * previously registered callback using {@link #unregisterSoftApCallback}
      * <p>
      * Applications should have the
      * {@link android.Manifest.permission#NETWORK_SETTINGS NETWORK_SETTINGS} permission. Callers
      * without the permission will trigger a {@link java.lang.SecurityException}.
      * <p>
      *
-     * @param executor The executor to execute the callbacks of the {@code executor}
-     *                 object. If null, then the application's main executor will be used.
+     * @param executor The Executor on whose thread to execute the callbacks of the {@code callback}
+     *                 object.
      * @param callback Callback for soft AP events
-     *
      * @hide
      */
     @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
-    public void registerSoftApCallback(@Nullable @CallbackExecutor Executor executor,
-                                       @NonNull SoftApCallback callback) {
+    public void registerSoftApCallback(@NonNull @CallbackExecutor Executor executor,
+            @NonNull SoftApCallback callback) {
+        if (executor == null) throw new IllegalArgumentException("executor cannot be null");
         if (callback == null) throw new IllegalArgumentException("callback cannot be null");
         Log.v(TAG, "registerSoftApCallback: callback=" + callback + ", executor=" + executor);
 
-        executor = (executor == null) ? mContext.getMainExecutor() : executor;
         Binder binder = new Binder();
         try {
             IWifiManager iWifiManager = getIWifiManager();
@@ -3498,6 +3580,7 @@
      *
      * @hide
      */
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
     public void unregisterSoftApCallback(@NonNull SoftApCallback callback) {
         if (callback == null) throw new IllegalArgumentException("callback cannot be null");
@@ -4042,23 +4125,27 @@
     }
 
     /**
-     * Disable ephemeral Network
+     * Disable an ephemeral network.
      *
-     * @param SSID, in the format of WifiConfiguration's SSID.
+     * @param ssid in the format of WifiConfiguration's SSID.
+     *
      * @hide
      */
+    @SystemApi
     @RequiresPermission(anyOf = {
             android.Manifest.permission.NETWORK_SETTINGS,
             android.Manifest.permission.NETWORK_STACK
     })
-    public void disableEphemeralNetwork(String SSID) {
-        if (TextUtils.isEmpty(SSID)) throw new IllegalArgumentException("SSID cannot be null");
+    public void disableEphemeralNetwork(@NonNull String ssid) {
+        if (TextUtils.isEmpty(ssid)) {
+            throw new IllegalArgumentException("SSID cannot be null or empty!");
+        }
         try {
             IWifiManager iWifiManager = getIWifiManager();
             if (iWifiManager == null) {
                 throw new RemoteException("Wifi service is not running");
             }
-            iWifiManager.disableEphemeralNetwork(SSID, mContext.getOpPackageName());
+            iWifiManager.disableEphemeralNetwork(ssid, mContext.getOpPackageName());
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -4554,11 +4641,15 @@
     }
 
     /**
-     * Set wifi verbose log. Called from developer settings.
+     * Set Wi-Fi verbose logging level from developer settings.
+     *
+     * @param verbose the verbose logging level to set. 0 will disable verbose logging, a positive
+     *                integer will enable verbose logging.
+     *
      * @hide
      */
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
-    @UnsupportedAppUsage
     public void enableVerboseLogging (int verbose) {
         try {
             IWifiManager iWifiManager = getIWifiManager();
@@ -4574,11 +4665,15 @@
     }
 
     /**
-     * Get the WiFi verbose logging level.This is used by settings
-     * to decide what to show within the picker.
+     * Get the persisted WiFi verbose logging level, set by {@link #enableVerboseLogging(int)}.
+     * No permissions are required to call this method.
+     *
+     * @return 0 to indicate that verbose logging is disabled, a positive integer to indicate that
+     * verbose logging is enabled.
+     *
      * @hide
      */
-    @UnsupportedAppUsage
+    @SystemApi
     public int getVerboseLoggingLevel() {
         try {
             IWifiManager iWifiManager = getIWifiManager();
@@ -4590,10 +4685,13 @@
     }
 
     /**
-     * Removes all saved wifi networks.
+     * Removes all saved Wi-Fi networks, Passpoint configurations, ephemeral networks, Network
+     * Requests, and Network Suggestions.
      *
      * @hide
      */
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL)
     public void factoryReset() {
         try {
             IWifiManager iWifiManager = getIWifiManager();
@@ -4607,11 +4705,12 @@
     }
 
     /**
-     * Get Network object of current wifi network
-     * @return Get Network object of current wifi network
+     * Get {@link Network} object of current wifi network, or null if not connected.
      * @hide
      */
-    @UnsupportedAppUsage
+    @Nullable
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE)
     public Network getCurrentNetwork() {
         try {
             IWifiManager iWifiManager = getIWifiManager();
@@ -4660,13 +4759,18 @@
     }
 
     /**
-     * Retrieve the data to be backed to save the current state.
+     * Returns a byte stream representing the data that needs to be backed up to save the
+     * current Wifi state.
+     * This Wifi state can be restored by calling {@link #restoreBackupData(byte[])}.
      * @hide
      */
+    @NonNull
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
     public byte[] retrieveBackupData() {
         try {
             IWifiManager iWifiManager = getIWifiManager();
-            if (iWifiManager == null) return null;
+            if (iWifiManager == null) return new byte[0];
             return iWifiManager.retrieveBackupData();
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
@@ -4675,9 +4779,12 @@
 
     /**
      * Restore state from the backed up data.
+     * @param data byte stream in the same format produced by {@link #retrieveBackupData()}
      * @hide
      */
-    public void restoreBackupData(byte[] data) {
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
+    public void restoreBackupData(@NonNull byte[] data) {
         try {
             IWifiManager iWifiManager = getIWifiManager();
             if (iWifiManager == null) {
@@ -4694,11 +4801,16 @@
      * Restore state from the older version of back up data.
      * The old backup data was essentially a backup of wpa_supplicant.conf
      * and ipconfig.txt file.
+     * @param supplicantData bytes representing wpa_supplicant.conf
+     * @param ipConfigData bytes representing ipconfig.txt
      * @deprecated this is no longer supported.
      * @hide
      */
     @Deprecated
-    public void restoreSupplicantBackupData(byte[] supplicantData, byte[] ipConfigData) {
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
+    public void restoreSupplicantBackupData(
+            @NonNull byte[] supplicantData, @NonNull byte[] ipConfigData) {
         try {
             IWifiManager iWifiManager = getIWifiManager();
             if (iWifiManager == null) {
@@ -4774,22 +4886,29 @@
     }
 
     /**
-     * Base class for Traffic state callback. Should be extended by applications and set when
-     * calling {@link WifiManager#registerTrafficStateCallback(TrafficStateCallback, Handler)}.
+     * Interface for Traffic state callback. Should be extended by applications and set when
+     * calling {@link #registerTrafficStateCallback(Executor, WifiManager.TrafficStateCallback)}.
      * @hide
      */
+    @SystemApi
     public interface TrafficStateCallback {
-        /**
-         * Lowest bit indicates data reception and the second lowest
-         * bit indicates data transmitted
-         */
         /** @hide */
+        @Retention(RetentionPolicy.SOURCE)
+        @IntDef(prefix = {"DATA_ACTIVITY_"}, value = {
+                DATA_ACTIVITY_NONE,
+                DATA_ACTIVITY_IN,
+                DATA_ACTIVITY_OUT,
+                DATA_ACTIVITY_INOUT})
+        @interface DataActivity {}
+
+        // Lowest bit indicates data reception and the second lowest bit indicates data transmitted
+        /** No data in or out */
         int DATA_ACTIVITY_NONE         = 0x00;
-        /** @hide */
+        /** Data in, no data out */
         int DATA_ACTIVITY_IN           = 0x01;
-        /** @hide */
+        /** Data out, no data in */
         int DATA_ACTIVITY_OUT          = 0x02;
-        /** @hide */
+        /** Data in and out */
         int DATA_ACTIVITY_INOUT        = 0x03;
 
         /**
@@ -4797,9 +4916,8 @@
          *
          * @param state One of the values: {@link #DATA_ACTIVITY_NONE}, {@link #DATA_ACTIVITY_IN},
          * {@link #DATA_ACTIVITY_OUT} & {@link #DATA_ACTIVITY_INOUT}.
-         * @hide
          */
-        void onStateChanged(int state);
+        void onStateChanged(@DataActivity int state);
     }
 
     /**
@@ -4808,11 +4926,11 @@
      * @hide
      */
     private class TrafficStateCallbackProxy extends ITrafficStateCallback.Stub {
-        private final Handler mHandler;
+        private final Executor mExecutor;
         private final TrafficStateCallback mCallback;
 
-        TrafficStateCallbackProxy(Looper looper, TrafficStateCallback callback) {
-            mHandler = new Handler(looper);
+        TrafficStateCallbackProxy(Executor executor, TrafficStateCallback callback) {
+            mExecutor = executor;
             mCallback = callback;
         }
 
@@ -4821,13 +4939,26 @@
             if (mVerboseLoggingEnabled) {
                 Log.v(TAG, "TrafficStateCallbackProxy: onStateChanged state=" + state);
             }
-            mHandler.post(() -> {
+            Binder.clearCallingIdentity();
+            mExecutor.execute(() -> {
                 mCallback.onStateChanged(state);
             });
         }
     }
 
     /**
+     * Same as {@link #registerTrafficStateCallback(Executor, TrafficStateCallback)},
+     * except that the callback will be executed on the application's main thread.
+     * @param callback Callback for traffic state events
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
+    public void registerTrafficStateCallback(@NonNull TrafficStateCallback callback) {
+        registerTrafficStateCallback(mContext.getMainExecutor(), callback);
+    }
+
+    /**
      * Registers a callback for monitoring traffic state. See {@link TrafficStateCallback}. These
      * callbacks will be invoked periodically by platform to inform clients about the current
      * traffic state. Caller can unregister a previously registered callback using
@@ -4838,18 +4969,19 @@
      * without the permission will trigger a {@link java.lang.SecurityException}.
      * <p>
      *
+     * @param executor The Executor on whose thread to execute the callbacks of the {@code callback}
+     *                 object.
      * @param callback Callback for traffic state events
-     * @param handler  The Handler on whose thread to execute the callbacks of the {@code callback}
-     *                 object. If null, then the application's main thread will be used.
      * @hide
      */
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
-    public void registerTrafficStateCallback(@NonNull TrafficStateCallback callback,
-                                             @Nullable Handler handler) {
+    public void registerTrafficStateCallback(@NonNull @CallbackExecutor Executor executor,
+                                             @NonNull TrafficStateCallback callback) {
+        if (executor == null) throw new IllegalArgumentException("executor cannot be null");
         if (callback == null) throw new IllegalArgumentException("callback cannot be null");
-        Log.v(TAG, "registerTrafficStateCallback: callback=" + callback + ", handler=" + handler);
+        Log.v(TAG, "registerTrafficStateCallback: callback=" + callback + ", executor=" + executor);
 
-        Looper looper = (handler == null) ? mContext.getMainLooper() : handler.getLooper();
         Binder binder = new Binder();
         try {
             IWifiManager iWifiManager = getIWifiManager();
@@ -4857,7 +4989,7 @@
                 throw new RemoteException("Wifi service is not running");
             }
             iWifiManager.registerTrafficStateCallback(
-                    binder, new TrafficStateCallbackProxy(looper, callback), callback.hashCode());
+                    binder, new TrafficStateCallbackProxy(executor, callback), callback.hashCode());
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -4870,6 +5002,7 @@
      * @param callback Callback to unregister for traffic state events
      * @hide
      */
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
     public void unregisterTrafficStateCallback(@NonNull TrafficStateCallback callback) {
         if (callback == null) throw new IllegalArgumentException("callback cannot be null");
@@ -4933,11 +5066,13 @@
      * if failed.
      * @hide
      */
+    @NonNull
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
     public String[] getFactoryMacAddresses() {
         try {
             IWifiManager iWifiManager = getIWifiManager();
-            if (iWifiManager == null) return null;
+            if (iWifiManager == null) return new String[0];
             return iWifiManager.getFactoryMacAddresses();
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
diff --git a/wifi/java/android/net/wifi/WifiScanner.java b/wifi/java/android/net/wifi/WifiScanner.java
index 7e14451..0d36718 100644
--- a/wifi/java/android/net/wifi/WifiScanner.java
+++ b/wifi/java/android/net/wifi/WifiScanner.java
@@ -960,6 +960,9 @@
      * Retrieve the most recent scan results from a single scan request.
      * {@hide}
      */
+    @NonNull
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE)
     public List<ScanResult> getSingleScanResults() {
         validateChannel();
         Bundle scanParams = new Bundle();
@@ -973,7 +976,7 @@
         OperationResult result = (OperationResult) reply.obj;
         Log.e(TAG, "Error retrieving SingleScan results reason: " + result.reason
                 + " description: " + result.description);
-        return new ArrayList<ScanResult>();
+        return new ArrayList<>();
     }
 
     private void startPnoScan(ScanSettings scanSettings, PnoSettings pnoSettings, int key) {
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java b/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java
index c3cfb02..767055f 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java
@@ -66,12 +66,6 @@
     public int groupOwnerBand = GROUP_OWNER_BAND_AUTO;
 
     /** @hide */
-    public static final int MAX_GROUP_OWNER_INTENT   =   15;
-    /** @hide */
-    @UnsupportedAppUsage
-    public static final int MIN_GROUP_OWNER_INTENT   =   0;
-
-    /** @hide */
     @IntDef(flag = false, prefix = { "GROUP_OWNER_BAND_" }, value = {
         GROUP_OWNER_BAND_AUTO,
         GROUP_OWNER_BAND_2GHZ,
@@ -94,13 +88,35 @@
     public static final int GROUP_OWNER_BAND_5GHZ = 2;
 
     /**
-     * This is an integer value between 0 and 15 where 0 indicates the least
-     * inclination to be a group owner and 15 indicates the highest inclination
-     * to be a group owner.
-     *
-     * A value of -1 indicates the system can choose an appropriate value.
+     * The least inclination to be a group owner, to be filled in the field
+     * {@link #groupOwnerIntent}.
      */
-    public int groupOwnerIntent = -1;
+    public static final int GROUP_OWNER_INTENT_MIN = 0;
+
+    /**
+     * The most inclination to be a group owner, to be filled in the field
+     * {@link #groupOwnerIntent}.
+     */
+    public static final int GROUP_OWNER_INTENT_MAX = 15;
+
+    /**
+     * The system can choose an appropriate owner intent value, to be filled in the field
+     * {@link #groupOwnerIntent}.
+     */
+    public static final int GROUP_OWNER_INTENT_AUTO = -1;
+
+    /**
+     * This is an integer value between {@link #GROUP_OWNER_INTENT_MIN} and
+     * {@link #GROUP_OWNER_INTENT_MAX} where
+     * {@link #GROUP_OWNER_INTENT_MIN} indicates the least inclination to be a group owner and
+     * {@link #GROUP_OWNER_INTENT_MAX} indicates the highest inclination to be a group owner.
+     *
+     * A value of {@link #GROUP_OWNER_INTENT_AUTO} indicates the system can choose an appropriate
+     * value.
+     *
+     * By default this field is set to {@link #GROUP_OWNER_INTENT_AUTO}.
+     */
+    public int groupOwnerIntent = GROUP_OWNER_INTENT_AUTO;
 
     /** @hide */
     @UnsupportedAppUsage
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java b/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java
index c5318a9..13b2520 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java
@@ -16,6 +16,8 @@
 
 package android.net.wifi.p2p;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -237,6 +239,12 @@
         }
     }
 
+    /** The Wifi Display information for this device, or null if unavailable. */
+    @Nullable
+    public WifiP2pWfdInfo getWfdInfo() {
+        return wfdInfo;
+    }
+
     /** Returns true if WPS push button configuration is supported */
     public boolean wpsPbcSupported() {
         return (wpsConfigMethodsSupported & WPS_CONFIG_PUSHBUTTON) != 0;
@@ -278,14 +286,15 @@
     }
 
     /**
-     * Update device details. This will be throw an exception if the device address
-     * does not match.
+     * Update device details. This will throw an exception if the device address does not match.
+     *
      * @param device to be updated
-     * @throws IllegalArgumentException if the device is null or device address does not match
+     * @throws IllegalArgumentException if the device is null or the device address does not match
+     *
      * @hide
      */
     @UnsupportedAppUsage
-    public void update(WifiP2pDevice device) {
+    public void update(@NonNull WifiP2pDevice device) {
         updateSupplicantDetails(device);
         status = device.status;
     }
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java b/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java
index 4866bd4..f9d1266 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java
@@ -16,6 +16,7 @@
 
 package android.net.wifi.p2p;
 
+import android.annotation.Nullable;
 import android.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -36,15 +37,21 @@
  */
 public class WifiP2pGroup implements Parcelable {
 
-    /** The temporary network id.
-     * {@hide} */
+    /**
+     * The temporary network id.
+     *
+     * @hide
+     */
     @UnsupportedAppUsage
     public static final int TEMPORARY_NET_ID = -1;
 
-    /** The persistent network id.
+    /**
+     * The persistent network id.
      * If a matching persistent profile is found, use it.
      * Otherwise, create a new persistent profile.
-     * {@hide} */
+     *
+     * @hide
+     */
     public static final int PERSISTENT_NET_ID = -2;
 
     /** The network name */
@@ -64,7 +71,7 @@
 
     private String mInterface;
 
-    /** The network id in the wpa_supplicant */
+    /** The network ID in wpa_supplicant */
     private int mNetId;
 
     /** The frequency (in MHz) used by this group */
@@ -225,10 +232,13 @@
         return mClients.size() == 0;
     }
 
-    /** @hide Returns {@code true} if the device is part of the group */
-    public boolean contains(WifiP2pDevice device) {
-        if (mOwner.equals(device) || mClients.contains(device)) return true;
-        return false;
+    /**
+     * Returns {@code true} if the device is part of the group, {@code false} otherwise.
+     *
+     * @hide
+     */
+    public boolean contains(@Nullable WifiP2pDevice device) {
+        return mOwner.equals(device) || mClients.contains(device);
     }
 
     /** Get the list of clients currently part of the p2p group */
@@ -261,8 +271,7 @@
         return mInterface;
     }
 
-    /** @hide */
-    @UnsupportedAppUsage
+    /** The network ID of the P2P group in wpa_supplicant. */
     public int getNetworkId() {
         return mNetId;
     }
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java b/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java
index 62524d9..10fd09a 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java
@@ -15,14 +15,16 @@
  */
 package android.net.wifi.p2p;
 
-import java.util.Collection;
-import java.util.Map;
-
+import android.annotation.NonNull;
+import android.annotation.SystemApi;
 import android.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.util.LruCache;
 
+import java.util.Collection;
+import java.util.Map;
+
 
 /**
  * A class representing a Wi-Fi P2p group list
@@ -30,7 +32,8 @@
  * {@see WifiP2pManager}
  * @hide
  */
-public class WifiP2pGroupList implements Parcelable {
+@SystemApi
+public final class WifiP2pGroupList implements Parcelable {
 
     private static final int CREDENTIAL_MAX_NUM             =   32;
 
@@ -40,6 +43,7 @@
 
     private boolean isClearCalled = false;
 
+    /** @hide */
     public interface GroupDeleteListener {
         public void onDeleteGroup(int netId);
     }
@@ -71,11 +75,9 @@
     }
 
     /**
-     * Return the list of p2p group.
-     *
-     * @return the list of p2p group.
+     * Get the list of P2P groups.
      */
-    @UnsupportedAppUsage
+    @NonNull
     public Collection<WifiP2pGroup> getGroupList() {
         return mGroups.snapshot().values();
     }
@@ -206,6 +208,7 @@
         return false;
     }
 
+    @Override
     public String toString() {
         StringBuffer sbuf = new StringBuffer();
 
@@ -217,12 +220,14 @@
     }
 
     /** Implement the Parcelable interface */
+    @Override
     public int describeContents() {
         return 0;
     }
 
     /** Implement the Parcelable interface */
-    public void writeToParcel(Parcel dest, int flags) {
+    @Override
+    public void writeToParcel(@NonNull Parcel dest, int flags) {
         final Collection<WifiP2pGroup> groups = mGroups.snapshot().values();
         dest.writeInt(groups.size());
         for(WifiP2pGroup group : groups) {
@@ -231,7 +236,7 @@
     }
 
     /** Implement the Parcelable interface */
-    public static final @android.annotation.NonNull Creator<WifiP2pGroupList> CREATOR =
+    public static final @NonNull Creator<WifiP2pGroupList> CREATOR =
         new Creator<WifiP2pGroupList>() {
             public WifiP2pGroupList createFromParcel(Parcel in) {
                 WifiP2pGroupList grpList = new WifiP2pGroupList();
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
index 3178519..1c20679 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
@@ -22,6 +22,7 @@
 import android.annotation.RequiresPermission;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
+import android.annotation.SystemApi;
 import android.annotation.SystemService;
 import android.annotation.UnsupportedAppUsage;
 import android.content.Context;
@@ -327,8 +328,9 @@
      * Broadcast intent action indicating that remembered persistent groups have changed.
      * @hide
      */
-    public static final String WIFI_P2P_PERSISTENT_GROUPS_CHANGED_ACTION =
-        "android.net.wifi.p2p.PERSISTENT_GROUPS_CHANGED";
+    @SystemApi
+    public static final String ACTION_WIFI_P2P_PERSISTENT_GROUPS_CHANGED =
+            "android.net.wifi.p2p.action.WIFI_P2P_PERSISTENT_GROUPS_CHANGED";
 
     /**
      * The lookup key for a handover message returned by the WifiP2pService.
@@ -756,13 +758,18 @@
     }
 
 
-    /** Interface for callback invocation when stored group info list is available {@hide}*/
+    /**
+     * Interface for callback invocation when stored group info list is available
+     *
+     * @hide
+     */
+    @SystemApi
     public interface PersistentGroupInfoListener {
         /**
          * The requested stored p2p group info list is available
          * @param groups Wi-Fi p2p group info list
          */
-        public void onPersistentGroupInfoAvailable(WifiP2pGroupList groups);
+        void onPersistentGroupInfoAvailable(@NonNull WifiP2pGroupList groups);
     }
 
     /**
@@ -1202,7 +1209,7 @@
         c.mAsyncChannel.sendMessage(DISCOVER_PEERS, 0, c.putListener(listener));
     }
 
-   /**
+    /**
      * Stop an ongoing peer discovery
      *
      * <p> The function call immediately returns after sending a stop request
@@ -1347,20 +1354,36 @@
      *
      * @hide
      */
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
-    public void listen(Channel c, boolean enable, ActionListener listener) {
+    public void listen(@NonNull Channel c, boolean enable, @Nullable ActionListener listener) {
         checkChannel(c);
         c.mAsyncChannel.sendMessage(enable ? START_LISTEN : STOP_LISTEN,
                 0, c.putListener(listener));
     }
 
-    /** @hide */
-    @UnsupportedAppUsage
-    public void setWifiP2pChannels(Channel c, int lc, int oc, ActionListener listener) {
+    /**
+     * Set P2P listening and operating channel.
+     *
+     * @param c is the channel created at {@link #initialize}
+     * @param listeningChannel the listening channel's Wifi channel number. e.g. 1, 6, 11.
+     * @param operatingChannel the operating channel's Wifi channel number. e.g. 1, 6, 11.
+     * @param listener for callbacks on success or failure. Can be null.
+     *
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(anyOf = {
+            android.Manifest.permission.NETWORK_SETTINGS,
+            android.Manifest.permission.NETWORK_STACK,
+            android.Manifest.permission.OVERRIDE_WIFI_CONFIG
+    })
+    public void setWifiP2pChannels(@NonNull Channel c, int listeningChannel, int operatingChannel,
+            @Nullable ActionListener listener) {
         checkChannel(c);
         Bundle p2pChannels = new Bundle();
-        p2pChannels.putInt("lc", lc);
-        p2pChannels.putInt("oc", oc);
+        p2pChannels.putInt("lc", listeningChannel);
+        p2pChannels.putInt("oc", operatingChannel);
         c.mAsyncChannel.sendMessage(SET_CHANNEL, 0, c.putListener(listener), p2pChannels);
     }
 
@@ -1618,23 +1641,47 @@
 
     /**
      * Set p2p device name.
-     * @hide
+     *
      * @param c is the channel created at {@link #initialize}
      * @param listener for callback when group info is available. Can be null.
+     *
+     * @hide
      */
-    @UnsupportedAppUsage
-    public void setDeviceName(Channel c, String devName, ActionListener listener) {
+    @SystemApi
+    @RequiresPermission(anyOf = {
+            android.Manifest.permission.NETWORK_SETTINGS,
+            android.Manifest.permission.NETWORK_STACK,
+            android.Manifest.permission.OVERRIDE_WIFI_CONFIG
+    })
+    public void setDeviceName(@NonNull Channel c, @NonNull String devName,
+            @Nullable ActionListener listener) {
         checkChannel(c);
         WifiP2pDevice d = new WifiP2pDevice();
         d.deviceName = devName;
         c.mAsyncChannel.sendMessage(SET_DEVICE_NAME, 0, c.putListener(listener), d);
     }
 
+    /**
+     * Set Wifi Display information.
+     *
+     * @param c is the channel created at {@link #initialize}
+     * @param wfdInfo the Wifi Display information to set
+     * @param listener for callbacks on success or failure. Can be null.
+     *
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.CONFIGURE_WIFI_DISPLAY)
+    public void setWfdInfo(@NonNull Channel c, @NonNull WifiP2pWfdInfo wfdInfo,
+            @Nullable ActionListener listener) {
+        setWFDInfo(c, wfdInfo, listener);
+    }
+
     /** @hide */
     @UnsupportedAppUsage
-    public void setWFDInfo(
-            Channel c, WifiP2pWfdInfo wfdInfo,
-            ActionListener listener) {
+    @RequiresPermission(android.Manifest.permission.CONFIGURE_WIFI_DISPLAY)
+    public void setWFDInfo(@NonNull Channel c, @NonNull WifiP2pWfdInfo wfdInfo,
+            @Nullable ActionListener listener) {
         checkChannel(c);
         try {
             mService.checkConfigureWifiDisplayPermission();
@@ -1658,12 +1705,19 @@
      *  a network id can be obtained by {@link WifiP2pGroup#getNetworkId()}.
      *
      * @param c is the channel created at {@link #initialize}
-     * @param netId he network id of the p2p group.
+     * @param netId the network id of the p2p group.
      * @param listener for callbacks on success or failure. Can be null.
+     *
      * @hide
      */
-    @UnsupportedAppUsage
-    public void deletePersistentGroup(Channel c, int netId, ActionListener listener) {
+    @SystemApi
+    @RequiresPermission(anyOf = {
+            android.Manifest.permission.NETWORK_SETTINGS,
+            android.Manifest.permission.NETWORK_STACK,
+            android.Manifest.permission.OVERRIDE_WIFI_CONFIG
+    })
+    public void deletePersistentGroup(@NonNull Channel c, int netId,
+            @Nullable ActionListener listener) {
         checkChannel(c);
         c.mAsyncChannel.sendMessage(DELETE_PERSISTENT_GROUP, netId, c.putListener(listener));
     }
@@ -1673,23 +1727,68 @@
      *
      * @param c is the channel created at {@link #initialize}
      * @param listener for callback when persistent group info list is available. Can be null.
+     *
      * @hide
      */
-    @UnsupportedAppUsage
-    public void requestPersistentGroupInfo(Channel c, PersistentGroupInfoListener listener) {
+    @SystemApi
+    @RequiresPermission(anyOf = {
+            android.Manifest.permission.NETWORK_SETTINGS,
+            android.Manifest.permission.NETWORK_STACK,
+            android.Manifest.permission.READ_WIFI_CREDENTIAL
+    })
+    public void requestPersistentGroupInfo(@NonNull Channel c,
+            @Nullable PersistentGroupInfoListener listener) {
         checkChannel(c);
         c.mAsyncChannel.sendMessage(REQUEST_PERSISTENT_GROUP_INFO, 0, c.putListener(listener));
     }
 
     /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = {"MIRACAST_"}, value = {
+            MIRACAST_DISABLED,
+            MIRACAST_SOURCE,
+            MIRACAST_SINK})
+    public @interface MiracastMode {}
+
+    /**
+     * Miracast is disabled.
+     * @hide
+     */
+    @SystemApi
     public static final int MIRACAST_DISABLED = 0;
-    /** @hide */
+    /**
+     * Device acts as a Miracast source.
+     * @hide
+     */
+    @SystemApi
     public static final int MIRACAST_SOURCE   = 1;
-    /** @hide */
+    /**
+     * Device acts as a Miracast sink.
+     * @hide
+     */
+    @SystemApi
     public static final int MIRACAST_SINK     = 2;
-    /** Internal use only @hide */
-    @UnsupportedAppUsage
-    public void setMiracastMode(int mode) {
+
+    /**
+     * This is used to provide information to drivers to optimize performance depending
+     * on the current mode of operation.
+     * {@link #MIRACAST_DISABLED} - disabled
+     * {@link #MIRACAST_SOURCE} - source operation
+     * {@link #MIRACAST_SINK} - sink operation
+     *
+     * As an example, the driver could reduce the channel dwell time during scanning
+     * when acting as a source or sink to minimize impact on Miracast.
+     *
+     * @param mode mode of operation. One of {@link #MIRACAST_DISABLED}, {@link #MIRACAST_SOURCE},
+     * or {@link #MIRACAST_SINK}
+     *
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(allOf = {
+            android.Manifest.permission.CONNECTIVITY_INTERNAL,
+            android.Manifest.permission.CONFIGURE_WIFI_DISPLAY})
+    public void setMiracastMode(@MiracastMode int mode) {
         try {
             mService.setMiracastMode(mode);
         } catch (RemoteException e) {
@@ -1778,8 +1877,10 @@
      *
      * @param c is the channel created at {@link #initialize}.
      * @param listener for callback on success or failure. Can be null.
+     *
      * @hide
      */
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
     public void factoryReset(@NonNull Channel c, @Nullable ActionListener listener) {
         checkChannel(c);
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pWfdInfo.java b/wifi/java/android/net/wifi/p2p/WifiP2pWfdInfo.java
index 3caa280..48b0703 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pWfdInfo.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pWfdInfo.java
@@ -16,49 +16,68 @@
 
 package android.net.wifi.p2p;
 
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.UnsupportedAppUsage;
-import android.os.Build;
-import android.os.Parcelable;
 import android.os.Parcel;
+import android.os.Parcelable;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.Locale;
 
 /**
- * A class representing Wifi Display information for a device
- * @hide
+ * A class representing Wifi Display information for a device.
+ *
+ * See Wifi Display technical specification v1.0.0, section 5.1.2.
  */
-public class WifiP2pWfdInfo implements Parcelable {
-
-    private static final String TAG = "WifiP2pWfdInfo";
+public final class WifiP2pWfdInfo implements Parcelable {
 
     private boolean mWfdEnabled;
 
+    /** Device information bitmap */
     private int mDeviceInfo;
 
-    public static final int WFD_SOURCE              = 0;
-    public static final int PRIMARY_SINK            = 1;
-    public static final int SECONDARY_SINK          = 2;
-    public static final int SOURCE_OR_PRIMARY_SINK  = 3;
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = { "DEVICE_TYPE_" }, value = {
+            DEVICE_TYPE_WFD_SOURCE,
+            DEVICE_TYPE_PRIMARY_SINK,
+            DEVICE_TYPE_SECONDARY_SINK,
+            DEVICE_TYPE_SOURCE_OR_PRIMARY_SINK})
+    public @interface DeviceType {}
 
-    /* Device information bitmap */
-    /** One of {@link #WFD_SOURCE}, {@link #PRIMARY_SINK}, {@link #SECONDARY_SINK}
-     * or {@link #SOURCE_OR_PRIMARY_SINK}
+    /** The device is a Wifi Display Source. */
+    public static final int DEVICE_TYPE_WFD_SOURCE = 0;
+    /** The device is a primary sink. */
+    public static final int DEVICE_TYPE_PRIMARY_SINK = 1;
+    /** The device is a secondary sink. */
+    public static final int DEVICE_TYPE_SECONDARY_SINK = 2;
+    /** The device is dual-role capable i.e. either a WFD source or a primary sink. */
+    public static final int DEVICE_TYPE_SOURCE_OR_PRIMARY_SINK = 3;
+
+    /**
+     * {@link #mDeviceInfo} & {@link #DEVICE_TYPE} is one of {@link #DEVICE_TYPE_WFD_SOURCE},
+     * {@link #DEVICE_TYPE_PRIMARY_SINK}, {@link #DEVICE_TYPE_SECONDARY_SINK} or
+     * {@link #DEVICE_TYPE_SOURCE_OR_PRIMARY_SINK}.
      */
-    private static final int DEVICE_TYPE                            = 0x3;
-    private static final int COUPLED_SINK_SUPPORT_AT_SOURCE         = 0x4;
-    private static final int COUPLED_SINK_SUPPORT_AT_SINK           = 0x8;
-    private static final int SESSION_AVAILABLE                      = 0x30;
-    private static final int SESSION_AVAILABLE_BIT1                 = 0x10;
-    private static final int SESSION_AVAILABLE_BIT2                 = 0x20;
+    private static final int DEVICE_TYPE                            = 1 << 1 | 1 << 0;
+    private static final int COUPLED_SINK_SUPPORT_AT_SOURCE         = 1 << 2;
+    private static final int COUPLED_SINK_SUPPORT_AT_SINK           = 1 << 3;
+    private static final int SESSION_AVAILABLE_BIT1                 = 1 << 4;
+    private static final int SESSION_AVAILABLE_BIT2                 = 1 << 5;
+    private static final int SESSION_AVAILABLE                      =
+            SESSION_AVAILABLE_BIT2 | SESSION_AVAILABLE_BIT1;
 
     private int mCtrlPort;
 
     private int mMaxThroughput;
 
-    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
-    public WifiP2pWfdInfo() {
-    }
+    /** Default constructor. */
+    public WifiP2pWfdInfo() {}
 
+    /** @hide */
     @UnsupportedAppUsage
     public WifiP2pWfdInfo(int devInfo, int ctrlPort, int maxTput) {
         mWfdEnabled = true;
@@ -67,24 +86,40 @@
         mMaxThroughput = maxTput;
     }
 
-    @UnsupportedAppUsage
+    /** Returns true is Wifi Display is enabled, false otherwise. */
     public boolean isWfdEnabled() {
         return mWfdEnabled;
     }
 
-    @UnsupportedAppUsage
+    /**
+     * Sets whether Wifi Display should be enabled.
+     *
+     * @param enabled true to enable Wifi Display, false to disable
+     */
     public void setWfdEnabled(boolean enabled) {
         mWfdEnabled = enabled;
     }
 
-    @UnsupportedAppUsage
+    /**
+     * Get the type of the device.
+     * One of {@link #DEVICE_TYPE_WFD_SOURCE}, {@link #DEVICE_TYPE_PRIMARY_SINK},
+     * {@link #DEVICE_TYPE_SECONDARY_SINK}, {@link #DEVICE_TYPE_SOURCE_OR_PRIMARY_SINK}
+     */
+    @DeviceType
     public int getDeviceType() {
-        return (mDeviceInfo & DEVICE_TYPE);
+        return mDeviceInfo & DEVICE_TYPE;
     }
 
-    @UnsupportedAppUsage
-    public boolean setDeviceType(int deviceType) {
-        if (deviceType >= WFD_SOURCE && deviceType <= SOURCE_OR_PRIMARY_SINK) {
+    /**
+     * Sets the type of the device.
+     *
+     * @param deviceType One of {@link #DEVICE_TYPE_WFD_SOURCE}, {@link #DEVICE_TYPE_PRIMARY_SINK},
+     * {@link #DEVICE_TYPE_SECONDARY_SINK}, {@link #DEVICE_TYPE_SOURCE_OR_PRIMARY_SINK}
+     * @return true if the device type was successfully set, false otherwise
+     */
+    public boolean setDeviceType(@DeviceType int deviceType) {
+        if (DEVICE_TYPE_WFD_SOURCE <= deviceType
+                && deviceType <= DEVICE_TYPE_SOURCE_OR_PRIMARY_SINK) {
             mDeviceInfo &= ~DEVICE_TYPE;
             mDeviceInfo |= deviceType;
             return true;
@@ -92,35 +127,16 @@
         return false;
     }
 
-    public boolean isCoupledSinkSupportedAtSource() {
-        return (mDeviceInfo & COUPLED_SINK_SUPPORT_AT_SINK) != 0;
-    }
-
-    public void setCoupledSinkSupportAtSource(boolean enabled) {
-        if (enabled ) {
-            mDeviceInfo |= COUPLED_SINK_SUPPORT_AT_SINK;
-        } else {
-            mDeviceInfo &= ~COUPLED_SINK_SUPPORT_AT_SINK;
-        }
-    }
-
-    public boolean isCoupledSinkSupportedAtSink() {
-        return (mDeviceInfo & COUPLED_SINK_SUPPORT_AT_SINK) != 0;
-    }
-
-    public void setCoupledSinkSupportAtSink(boolean enabled) {
-        if (enabled ) {
-            mDeviceInfo |= COUPLED_SINK_SUPPORT_AT_SINK;
-        } else {
-            mDeviceInfo &= ~COUPLED_SINK_SUPPORT_AT_SINK;
-        }
-    }
-
+    /** Returns true if a session is available, false otherwise. */
     public boolean isSessionAvailable() {
         return (mDeviceInfo & SESSION_AVAILABLE) != 0;
     }
 
-    @UnsupportedAppUsage
+    /**
+     * Sets whether a session is available.
+     *
+     * @param enabled true to indicate that a session is available, false otherwise.
+     */
     public void setSessionAvailable(boolean enabled) {
         if (enabled) {
             mDeviceInfo |= SESSION_AVAILABLE_BIT1;
@@ -130,29 +146,33 @@
         }
     }
 
+    /** Returns the TCP port at which the WFD Device listens for RTSP messages. */
     public int getControlPort() {
         return mCtrlPort;
     }
 
-    @UnsupportedAppUsage
+    /** Sets the TCP port at which the WFD Device listens for RTSP messages. */
     public void setControlPort(int port) {
         mCtrlPort = port;
     }
 
-    @UnsupportedAppUsage
+    /** Sets the maximum average throughput capability of the WFD Device, in megabits/second. */
     public void setMaxThroughput(int maxThroughput) {
         mMaxThroughput = maxThroughput;
     }
 
+    /** Returns the maximum average throughput capability of the WFD Device, in megabits/second. */
     public int getMaxThroughput() {
         return mMaxThroughput;
     }
 
+    /** @hide */
     public String getDeviceInfoHex() {
         return String.format(
                 Locale.US, "%04x%04x%04x", mDeviceInfo, mCtrlPort, mMaxThroughput);
     }
 
+    @Override
     public String toString() {
         StringBuffer sbuf = new StringBuffer();
         sbuf.append("WFD enabled: ").append(mWfdEnabled);
@@ -167,9 +187,8 @@
         return 0;
     }
 
-    /** copy constructor */
-    @UnsupportedAppUsage
-    public WifiP2pWfdInfo(WifiP2pWfdInfo source) {
+    /** Copy constructor. */
+    public WifiP2pWfdInfo(@Nullable WifiP2pWfdInfo source) {
         if (source != null) {
             mWfdEnabled = source.mWfdEnabled;
             mDeviceInfo = source.mDeviceInfo;
@@ -179,14 +198,15 @@
     }
 
     /** Implement the Parcelable interface */
-    public void writeToParcel(Parcel dest, int flags) {
+    @Override
+    public void writeToParcel(@NonNull Parcel dest, int flags) {
         dest.writeInt(mWfdEnabled ? 1 : 0);
         dest.writeInt(mDeviceInfo);
         dest.writeInt(mCtrlPort);
         dest.writeInt(mMaxThroughput);
     }
 
-    public void readFromParcel(Parcel in) {
+    private void readFromParcel(Parcel in) {
         mWfdEnabled = (in.readInt() == 1);
         mDeviceInfo = in.readInt();
         mCtrlPort = in.readInt();
@@ -194,8 +214,7 @@
     }
 
     /** Implement the Parcelable interface */
-    @UnsupportedAppUsage
-    public static final @android.annotation.NonNull Creator<WifiP2pWfdInfo> CREATOR =
+    public static final @NonNull Creator<WifiP2pWfdInfo> CREATOR =
         new Creator<WifiP2pWfdInfo>() {
             public WifiP2pWfdInfo createFromParcel(Parcel in) {
                 WifiP2pWfdInfo device = new WifiP2pWfdInfo();
diff --git a/wifi/tests/src/android/net/wifi/WifiManagerTest.java b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
index 6305277..06ebc1b 100644
--- a/wifi/tests/src/android/net/wifi/WifiManagerTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
@@ -709,6 +709,18 @@
     }
 
     /**
+     * Verify an IllegalArgumentException is thrown if executor is null.
+     */
+    @Test
+    public void registerSoftApCallbackThrowsIllegalArgumentExceptionOnNullArgumentForExecutor() {
+        try {
+            mWifiManager.registerSoftApCallback(null, mSoftApCallback);
+            fail("expected IllegalArgumentException");
+        } catch (IllegalArgumentException expected) {
+        }
+    }
+
+    /**
      * Verify an IllegalArgumentException is thrown if callback is not provided.
      */
     @Test
@@ -724,9 +736,10 @@
      * Verify main looper is used when handler is not provided.
      */
     @Test
-    public void registerSoftApCallbackUsesMainLooperOnNullArgumentForHandler() {
-        when(mContext.getMainLooper()).thenReturn(mLooper.getLooper());
-        mWifiManager.registerSoftApCallback(null, mSoftApCallback);
+    public void registerSoftApCallbackUsesMainExecutorOnNoExecutorProvided() {
+        when(mContext.getMainExecutor()).thenReturn(
+                new HandlerExecutor(new Handler(mLooper.getLooper())));
+        mWifiManager.registerSoftApCallback(mSoftApCallback);
         verify(mContext).getMainExecutor();
     }
 
@@ -1147,10 +1160,11 @@
     @Test
     public void registerTrafficStateCallbackUsesMainLooperOnNullArgumentForHandler()
             throws Exception {
-        when(mContext.getMainLooper()).thenReturn(mLooper.getLooper());
+        when(mContext.getMainExecutor()).thenReturn(
+                new HandlerExecutor(new Handler(mLooper.getLooper())));
         ArgumentCaptor<ITrafficStateCallback.Stub> callbackCaptor =
                 ArgumentCaptor.forClass(ITrafficStateCallback.Stub.class);
-        mWifiManager.registerTrafficStateCallback(mTrafficStateCallback, null);
+        mWifiManager.registerTrafficStateCallback(mTrafficStateCallback);
         verify(mWifiService).registerTrafficStateCallback(
                 any(IBinder.class), callbackCaptor.capture(), anyInt());
 
@@ -1166,7 +1180,8 @@
     @Test
     public void unregisterTrafficStateCallbackCallGoesToWifiServiceImpl() throws Exception {
         ArgumentCaptor<Integer> callbackIdentifier = ArgumentCaptor.forClass(Integer.class);
-        mWifiManager.registerTrafficStateCallback(mTrafficStateCallback, mHandler);
+        mWifiManager.registerTrafficStateCallback(new HandlerExecutor(mHandler),
+                mTrafficStateCallback);
         verify(mWifiService).registerTrafficStateCallback(any(IBinder.class),
                 any(ITrafficStateCallback.Stub.class), callbackIdentifier.capture());
 
@@ -1182,7 +1197,8 @@
     public void trafficStateCallbackProxyCallsOnMultipleUpdates() throws Exception {
         ArgumentCaptor<ITrafficStateCallback.Stub> callbackCaptor =
                 ArgumentCaptor.forClass(ITrafficStateCallback.Stub.class);
-        mWifiManager.registerTrafficStateCallback(mTrafficStateCallback, mHandler);
+        mWifiManager.registerTrafficStateCallback(new HandlerExecutor(mHandler),
+                mTrafficStateCallback);
         verify(mWifiService).registerTrafficStateCallback(
                 any(IBinder.class), callbackCaptor.capture(), anyInt());
 
@@ -1201,7 +1217,7 @@
                 TrafficStateCallback.DATA_ACTIVITY_OUT);
     }
 
-    /*
+    /**
      * Verify client-provided callback is being called on the correct thread
      */
     @Test
@@ -1210,7 +1226,8 @@
                 ArgumentCaptor.forClass(ITrafficStateCallback.Stub.class);
         TestLooper altLooper = new TestLooper();
         Handler altHandler = new Handler(altLooper.getLooper());
-        mWifiManager.registerTrafficStateCallback(mTrafficStateCallback, altHandler);
+        mWifiManager.registerTrafficStateCallback(new HandlerExecutor(altHandler),
+                mTrafficStateCallback);
         verify(mContext, never()).getMainLooper();
         verify(mContext, never()).getMainExecutor();
         verify(mWifiService).registerTrafficStateCallback(
@@ -1228,10 +1245,11 @@
     @Test
     public void registerNetworkRequestMatchCallbackCallGoesToWifiServiceImpl()
             throws Exception {
-        when(mContext.getMainLooper()).thenReturn(mLooper.getLooper());
+        when(mContext.getMainExecutor()).thenReturn(
+                new HandlerExecutor(new Handler(mLooper.getLooper())));
         ArgumentCaptor<INetworkRequestMatchCallback.Stub> callbackCaptor =
                 ArgumentCaptor.forClass(INetworkRequestMatchCallback.Stub.class);
-        mWifiManager.registerNetworkRequestMatchCallback(mNetworkRequestMatchCallback, null);
+        mWifiManager.registerNetworkRequestMatchCallback(mNetworkRequestMatchCallback);
         verify(mWifiService).registerNetworkRequestMatchCallback(
                 any(IBinder.class), callbackCaptor.capture(), anyInt());
 
@@ -1265,7 +1283,8 @@
     @Test
     public void unregisterNetworkRequestMatchCallbackCallGoesToWifiServiceImpl() throws Exception {
         ArgumentCaptor<Integer> callbackIdentifier = ArgumentCaptor.forClass(Integer.class);
-        mWifiManager.registerNetworkRequestMatchCallback(mNetworkRequestMatchCallback, mHandler);
+        mWifiManager.registerNetworkRequestMatchCallback(new HandlerExecutor(mHandler),
+                mNetworkRequestMatchCallback);
         verify(mWifiService).registerNetworkRequestMatchCallback(
                 any(IBinder.class), any(INetworkRequestMatchCallback.class),
                 callbackIdentifier.capture());
@@ -1282,10 +1301,11 @@
     @Test
     public void networkRequestUserSelectionCallbackCallGoesToWifiServiceImpl()
             throws Exception {
-        when(mContext.getMainLooper()).thenReturn(mLooper.getLooper());
+        when(mContext.getMainExecutor()).thenReturn(
+                new HandlerExecutor(new Handler(mLooper.getLooper())));
         ArgumentCaptor<INetworkRequestMatchCallback.Stub> callbackCaptor =
                 ArgumentCaptor.forClass(INetworkRequestMatchCallback.Stub.class);
-        mWifiManager.registerNetworkRequestMatchCallback(mNetworkRequestMatchCallback, null);
+        mWifiManager.registerNetworkRequestMatchCallback(mNetworkRequestMatchCallback);
         verify(mWifiService).registerNetworkRequestMatchCallback(
                 any(IBinder.class), callbackCaptor.capture(), anyInt());
 
diff --git a/wifi/tests/src/android/net/wifi/p2p/WifiP2pWfdInfoTest.java b/wifi/tests/src/android/net/wifi/p2p/WifiP2pWfdInfoTest.java
index d2f1168..cea73ef 100644
--- a/wifi/tests/src/android/net/wifi/p2p/WifiP2pWfdInfoTest.java
+++ b/wifi/tests/src/android/net/wifi/p2p/WifiP2pWfdInfoTest.java
@@ -43,7 +43,7 @@
     @Before
     public void setUp() {
         // initialize device info flags.
-        mSourceInfo.setDeviceType(WifiP2pWfdInfo.WFD_SOURCE);
+        mSourceInfo.setDeviceType(WifiP2pWfdInfo.DEVICE_TYPE_WFD_SOURCE);
         mSourceInfo.setSessionAvailable(true);
     }
 
@@ -57,14 +57,8 @@
         info.setWfdEnabled(true);
         assertTrue(info.isWfdEnabled());
 
-        info.setDeviceType(WifiP2pWfdInfo.WFD_SOURCE);
-        assertEquals(WifiP2pWfdInfo.WFD_SOURCE, info.getDeviceType());
-
-        info.setCoupledSinkSupportAtSource(true);
-        assertTrue(info.isCoupledSinkSupportedAtSource());
-
-        info.setCoupledSinkSupportAtSink(true);
-        assertTrue(info.isCoupledSinkSupportedAtSink());
+        info.setDeviceType(WifiP2pWfdInfo.DEVICE_TYPE_WFD_SOURCE);
+        assertEquals(WifiP2pWfdInfo.DEVICE_TYPE_WFD_SOURCE, info.getDeviceType());
 
         info.setSessionAvailable(true);
         assertTrue(info.isSessionAvailable());
@@ -75,7 +69,7 @@
         info.setMaxThroughput(TEST_MAX_TPUT);
         assertEquals(TEST_MAX_TPUT, info.getMaxThroughput());
 
-        assertEquals("0018270f0400", info.getDeviceInfoHex());
+        assertEquals("0010270f0400", info.getDeviceInfoHex());
     }
 
     /**